LinuxForum.Fans
Тема

Настройка анонимного доступа к vsftpd [и немного про audit ядра]

Автор: yoric1 22 сообщений 8529 просмотров
#381068

Здравствуйте!
Помогите пож-ста расшифровать. С некоторых пор (не сразу заметил, поелику редко пользуюсь) vsftpd перестал принимать файлы от анонимуса, отдаёт нормально. Конфиги не менялись (да и просмотрел, ничего нового вроде с апгрейдами не приходило), ядро менялось, да и на другую архитектуру машина переехала (i386->amd64), могло что-нибудь со старыми правами затесаться. В общем, много чего может быть, в логах не очень густо, проблема не видна. Но благо, есть такое понятие audit :D только не очень понятно, как это интерпретировать.

text

audit: type=1326 audit(1400926086.398:44): auid=4294967295 uid=110 gid=114 ses=4294967295 pid=9170 comm="vsftpd" exe="/usr/sbin/vsftpd" sig=31 syscall=91 compat=0 ip=0x7ff37e5fbde7 code=0x0

audit: type=1326 audit(1400926086.414:45): auid=4294967295 uid=65534 gid=65534 ses=4294967295 pid=9160 comm="vsftpd" exe="/usr/sbin/vsftpd" sig=31 syscall=37 compat=0 ip=0x7ff37e5d9ff7 code=0x0

ОТсюда видно, что потомок запускается от "nogroup" (id=65534), видимо в этом проблема. pid какой-то не тот, с выводом ps не совпадает. auditd не установлен, да и не хотелось бы, домашняя машинка.

text
FTP command: Client "192.168.0.153", "STOR RD_676_app1.pdf"
FTP response: Client "192.168.0.153", "553 Could not create file."
FAIL UPLOAD: Client "192.168.0.153", "/upload/RD_676_app1.pdf", 0.00Kbyte/sec
FTP command: Client "192.168.0.153", "DELE RD_676_app1.pdf"
FTP response: Client "192.168.0.153", "550 Permission denied."

Что можете посоветовать? По теме "audit" не густо, вроде, можно и попроще обойтись.

#381093

при чём тут аудит ядра? Читайте лог ftp-сервера, там всё написано.

Но благо, есть такое понятие audit

он вам и написал: "доступ закрыт". А что вы ещё от него хотели-то?

#381094

"yoric1" написал:
FAIL UPLOAD: Client "192.168.0.153", "/upload/RD_676_app1.pdf", 0.00Kbyte/sec FTP command: Client "192.168.0.153", "DELE RD_676_app1.pdf" FTP response: Client "192.168.0.153", "550 Permission denied."
facepalm

[console]ls -ld /upload
ls -l /upload
ls -ld /[/console]
и всё станет очевидным.

И да, этот ваш "анонимус" у вас вообще кто? Как зовут?
#381095

ps

классика:

The X-Y problem — это логическое заблуждение, которое обычно приводит к бессмысленной трате времени и сил как со стороны того, кто просит помощи, так и со стороны тех, кто эту помощь может оказать.

..(via wooledge.org) ситуация развивается таким образом:

пользователь хочет сделать действие X;
пользователь не знает, как сделать действие Х, но путем каких-то умозаключений приходит к выводу, что достигнет решения проблемы путем совершения действия Y;
как решить проблему, связанную с Y, пользователь также не знает;
пользователь просит помощи с Y.
осведомленные в вопросе советчики пытаются помочь с Y, попутно удивляясь проблеме (она может быть как сложной, так и совершенно пустяковой);
в конце концов, становится ясно, что требовалась помощь с X, а это делается элементарно и в действительности не имеет ничего общего с Y.

http://7bloggers.ru/xy-problem/

#381096

Доктор, да тут кучей вопросов такая ситуация :D

#381098
"drBatty" написал:
он вам и написал: "доступ закрыт". А что вы ещё от него хотели-то?

Подскажите пож-ста, где это видно, как расшифровывать эти сообщения ядра, где про это пишут?

"drBatty" написал:
[console]
ls -ld /upload
ls -l /upload
ls -ld /[/console]
text

globus@aspera:~$ ls -ld ../ALLES/upload/
drwxrwxr-x 2 globus ftp 111 май 24 23:14 ../ALLES/upload/

