1.安装FTP服务
yum -y install vsftpd
2.vsftpd服务的目录 /etc/vsftpd

3.防火墙把vsftpd服务的端口放出去 20 21端口
iptables -I INPUT 1 -p tcp --dport 20:21 -j ACCEPT

4.vsftpd.conf配置文件
(1)anonymous 匿名用户
anonymous_enable=YES 允许匿名用户登录
在windows下登录ftp服务器

如果把anonymous_enable=NO 不允许匿名用户登录

重启vsftpd服务
service vsftpd restart

再次在windows上以匿名用户登录ftp服务器,匿名用户已经登录不进去了,登录失败

Eg: 如果selinux没有关闭,登录本地用户登录不进去
没有更改,临时把selinux关闭,setenforce 0
第二种办法:把selinux打开,setenforce 1
查看sebool
getsebool -a | grep ftp
setsebool -P ftp_home_dir on
再用本地用户登录ftp服务器显示的就是用户家目录
(2)anon_upload_enable=YES
//匿名用户允许上传
anon_mkdir_write_enable=YES
//匿名用户允许创建目录和写权限

重启vsftpd服务 service vsftpd restart
在windows客户端登录FTP服务器上传文件试试

还是上传有问题,匿名用户登录时 默认的位置是/var/ftp目录 查看/var/ftp目录的权限

没有写权限所以上传不了东西匿名用户,创建一个文件夹ftp-name
mkdir ftp-name
把/var/ftp/ftp-name 的属主修改成ftp为属主
chown ftp:ftp /var/ftp/ftp-name
再次用匿名用户ftp上传文件尝试

还是不能上传 再次考虑查看sebool
getsebool -a | grep ftp
发现allow_ftpd_anon_write 允许匿名用户写是关闭的

setsebool -p allow_ftpd_anon_write on
//允许匿名用户写打开
setsebool -P allow_ftpd_full_access on
再次用匿名用户ftp登录上传文件尝试

(3)dirmessage_enable=YES
//目录的欢迎语
Eg: 给/var/ftp/ftp-name写个.message文件,写入Welcome to ftp-name dir!

在windows登录用匿名用户ftp登录FTP 服务器 切换至ftp-name目录查看结果

(4)#chown_upload=YES
#chown_username=whoever
启用匿名用户上传,设置一个chown_username=120 ,
无论用哪个匿名用户上传属主都 是linux用户120
修改/etc/vsftpd/vsftpd.conf文件
chown_upload=YES
chown_username=120

(5)ftp_banner FTP登录欢迎词
#ftp_banner=Welcome to FTP-SERVER

(6)#chroot_local_user=YES
让本地所有的用户都chroot
#chroot_list_enable=YES
开启chroot列表文件
#chroot_list_file=/etc/vsftpd/chroot_list
chroot列表文件的位置
用本地用户120登录ftp服务器用pwd查看目录位置

把本地普通用户tom加入到chroot_list之后再次查看

Tom用户登录ftp服务器 pwd 命令查看到的当前的工作目录

(7)#userlist_enable=YES
//启用用户列表
#userlist_deny=YES
//出现在user_list文件里的不可以登录ftp服务器
#userlist_file=/etc/vsftpd/user_list
//user_list文件的路径
没把tom加入user_list里可以登录FTP服务器

把tom用户加入到user_list里 再次登录FTP服务器
echo tom >user_list
Permission denied不允许登录FTP服务器

再次修改配置文件
#userlist_deny=NO 出现在userlist里的用户才可以登录FTP服务器
用120用户登录FTP服务器查看情况,不允许120用户登录FTP服务器,120用户不在userlist

用在userlist里的tom用户登录FTP服务器,

(8)ftpusers 凡是出现在ftpusers里的用户都不可以登录FTP服务器
把tom用户加入到ftpusers里
echo tom > ftpusers
用tom用户登录FTP服务器查看结果 tom用户是否可以登录FTP服务器

用120用户登录FTP服务器查看结果

为什么出现在ftpusers里的用户不可以登录FTP服务器
查看/etc/pam.d/vsftpd 凡是出现在ftpusers里的用户默认都是deny
禁用文件类型的上传eg:禁用exe文件上传至FTP服务器
(9)#deny_file={*.exe}
在windows客户端上传exe文件查看结果
Permission denied 禁止上传exe文件





