第一步安装vsftpd虚拟用户配置需要的三个软件包
yum install -y pam*
yum install -y db4*
yum install -y vsftpd*
查看是否安装了以下三个包
rpm -qa | grep pam
rpm -qa | grep db4
rpm -qa | grep vsftpd
能查到软件包和版本,即证明安装成功。更改vsftpd服为开机启动。
chkconfig --level 345 vsftpd on
chkconfig --list
vsftpd服务在
345运行模式下进行开机启动。
第二步配置vsftpd配置文件
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf
备份默认
vsftpd.conf配置文件
vi /etc/vsftpd/vsftpd.conf
编辑vsftpd配置文件内容
配置文件的说明我已经去掉了,只留配置选项,不懂的可以去百度,这里不做说明!!
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chown_uploads=NO
#chown_username=whoever
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
#idle_session_timeout=600
#data_connection_timeout=120
#nopriv_user=ftpsecure
async_abor_enable=YES
ascii_upload_enable=YES
ascii_download_enable=YES
#deny_email_enable=YES
#banned_email_file=/etc/vsftpd/banned_emails
#chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
#ls_recurse_enable=YES
listen=YES
#listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
virtual_use_local_privs=YES
listen_port=50000
pasv_min_port=2000
pasv_max_port=2100
pasv_enable=YES
use_localtime=YES
第四步配置pam.d用户认证文件
先创建虚拟用户和密码
vi /etc/vsftpd/ftpuser.txt
aaa
123456
bbb
123456
ccc
123456
ddd
123456
db_load -T -t hash-f /etc/vsftpd/ftpuser.txt /etc/vsftpd/ftpuser.db
创建用户配置文件和密码
vi /etc/pam.d/vsftpd
注释掉原来所有行,添加下面两行。64位centos系统为
/lib64 32位系统为
/lib
auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftpuser
account required /lib64/security/pam_userdb.so db=/etc/vsftpd/ftpuser
创建用户,以及用户对应的根目录,这里是不允许用户离开自己的根目录的。假如创建的
第二步创建vsftpd虚拟用户的宿主用户,不让他在本机登录
首先创建好用户对应的目录,注意是文件夹不是文件
mkdir /ftp/aaa
mkdir /ftp/bbb
mkdir /ftp/ccc
mkdir /ftp/ddd
创建一个名为
vsftpd的ftp宿主用户,指定他的主目录在
/ftp下,并不能让他在本机登录.
其他虚拟用户的宿主用户则是vsftpd这个用户。
useradd -d /ftp/ -s /sbin/nologin vsftpd
useradd -d /ftp/aaa -s /sbin/nologin aaa
useradd -d /ftp/bbb -s /sbin/nologin bbb
useradd -d /ftp/ccc -s /sbin/nologin ccc
useradd -d /ftp/ddd -s /sbin/nologin ddd
改变目录的宿主权限
cd /ftp/
chown 777 vsftpd.vsftpd /ftp
chown -R 777 aaa.vsftpd aaa
chown -R 777 aaa.vsftpd bbb
chown -R 777 aaa.vsftpd ccc
chown -R 777 aaa.vsftpd ddd
如果文件权限不够,可以使用chmod -R 777 来改变文件权限。
更改防火墙端口设置,请参照vsftpd.conf配置文件里的
listen_port=50000 #FTP端口,防火墙请改成同样
pasv_min_port=2000
pasv_max_port=2100
增加以下规则:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 50000 -j ACCEPT
-A INPUT -p tcp --dport 2000:2100 -j ACCEPT