globus@aspera:~$ ls -l ../ALLES/upload/ -rw------- 1 ftp ftp 0 май 24 21:35 goodfather-music.zip -rw------- 1 ftp ftp 0 май 24 22:30 luft-klapan-vtulka

globus@aspera:~$ ls -ld ../ALLES drwxr-xr-x 23 globus globus 4096 май 2 02:27 ../ALLES

vsftpd.conf:

text
listen=YES
anonymous_enable=YES
connect_from_port_20=YES
ftpd_banner="No pasaran!"
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
max_clients=40
max_per_ip=4
anon_root=/home/ALLES
use_localtime=YES
hide_ids=YES
lock_upload_files=YES
xferlog_enable=YES
dual_log_enable=YES
log_ftp_protocol=YES
no_anon_password=YES
write_enable=YES
anon_upload_enable=YES
delete_failed_uploads=YES
chown_uploads=YES
chown_username=globus
chown_upload_mode=0644
"drBatty" написал:
И да, этот ваш "анонимус" у вас вообще кто? Как зовут?

сначала ftp, потом globus, очень приятно :D Я, насколько смог, проверил права, несоответствий не вижу. Вроде должно работать, потому уже и полез в дебри. Молчу пока про Selinux, а то интернетов почитаешь....

Пользуйтесь тегами BBCode. yars.

#381101
"alexfinn" написал:
да тут кучей вопросов такая ситуация
да, но это просто просится в палату мер и весов.
"yoric1" написал:
Подскажите пож-ста, где это видно, как расшифровывать эти сообщения ядра, где про это пишут?
мы будем решать проблему X, или проблему Y?

Если проблему Y, то очень полезный и полный мануал по аудиту лежит на сайте redhat. Я его здесь уже цитировал. Вот только ваша проблема ортогональна к аудиту. Ищите другую проблему, и обсудим.

По проблеме X:

"yoric1" написал:
chown_username=globus
chown_upload_mode=0644

у вас вход под "анонимусом" осуществляется как вход под ftp (это в данном случае имя пользователя). Сам демон работает с правами root, однако это нужно только для авторизации пользователя. После авторизации (в т.ч. и под анонимусом!) демон форкается уже с правами того, кто авторизировался. По умолчанию это ftp:ftp. Однако предыдущий администратор изменил умолчание на globus.

У вас два варианта:
1. перестроить вход анонимуса как "глобус". я не знаю, как это делается для vsftp, впрочем в гугле меня не забанили:

ftp_username=inftpadm : This is the name of the user we use for handling anonymous FTP. The home directory of this user is the root of the anonymous FTP area.
chown_username=inftpadm : This is the name of the user who is given ownership of anonymously uploaded files. This option is only relevant if another option, chown_uploads, is set to YES.
chown_uploads=YES : This is a security and administrative feature. It enabes, all anonymously uploaded files will have the ownership changed to the user specified in the setting chown_username i.e inftpadm.

http://nixcraft.com/showthread.php/725-Secure-vsftpd-FTP-permissions-on-anonymous-user-uploads

2. перестроить изменение хозяина на этого вашего дефолтного юзера ftp.
правкой строки в конфиге

text
chown_username=globus

"yoric1" написал:
сначала ftp, потом globus, очень приятно
ну вот в этом-то и проблема.
#381107
"drBatty" написал:
yoric1 пишет:

сначала ftp, потом globus, очень приятно

ну вот в этом-то и проблема.

Не понял почему, ведь

text
drwxrwxr-x 2 globus ftp 111 май 24 23:14 ../ALLES/upload/

, делай что хочешь один и другой. Я думал, что файлы скачиваются под ftp, потом меняются на globus. Меня это устраивало, да вроде так и было... И долгое время работало ведь, именно в таком виде.

"drBatty" написал:
1. перестроить вход анонимуса как "глобус"

Вообще не зайти анонимусом

"drBatty" написал:
2. перестроить изменение хозяина на этого вашего дефолтного юзера ftp.

Мне файлы удобнее иметь globus-овые..

Или я тронулся, или ftpd, одно из двух...

#381108
"yoric1" написал:
Или я тронулся, или ftpd, одно из двух...

Вам не понравится ответ

#381111

Ну ткните носом уж, я не обидчивый)) Прямым текстом

"yoric1" написал:
файлы скачиваются под ftp, потом меняются на globus.

