1.安装vsftpd
~~~
#安装vsftpd
yum install -y vsftpd
#启动vsftpd
service vsftpd start
#设置开机启动
systemctl enable vsftpd
#设置防火墙
firewall-cmd --add-service=ftp --permanent
systemctl restart firewalld
~~~
2.设置selinux
~~~
#查看selinux中开放的ftpd权限
sestatus -b |grep ftpd
***********************************************
ftpd_anon_write off
ftpd_connect_all_unreserved off
ftpd_connect_db off
ftpd_full_access off
ftpd_use_cifs off
ftpd_use_fusefs off
ftpd_use_nfs off
ftpd_use_passive_mode off
***********************************************
#开放相关权限
setsebool -P ftpd_full_access 1
setsebool -P ftpd_use_passive_mode 1
~~~
3.编辑配置文件
~~~
#配置vsftpd.conf
sed -i "s/anonymous_enable=YES/anonymous_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#anon_upload_enable=YES/anon_upload_enable=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#chown_uploads=YES/chown_uploads=NO/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#async_abor_enable=YES/async_abor_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#ascii_upload_enable=YES/ascii_upload_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
sed -i "s/#ascii_download_enable=YES/ascii_download_enable=YES/g" '/etc/vsftpd/vsftpd.conf'
#添加下面内容到配置文件末尾
vi /etc/vsftpd/vsftpd.conf
use_localtime=YES
listen_port=21
chroot_local_user=YES
idle_session_timeout=300
guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/vconf
data_connection_timeout=1
virtual_use_local_privs=YES
pasv_min_port=10060
pasv_max_port=10090
accept_timeout=5
connect_timeout=1
~~~
4.建立用户文件,第一行为用户名,第二行为密码,不能使用root账号
~~~
vi /etc/vsftpd/virtusers
test
123456
~~~
5.生成用户数据
~~~
db_load -T -t hash -f /etc/vsftpd/virtusers /etc/vsftpd/virtusers.db
chmod 600 /etc/vsftpd/virtusers.db
~~~
6.修改/etc/pam.d/vsftpd文件,注释掉原有内容中auth和account部分添加下面两行
~~~
vi /etc/pam.d/vsftpd
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/virtusers
~~~
7.新建系统用户vsftpd,用户目录/home/vsftpd
~~~
useradd vsftpd -d /home/vsftpd -s /bin/false
chown -R vsftpd:vsftpd /home/vsftpd
~~~
8.建立虚拟用户个人配置文件
~~~
mkdir /home/vsftpd/test
chmod -R 777 /home/vsftpd/test
mkdir /etc/vsftpd/vconf
#新建test用户配置文件,内容如下,其他用户类似
vi /etc/vsftpd/vconf/test
local_root=/home/vsftpd/test
allow_writeable_chroot=YES
~~~
9.重启vsftpd
~~~
systemctl restart vsftpd
~~~