понедельник, июня 18, 2012

Настройка vsftpd с виртуальными пользователями на Cent OS 5.8

Все действия проводились на centos 5.8:

# 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

Комментариев нет:

Отправить комментарий