Vsftpd
Содержание
Необходимость
На всякий случай, вдруг надо будет что-то залить или быстро настроить для кого-то, или для чего-то ftp. Использовать будем виртуальных пользователей, дабы не захламлять сервер. Установка и настройка производятся в CentOS 6.3
Установка
Из репозитория, ничего сверх того, что есть в репозитории нам не понадобится.
# yum install vsftpd db4
Настройка
Тоже особой сложности не представляет, но в документации есть небольшие неточности, поэтому, собственно, и заметка. После установки, необходимо создать настоящего пользователя в системе:
# useradd virtualftp
Далее, создаем псевдопользователя в файле /etc/vsftpd/logins.cfg, структура которого проста:
username password
Теперь необходимо создать базу данных, в которой будут храниться виртуальные пользователи:
# db_load -T -t hash -f /etc/vsftpd/logins.cfg /etc/vsftpd/vsftpd_login.db
Следующий шаг, настрока PAM, для работы с vsftpd. Он должен выглядеть так:
# cat /etc/pam.d/vsftpd.pam auth required pam_userdb.so db=/etc/vsftpd/vsftpd_login account required pam_userdb.so db=/etc/vsftpd/vsftpd_login #
Следует обратить внимание, что база данных с паролями указана без расширения! Создаем директории для виртуальных пользователей:
# ls -lahi /home/virtualftp/ total 28K 7996857 drwx------ 3 virtualftp virtualftp 4.0K Feb 18 16:59 . 7995393 drwxr-xr-x. 4 root root 4.0K Feb 18 14:52 .. 7996862 -rw------- 1 virtualftp virtualftp 8 Feb 18 16:59 .bash_history 7996860 -rw-r--r-- 1 virtualftp virtualftp 18 May 10 2012 .bash_logout 7996859 -rw-r--r-- 1 virtualftp virtualftp 176 May 10 2012 .bash_profile 7996858 -rw-r--r-- 1 virtualftp virtualftp 124 May 10 2012 .bashrc 7996861 drwxr-xr-x 3 virtualftp virtualftp 4.0K Feb 18 17:38 ismd #
Да, права, на директориях виртуальных пользователей, должны быть 755, иначе виртуальные пользователи смогут заливать файлы, а вот видеть их - нет. Файл настройки самого vsftpd:
# cat /etc/vsftpd/vsftpd.conf anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 guest_enable=YES guest_username=virtualftp anon_upload_enable=YES anon_mkdir_write_enable=YES dirmessage_enable=YES connect_from_port_20=YES chroot_local_user=YES chown_uploads=YES chown_username=virtualftp xferlog_enable=YES listen=YES pam_service_name=vsftpd.pam userlist_enable=YES hide_ids=YES use_localtime=YES user_sub_token=$USER local_root=/home/virtualftp/$USER # for debuging purposes #log_ftp_protocol=YES
После проверки (все должно заработать), включаем сервис в автозагрузку:
# chkconfig vsftpd on # service vsftpd start Starting vsftpd for vsftpd: [ OK ] # chkconfig --list | grep vsftpd vsftpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off #