vsftpd - Very Secure FTP Daemon
для CentOS
# yum install redhat-lsb
# lsb_release -a
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-i
a32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final
$ su
# nano /etc/shells
добавляем
...
/bin/false
добавление пользователя
# mkdir -p /home/ftp/ftpuser -v
# /usr/sbin/adduser ftpuser -d /home/ftp/ftpuser/ -s /bin/false
# chown ftpuser /home/ftp/ftpuser/
# passwd ftpuser
Установка vsftpd
# yum install vsftpd
# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak -v
# nano /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
# /sbin/chkconfig --list vsftpd
vsftpd 0:выкл 1:выкл 2:выкл 3:выкл 4:выкл 5:выкл 6:выкл
# /sbin/chkconfig vsftpd on
# /sbin/chkconfig --list vsftpd
vsftpd 0:выкл 1:выкл 2:вкл 3:вкл 4:вкл 5:вкл 6:выкл
если необходимо доступ только в одну директорию в vsftpd.conf надо добавить
local_root=/home/ftp/ftpuser/
и перезапустить vsftpd
# /etc/init.d/vsftpd restart
для запрета входить на ftp локальному пользователю, необходимо внести имя пользователя в /etc/vsftpd/ftpusers
для Debian
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 5.0.4 (lenny)
Release: 5.0.4
Codename: lenny
$ su
# nano /etc/shells
добавляем
...
/bin/false
# mkdir -p /home/ftp/ftpuser -v
# useradd ftpuser -d /home/ftp/ftpuser/ -s /bin/false
# chown ftpuser /home/ftp/ftpuser/
# passwd ftpuser
Установка vsftpd
# aptitude update
# aptitude install vsftpd
# mv /etc/vsftpd.conf /etc/vsftpd.conf.bak -v
# nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
local_root=/home/ftp/ftpuser
# /etc/init.d/vsftpd restart
судя по /etc/pam.d/vsftpd список заблокированных пользователей находится в /etc/ftpusers