Я неправильно понимаю этот момент? Иначе

text
globus@aspera:~$ ls -ld ../ALLES/upload/ drwxrwxr-x 2 globus ftp 111 май 24 23:14 ../ALLES/upload/
globus@aspera:~$ ls -l ../ALLES/upload/
 -rw------- 1 ftp ftp 0 май 24 21:35 goodfather-music.zip
 -rw------- 1 ftp ftp 0 май 24 22:30 luft-klapan-vtulka

что мешает ftpd, работающему из-под ftp, сменить права файлов в этом каталоге?

#381117
"yoric1" написал:
делай что хочешь один и другой
facepalm…

первое -- хозяин. Второе -- группа.
"yoric1" написал:
Или я тронулся

this

точнее у вас всё нормально с головой, вы просто не зная броду полезли в воду.

1. файлы в каталоге создавать/удалять имеет право тот, у кого есть право модификации каталога, у вас оно есть, ftpd работает от ftp, который в группе ftp, которая является группой /uploads/

2. менять владельца файла не может никто, кроме рута. Вы можете задать владельцем только себя!

"yoric1" написал:
Вообще не зайти анонимусом

задолбали. ЧТО ЗНАЧИТ НЕ ЗАЙТИ???!!!!111
Лог показывайте, телепаты в отпуске.

"yoric1" написал:
Мне файлы удобнее иметь globus-овые..

1. это удобнее, но это небезопасно.
2. если вам на это наплевать, тогда аноним должен быть глобусом
Для тех, кто с первого раза не понимает, повторяю:


ftp_username=inftpadm : This is the name of the user we use for handling anonymous FTP. The home directory of this user is the root of the anonymous FTP area.
chown_username=inftpadm : This is the name of the user who is given ownership of anonymously
#381123
"drBatty" написал:
файлы в каталоге создавать/удалять имеет право тот, у кого есть право модификации каталога, у вас оно есть, ftpd работает от ftp, который в группе ftp, которая является группой /uploads/

Но права у него те же ведь? Он (ftp) тоже имеет право модификации каталога. О, кажется доходит, Вы хотите сказать, что надо дать права ftp на вышестоящий /ALLES?

"drBatty" написал:
yoric1 пишет:
Вообще не зайти анонимусом
задолбали. ЧТО ЗНАЧИТ НЕ ЗАЙТИ???!!!!111
Лог показывайте, телепаты в отпуске.

В логах тишина, клиент висит по таймуту 25сек, и так по кругу.

"drBatty" написал:
yoric1 пишет:
Мне файлы удобнее иметь globus-овые..
1. это удобнее, но это небезопасно.

Что вообще можно сделать с любым файлом (медиа-аудио-визио, текст, да хоть исполняемые), лежащими сбоку основной файлосистемы, и куда доступ только по сети?

"drBatty" написал:
ftp_username=inftpadm : This is the name of the user we use for handling anonymous FTP. The home directory of this user is the root of the anonymous FTP area.

Насколько я понял со своим ангилийским, /home/globus - моё жилище - должно стать корнем анонимуса? Не согласен, и видимо из-за этого не работает. И вот это вроде куда опаснее - дом посторонним на растерзание и каждый анонимус под моим именем...

#381133
"yoric1" написал:
файлы в каталоге создавать/удалять имеет право тот, у кого есть право модификации каталога, у вас оно есть, ftpd работает от ftp, который в группе ftp, которая является группой /uploads/

Но права у него те же ведь? Он (ftp) тоже имеет право модификации каталога. О, кажется доходит, Вы хотите сказать, что надо дать права ftp на вышестоящий /ALLES?

права НЕ НАСЛЕДУЮТСЯ. НЕ те же!

права w на каталог дают доступ К КАТАЛОГУ (создавать/удалять файлы каталоги В НЁМ, и только в нём)

"yoric1" написал:
В логах тишина

читайте ман, и включайте подробный лог сервера(verbose/debug). А вы лог сервера смотрели?

"yoric1" написал:
Что вообще можно сделать с любым файлом (медиа-аудио-визио, текст, да хоть исполняемые), лежащими сбоку основной файлосистемы, и куда доступ только по сети?

таких файлов НЕ БЫВАЕТ.

Бывают файлы, которые "лежат сбоку от основной ФС", но к ним даже с локального компа просто так не достучаться. (К примеру удалённый, но всё ещё использующийся файл, или безымянный файл)

