Все действия проводились на centos 5.8:
Установке подлежит довольно старая версия из официального репозитория.
Забавное описание :)
Итак. На данный момент версия ушла долеко вперед. Можно поставить поновее. Можно собрать из исходников. Но пока ставим из того, что есть в официальном репозитории. Ибо для ftp этого более чем достаточно.
Конфигурационные файлы лежат в /etc/vsftpd. Приводим vsftpd.conf к такому виду:
Чтоб понять для чего нужна каждая опция прошу прочесть документацию. На данный момент нас интересует только опция local_root, которая отвечает за то, что каждый пользователь попадет в свой каталог. В ней указан польный путь к папке с данными ftp пользователей. $USER - это логин ftp пользователя. Папку, по указанному пути, нужно будет создвать при добавлении нового пользователя.
Теперь надо доустановить недостающие пакеты:
Загрузить два пакета:
Теперь в /etc/vsftpd надо создать файла базы данных и добавить пользователя:
Теперь надо привести к нужному виду файл /etc/pam.d/vsftpd:
И последний штрих. Надо чтоб vsftpd поднимался автоматически после загрузки системы. Для этого надо использовать команду chkconfig и стартуем сервис:
# uname -a Linux vm-centos58.localdomain 2.6.18-308.8.2.el5 #1 SMP Tue Jun 12 09:57:26 EDT 2012 i686 i686 i386 GNU/Linux
Установке подлежит довольно старая версия из официального репозитория.
# yum info vsftpd Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile ... Available Packages Name : vsftpd Arch : i386 Version : 2.0.5 Release : 24.el5_8.1 Size : 144 k Repo : updates Summary : vsftpd - Very Secure Ftp Daemon URL : http://vsftpd.beasts.org/ License : GPL Description: vsftpd - это 'Очень защищенный демон FTP' (Very Secure FTP daemon). : Вообще то он был создан на скорую руку.
Забавное описание :)
Итак. На данный момент версия ушла долеко вперед. Можно поставить поновее. Можно собрать из исходников. Но пока ставим из того, что есть в официальном репозитории. Ибо для ftp этого более чем достаточно.
# yum install vsftpd
Конфигурационные файлы лежат в /etc/vsftpd. Приводим vsftpd.conf к такому виду:
xferlog_enable=YES xferlog_file=/var/log/vsftpd.log log_ftp_protocol=YES userlist_enable=YES max_clients=15 max_per_ip=3 use_localtime=YES nopriv_user=ftp listen=YES anonymous_enable=NO local_enable=YES virtual_use_local_privs=YES pam_service_name=vsftpd write_enable=YES guest_enable=YES user_sub_token=$USER local_root=/var/local/ftpd/$USER chroot_local_user=YES hide_ids=YES #pasv_min_port=50555 #pasv_max_port=51555 # 775 for new dirs & 664 for new files local_umask=002
Чтоб понять для чего нужна каждая опция прошу прочесть документацию. На данный момент нас интересует только опция local_root, которая отвечает за то, что каждый пользователь попадет в свой каталог. В ней указан польный путь к папке с данными ftp пользователей. $USER - это логин ftp пользователя. Папку, по указанному пути, нужно будет создвать при добавлении нового пользователя.
Теперь надо доустановить недостающие пакеты:
# yum install apr apr-util
Загрузить два пакета:
# wget http://www.k0st1an.ru/download/linux/rpm/httpd-tools-2.2.22-1.el5.i386.rpm # wget http://www.k0st1an.ru/download/linux/rpm/pam-pam_pwdfile-0.99-2.i386.rpm # rpm -ih httpd-tools-2.2.22-1.el5.i386.rpm # rpm -ih pam-pam_pwdfile-0.99-2.i386.rpm
Теперь в /etc/vsftpd надо создать файла базы данных и добавить пользователя:
# touch virtual_users.db # htpasswd -d virtual_users.db test New password: Re-type new password: Adding password for user test
Теперь надо привести к нужному виду файл /etc/pam.d/vsftpd:
auth required pam_pwdfile.so pwdfile /etc/vsftpd/virtual_users.db account required pam_permit.so
И последний штрих. Надо чтоб vsftpd поднимался автоматически после загрузки системы. Для этого надо использовать команду chkconfig и стартуем сервис:
# chkconfig vsftpd on # /etc/init.d/vsftpd start