Страница 1 из 2

vsftpd + mysql + virtual users

Добавлено: 2009-05-22 20:07:22
DenTal
Доброе время суток, уважаемые.

Настроил на своём FreeBSD vsftpd как указано в этой статье (http://www.lissyara.su/?id=1916).
Встало отлично. Добавляю пользователя в таблицу MySQL. Захожу под логином и паролем на фтп. Просматриваю каталоги, а создать и удалить ничего не разрешает.

Не могу понять, права на директорию должны быть на виртуального юзера оформленны? Или в чём-то другом собака зарыта?

У меня сейчас права на директорию у root и группы wheel

Заранее спасибо за ответы.
P.S. не смотря на то, что директивы для ведения логов включены - файл лога пустой

Код: Выделить всё

log_ftp_protocol=YES
# Файл логов
vsftpd_log_file=/var/log/vsftpd.log
# Отправка логов в syslog
syslog_enable=YES

Re: vsftpd + mysql + virtual users

Добавлено: 2009-05-31 23:03:02
Alex Keda
ну, раскуривать надо - от кого в итоге оно работает.
в proftpd - там точно - виртуальный юзер привязан к конкретно указанному реальному.
а вот тут - не знаю.

Re: vsftpd + mysql + virtual users

Добавлено: 2009-06-01 11:01:03
CrazyPilot
ёмнип, в vsftpd есть опция guest_username. Эта опция "мапит" всех виртуалов в указанного системного юзера. Этому системному юзеру принадлежат все файлы на фтп. По крайней мере у меня так, есть анонимусы, которые могут сливать дитрибутивы, и есть виртуал в mysql, который файлы может заливать на фтп (создавать директории и т.д.). Этот виртуал собственно мапится на юзера vsftpd, которому принадлежит все в его home. Этот home - root folder для ftp.

По поводу логов - они у тебя в syslog уходят - лови их там. Либо выключи syslog_enable

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 0:39:34
kpp
А мне не удается настроить виртуальных пользователей...
Делаю по статье
http://www.lissyara.su/articles/freebsd ... ual_users/
При попытке коннекта под вновьсозданным пользователем - 530 Login incorrect и все...

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 8:47:43
CrazyPilot
и все не может быть, курите логи

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 11:02:39
kpp
А что логи...
В /var/log/vsftpd.log

Код: Выделить всё

FAIL LOGIN

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 11:11:56
CrazyPilot
Покажите конфиги, содержимое pam для vsftpd.

Вывод

Код: Выделить всё

ls -la /usr/local/lib/pam_*
Будем думать. Проверьте подключение к mysql под логином vsftpd...
Покажите еще системного пользователя, от которого работает vsfptd и права на его home

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 11:28:06
kpp
Это из vsftpd.conf

Код: Выделить всё

pam_service_name=vsftpd
guest_enable=YES
guest_username=ftp_virtual
secure_chroot_dir=/ftpdata/download
/etc/pam.d/vsftpd

Код: Выделить всё

auth required pam_mysql.so user=vsftpd_ passwd=парол host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
account required pam_mysql.so user=vsftpd_ passwd=парол host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
Коннект к базе user=vsftpd_ passwd=парол происходит успешно, выборка под этим юзером

Код: Выделить всё

select *
from accounts
работает.

Код: Выделить всё

ls -la /usr/local/lib/pam_*
-rw-r--r--  1 root  wheel   8488  8 дек 22:13 /usr/local/lib/pam_mysql.a
-rwxr-xr-x  1 root  wheel   1008  8 дек 22:13 /usr/local/lib/pam_mysql.la
-rwxr-xr-x  1 root  wheel  47426  8 дек 22:13 /usr/local/lib/pam_mysql.so
-r-xr-xr-x  1 root  wheel  60352 27 окт 10:54 /usr/local/lib/pam_winbind.so
Сиситемный юзер:

Код: Выделить всё

# pw usershow ftp_virtual
ftp_virtual:*:1010:1010::0:0:User &:/ftpdata/download/:/usr/sbin/nologin

Код: Выделить всё

dr-xr-xr-x  14 ftp_virtual  wheel  512 25 окт 15:57 download

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 11:41:06
CrazyPilot
первое что бросилось в глаза
kpp писал(а):

Код: Выделить всё

secure_chroot_dir=/ftpdata/download
Из доки

Код: Выделить всё

secure_chroot_dir
    This option should be the name of a directory which is empty. Also, the directory should not be writable by the ftp user. This directory is used as a secure chroot() jail at times vsftpd does not require filesystem access. 
Может в этом причина, но не факт. Измените, например, на /var/empty/

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 11:46:02
kpp
Изменил по умолчанию:

Код: Выделить всё

secure_chroot_dir=/usr/local/share/vsftpd/empty
Перестартовал, понятное дело, vsftpd.
Резльтат тотже.
ЧТо-то мне везет а последнее время на всческие грабли :crazy:

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 11:53:48
CrazyPilot
приведите полный конфиг vsftpd

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:02:30
kpp

Код: Выделить всё

vsftpd.conf
#используем родное время, а не GMT
use_localtime=YES

convert_charset_enable=1
#UTF8, WIN1251 (1251), KOI8R (878), IBM866 (866), ISO-8859-5 (ISO5), ISO-8859-1 (LATIN1 или ISO1), ISO-8859-15 (LATIN9 или ISO15), WIN1252 (1252), ISO-8859-2 (LATIN2 или ISO2), ISO-8859-16 (ISO16) или WIN1250 (1250).
local_charset=UTF8
remote_charset=WIN1251

# Разрешать анонимный доступ
anonymous_enable=YES
# Корненая директория анонимного пользователя, где хранятся директории incoming и pub
anon_root=/ftpdata/anonim
# Не требуется пароль для анонимного пользователя
no_anon_password=YES

# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES

local_umask=022

# Маска анонимного пользователя (rwxrwx---)
#anon_umask=707
# Режим для открытия файлов
#file_open_mode=777

chown_uploads=NO
#chmod_enable=NO
file_open_mode=0766
anon_umask=0011

anon_upload_enable=YES
anon_mkdir_write_enable=YES
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES

connect_from_port_20=YES

chown_username=ftp_virtual

user_config_dir=/usr/local/etc/vsftpd/users/

xferlog_file=/var/log/vsftpd.log

#nopriv_user=ftp_virtual
pam_service_name=vsftpd
guest_enable=YES
guest_username=ftp_virtual
#secure_chroot_dir=/ftpdata/download

#local_root=/ftpdata/download
#user_sub_token=$USER
#virtual_use_local_privs=YES

chroot_list_enable=YES
# (default follows)
chroot_list_file=/usr/local/etc/vsftpd/vsftpd.chroot_list
#
ls_recurse_enable=YES
#
secure_chroot_dir=/usr/local/share/vsftpd/empty

# If using vsftpd in standalone mode, uncomment the next two lines:
listen=YES
background=YES

# Минимальный пассивный порт
pasv_min_port=30000
# Максимальный пассивный порт
pasv_max_port=30999
# Дадим скорость 1Mbit/s на скачку и закачку для анонимных пользователей
#  65536 - 1Mbit/s
# 131072 - 2Mbit/s
# 196608 - 3Mbit/s
# 262144 - 4Mbit/s
# 327680 - 5Mbit/s
# 393216 - 6Mbit/s
# 458752 - 7Mbit/s
anon_max_rate=131072
# Дадим скорость 3Mbit/s на скачку и закачку для виртуальных пользователей
local_max_rate=196608
# Лог запросов для сервера. Может быть понадобится для ведения статистики. Если нет . можно отключить
log_ftp_protocol=YES
# Максимальное число клиентов:
max_clients=200
# Максимальное число клиентов для одного уникального IP адресса. Используется для предотвращения многопотоковых закачек,
# которые забивают канал
max_per_ip=2

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:18:21
CrazyPilot
Хрен знает :-D

В конфиге у вас не указан nopriv_user, почему? Типа от nobody нормально? Честно не знаю в чем причина, может стоит пересобрать pam для мускуля?

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:21:15
kpp
CrazyPilot писал(а):Хрен знает :-D
Вот и я о том же :-D
В конфиге у вас не указан nopriv_user, почему?
Скажу честно - не понял зачем он нужен, но и с ним и без него результат тотже.
Честно не знаю в чем причина, может стоит пересобрать pam для мускуля?
Не поверите... уже несколько раз пересобирал... :-o
Уже не знаю что и думать. В принципе всем устраивает vsftpd, все работает от системных юзеров, решил сделать секурнее и удобнее - перейдя на виртуальных - ан нет...
Где-то в нете натыкался на форумах высказывались что не всегда гладко происходит настройка vsftpd с виртуальными пользователя, что мол у кого с полпинка все работает, а у кого если сразу не заработало, так и не заработает...
Уж не знаю, на ProFtp переходить чтоли... но как-то неохота...

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:32:00
CrazyPilot
kpp писал(а):Скажу честно - не понял зачем он нужен, но и с ним и без него результат тотже.
Этого пользователя vsftpd использует для сброса своих привилегий, насколько я понял. Если не устанавливать - будет использован nobody, что не есть хорошо. Но насколько я вкурил это некритично для процесса авторизации пользователей

мне кажеццо дело в mysql

1. Проверить логин для vsftpd, пускает ли с локалхоста
2. Как в базу заносится логин, совпадают схемы для пароля, если в pam стоит crypt 2, то в базе пароли должны заноситься mysql функцией password()
3. Включить дебаг для pam модуля, добавив опцию debug в pam для vsftpd и смотреть логи

В принципе когда я делал, срастить vsftpd и mysql получилось без особых сложностей, а вот с постгре скрестить не получилось, долго с ним трахался, но так нифига и не вышло.

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:36:39
kpp
К базе подключался из MyPHPAdmin - все нормально (не с локалхоста) .
Напомните из шелла как подконнектиться к базе MySQL ?
2. Как в базу заносится логин, совпадают схемы для пароля, если в pam стоит crypt 2, то в базе пароли должны заноситься mysql функцией password()
Это проверено - тут вопросов буть не должно.

Включаю дебаг, смотрю.
Как его включить, кстати для pam-модуля - просто добаить debug в /etc/pam.d/vsftpd ?

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:38:24
CrazyPilot
kpp писал(а):Напомните из шелла как подконнектиться к базе MySQL ?

Код: Выделить всё

gw# mysql -u vsftpd -h localhost -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 37309 to server version: 4.1.22

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> \q
Bye


Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:43:42
kpp
Коннект к базе под нужным юзером из шелла проходит:

Код: Выделить всё

# mysql -u vsftpd_ -h localhost -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 97
Server version: 5.1.41-log FreeBSD port: mysql-server-5.1.41

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \q
Bye

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:45:17
CrazyPilot
смотрите логи дебага для pam. Что подключается, пытается ли вообще....думаю там должно это быть.
Насчет как включить - просто debug добавьте в каждую строчку pam для vsftpd

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 12:54:32
kpp
Мда.. становится все интереснее..
В massages пишет:

Код: Выделить всё

Dec  9 11:38:35 pogranichnic vsftpd: in openpam_read_chain(): /etc/pam.d/vsftpd(2): invalid facility 'debug' (ignored)
Dec  9 11:43:45 pogranichnic vsftpd: in openpam_read_chain(): /etc/pam.d/vsftpd(2): invalid facility 'debug' (ignored)
D
Но при этом происходит удачный коннект под виртуальным пользователем! :"":

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 13:06:09
CrazyPilot
хм, а как вы прописали debug? Возможно в вашей версии нет, попробуйте вместо него поставить verbose=1

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 13:12:35
kpp

Код: Выделить всё

auth required pam_mysql.so user=vsftpd_ passwd=парол host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 debug
account required pam_mysql.so user=vsftpd_ passwd=парол host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2 debug
вот так написал.
Удалил debug - удачный коннект.
Вернул из бакапа /etc/pam.p/vsftpd - удачный коннект!
Значит дело не в нем.
Неужели после поннекта к базе из шелла... :crazy:

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 13:16:16
CrazyPilot
О_О

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 13:36:47
kpp
Вот дела...
Теперь не могу смоделировать такую ситуацию...
И как тут не поверишь в шаманство и танцы с бубном... :-D

Спасибо, CrazyPilot , за подбор правильного бубна! ;)

Re: vsftpd + mysql + virtual users

Добавлено: 2009-12-09 13:40:48
CrazyPilot
you are welcome =)