"yoric1" написал:
Насколько я понял со своим ангилийским, /home/globus - моё жилище - должно стать корнем анонимуса? Не согласен, и видимо из-за этого не работает
вы написали ерунду. Вход пользователя по ftp ничем не отличается от обычного входа. Да, домашний каталог и там и там один и тот же. Как может быть иначе?
#381134

"yoric1" написал:
И вот это вроде куда опаснее - дом посторонним на растерзание и каждый анонимус под моим именем...
вот именно по этому и делают специального отдельного пользователя ftp. Чей дом и отдают на растерзание.

И да, зачем вам делать хозяином анонимуса? Так вы видите:
1. хозяин ftp. Этот файл приехал из сети, хрен знает от кого
2. хозяин вы. Этот файл вы сами сделали.
#381147

Сказку про белого бычка напоминает :D Не, никаких претензий, это я не того :D

text
globus@aspera:/home/ALLES$ ls -la
drwxr-xr-x 23 globus globus 4096 май  2 02:27 .
drwxr-xr-x   7 root        root     67 май  3 18:18 ..
drwxrwxr-x  2 globus globus       6 май 25 16:13 upload

globus@aspera:/home/ALLES$ chown ftp upload chown: changing ownership of ‘upload’: Operation not permitted

Разве так и надо? Никто его не держит, ftpd остановлен. Почему это я не могу изменить владельца своего каталога?

#381151
"yoric1" написал:
Сказку про белого бычка напоминает
ну да. У вас везде разные файлы, рпазные каталоги, разные конфиги. В одном посте одно, в другом другое, в третьем третье.

Ничем не могу помочь, это шизофазия называется. Откуда я знаюю, что вы там крутите?
"yoric1" написал:
Разве так и надо? Никто его не держит, ftpd остановлен. Почему это я не могу изменить владельца своего каталога?
1. в Linux нет понятия "файл занят другим приложением", это типичный маздайный глюк. Вы _можете_ изменить что угодно, никто ничего не "держит".

2. для тех, кто в танке, и не понимает с первого раза:

"drBatty" написал:
менять владельца файла не может никто, кроме рута. Вы можете задать владельцем только себя!
#381161

Понятно, беру таймаут, надо всё ещё раз прочитать и обдумать наконец :D Но как же оно в этой же позиции работало раньше? Только не надо списывать на моё безумие :D
А насчёт

"drBatty" написал:
в Linux нет понятия "файл занят другим приложением"
могу возразить, что иначе бы не было lsof & fuser
#381167
"yoric1" написал:
Но как же оно в этой же позиции работало раньше?
откуда я знаю?

"yoric1" написал:
в Linux нет понятия "файл занят другим приложением"

могу возразить, что иначе бы не было lsof & fuserне порите чушь.

Один и тот же файл может быть открыт на чтение/запись Over9000 процессами одновременно. Разве это не повод иметь утилиту, которая может мониторить эти Over9000 процессов?

При чём тут fuser -- теряюсь в догадках.

#381670

Следующий подход к снаряду, и ступор, так ведь не должно быть?

[console]globus@aspera:/home/ALLES/upload$ ls -ld
drwxrwxr-x 2 globus ftp 21 май 28 23:07 .
globus@aspera:/home/ALLES/upload$ ls -l
total 8 Чего это кстати 8, почему не 3 (. .. файл)?
-rw------- 1 ftp ftp 5784 май 26 13:46 м73.prd
globus@aspera:/home/ALLES/upload$ rm м73.prd
rm: remove write-protected regular file ‘м73.prd’? y
globus@aspera:/home/ALLES/upload$ ls -l
total 0
globus@aspera:/home/ALLES/upload$
globus@aspera:/home/ALLES/upload$ id globus
uid=1000(globus) gid=1000(globus) groups=1000(globus),4(adm),6(disk),7(lp),20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),50(staff),60(games),103(netdev),111(tftp),113(davfs2),114(ftp),115(kvm)[/console]
Почему я, не будучи владельцем, удалил чужой файл без разрешения? С системой всё-таки не то? Членство в группе "staff" вроде не должно повлиять...

#381741

Ага, оказывается, так оно и надо.

Войдите или зарегистрируйтесь, чтобы ответить.