LinuxForum.Fans
Тема

vsftpd+mysql нуждаюсь в помоши!!!

Автор: Elrik12 6 сообщений 3803 просмотров
#26924

Всем доброго времени суток! Вот и меня не обошёл вопрос в настройке ftp сервера с небольшой базой для аутинтификации пользователей на сервере! Пошаговая настройка показала что настроить доступ для Анонимных и локальных пользователей не составляет особого труда ! Но подумав об управлении всеми этими пользователями и об удобстве администрирования было решено настроить виртуальных пользователей с базой в mysql. Но как показала практика и мое некоторое недопонимание в этом вопросе это чуть сложновато для развивающегося и не давно вставшего на дорогу администрирования человека. По гуглив почитав приличное количество статей которые написаны крайне понятно и разжевано но правда не под Дистрибутив который использую я (то есть попробовав настроить сервер конечно же почти не чего у меня не вышло )
По вот этой статье настраивал пытался заточить под свой дистрибутив не чего не вышло:
http://sudouser.com/ustanovka-i-nastrojka-vsftpd-mysql-ubuntu-debian
После настройки создания и присвоении прав всем кому нужно сервер начал сильно ругаться на то что логин не верен и на сервер не в какую пускать отказался . при подключении начал выдавать
530 Login incorrect.
В логах вот такая фигня:



Дистрибутив OpenSUSE11.2_x64 ftp- vsftpd база данных mysql.

если что то не досказал или забыл что может понадобится в наставлении меня на истинный путь говорите выложу!
Заранее все спасибо Elrik

#26959

Elrik12,
Конфиг vsftpd - в студию!

#27239

Создал базу
CREATE DATABASE vsftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO 'vsftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
С юзером (делал через navicat)
Потом создал таблицу через тот же навикат
CREATE TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`username` VARCHAR( 30 ) NOT NULL ,
`pass` VARCHAR( 50 ) NOT NULL ,
UNIQUE (
`username`
)
) ENGINE = MYISAM ;
quit;
*проверил юзера vsftpd который должен работать с базой работает)
Конфиг vsftpd
Создал пользователя vsftpd группа nogroup с каталогом /home/vsftpd
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
nopriv_user=vsftpd
chroot_local_user=YES
#secure_chroot_dir=/var/run/vsftpd #ругался очень сильно
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd_user_conf
в pam */etc/pam.d/vsftpd*
прописал двумя строчками

1) auth required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2

2) account required pam_mysql.so user=vsftpd passwd=ftpdpass host=localhost db=vsftpd table=accounts usercolumn=username passwdcolumn=pass crypt=2
Перезапустил службу
/etc/init.d/vsftpd restart
Добавил юзера в базу через навикат
и перезапустил службу еще раз.

Долгое мучение лазанье по различным форумам курение всякой литературы наконец дало свои плоды.
Все до банальности было просто ! покопавшись в библиотеках pam было выявлено что в системе не стоит механизм pam-mysql.
исправил это дело нашёл rpm-ку поставил его. И что вы думаете оно таки не заработало. покапавшись снова в библиотеках было выявлено что этот модуль установился в 32 разрядные библиотеки. а в 64 разрядных библиотеках его нет.
Что делать и где найти Помогите Пожалуйста.

#30118

покапавшись снова в библиотеках было выявлено что этот модуль установился в 32 разрядные библиотеки. а в 64 разрядных библиотеках его нет.

А Вам не кажется, что в этом то и прелесть 64-х разрядных систем, что Вы можете использовать как родные 64х разрядные, так и 32-х разрядные пакеты. Боюсь пакет pam-mysql для 64-х разрядных систем Вы не отыщете. Но есть выход, давайте сначала что такое pam? - Pluggable Authentication Modules позволяет системным администраторам устанавливать политику аутентификации без
перекомпиляции программы, которые делают аутентификацию. Именно этот пакет Вы найти тут:http://software.opensuse.or/search?q=pam там как раз есть пакет для 64-х разрядных систем.

#30121

спасибо. но как можно будет связать тогда vsftpd и mysql??? укажите хотябы какой модуль использовать для этого какую библиотеку.

#30139
Elrik12 написал:
спасибо. но как можно будет связать тогда vsftpd и mysql??? укажите хотя бы какой модуль использовать для этого какую библиотеку.

В ссылке которую Вы привели в первой части своего вопроса, имеется пошаговое объяснение на эту тему, а именно

Так же должны сконфигурировать PAM для ваших виртуальных FTP пользователей с аутентификацией в MySQL базе данных вместо расположения в /etc/passwd и /etc/shadow. Конфигурационный файл для PAM под vsftpd должен находится в папке /etc/pam.d/vsftpd.
с этого момента, за исключением, что возможно пути будут отличаться, а название файлов не как по инструкции. Точные пути сейчас не могу указать, под рукой Линукса нет, сервера на профилактике, так же не могу подключится проверить. Но дома когда FTP поднимал, руководствовался именно этой статьёй.
Войдите или зарегистрируйтесь, чтобы ответить.