Vsftpd

Материал из pNp Wiki
Версия от 09:58, 1 марта 2013; Andy (обсуждение | вклад) (Новая страница: «== Необходимость == На всякий случай, вдруг надо будет что-то залить или быстро настроить д…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Необходимость

На всякий случай, вдруг надо будет что-то залить или быстро настроить для кого-то, или для чего-то 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
#

Links

Официальный сайт