Использование виртуальных пользователей в Vsftpd

Эта заметка поведает о том, как создать виртуальных пользователей в vsftpd.

Для начала сделаем резервную копию конфигурационного файла:

cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak$(date +%m-%d-%Y)

Теперь редактиреум /etc/vsftpd/vsftpd.conf. Вам нужно удостоваериться, что следующие директивы выставлены верно:

chown_uploads=YES
chown_username=apache
guest_username=apache
connect_from_port_20=YES
dirmessage_enable=YES
listen_ipv6=YES
listen=NO
local_umask=022
nopriv_user=apache
syslog_enable=YES
tcp_wrappers=YES
userlist_enable=YES
xferlog_enable=YES
xferlog_std_format=YES

anonymous_enable=NO
local_enable=YES
guest_enable=YES
virtual_use_local_privs=YES
write_enable=YES
pam_service_name=vsftpd
local_root=/var/www/html
chroot_local_user=YES
hide_ids=YES

Редактируем файл /etc/pam.d/vsftpd слудющими строками:

@include common-session  
auth required pam_userdb.so db=/etc/vsftpd/virtual_users  
account required pam_userdb.so db=/etc/vsftpd/virtual_users  
session required pam_loginuid.so

В случае с Linux Ubuntu в файле могут присутствовать другие строки. Их нужно закоментировать иначе не заработает. В логах при этом будет появляться следующее сообщение при доступе к серверу:

vsftpd: pam_unix(vsftpd:auth): authentication failure; logname= uid=0 euid=0 tty=ftp

Создаем файл /root/ftp_users.txt и вносим в него имена пользователей и их пароли построчно:

ftpuser  
userpassword

Создаем базу виртуальных пользователей, предварительно сделав резервную копию текущей:

cp /etc/vsftpd/virtual_users.db /etc/vsftpd/virtual_users.db.bak$(date +%m-%d-%Y)  
db_load -T -t hash -f /root/ftp_users.txt /etc/vsftpd/virtual_users.db

Перезапускаем демон vsftpd что бы исменения вступили в силу.

Tags:

Categories:

Updated: