说明:ssl_enable=YES表示启用ssl,allow_anon_ssl=NO表示匿名用户不支持ssl,force_local_logins_ssl=YES表示本地用户登录加密,force_local_data_ssl=YES表示本地用户数据传输加密,rsa_cert_file=/etc/pki/tls/certs/vsftpd.pem表示指定自签名证书的位置,这个位置可以任意选择,不一定是在这个目录,也可以将证书放入/etc/vsftpd/ssl中也可以,看自己的习惯怎么放就可以。
4)重启vsftpd服务,测试
[root@test certs]#systemctl restart vsftpd
说明:之前加大选项和对应的值前后都不能有空格,否则重启服务会起不来的,且日志也不会记录。
测试1,用tcpdump抓包,把vsftpd配置成不启用ssl来抓21端口的报文,然后记录到一个文件中
[root@test certs]#tcpdump -i enp2s0 -nn -x port 21 &> xx.txt
[root@test certs]#cat xx.txt |grep -i user
23:29:44.168817 IP 192.168.0.151.42304 > 192.168.0.99.21: Flags [P.], seq 1:14, ack 21, win 115, options [nop,nop,TS val 5044219 ecr 185815506], length 13: FTP: USER qiuhom
[root@test certs]#cat xx.txt |grep -i pass
23:29:44.169050 IP 192.168.0.99.21 > 192.168.0.151.42304: Flags [P.], seq 21:55, ack 14, win 227, options [nop,nop,TS val 185819003 ecr 5044219], length 34: FTP: 331 Please specify the password.
23:29:45.560826 IP 192.168.0.151.42304 > 192.168.0.99.21: Flags [P.], seq 14:26, ack 55, win 115, options [nop,nop,TS val 5045611 ecr 185819003], length 12: FTP: PASS admin
[root@test certs]#
说明:可以看到在不启用加密,用户名和密码就很容易的被别人抓包获取
测试2,把vsftpd配置成启用ssl,然后再来抓21端口的报文,然后记录到一个文件中
[root@test certs]#tcpdump -i enp2s0 -nn -x port 21 &> yy.txt
^C[root@test certs]#grep -i "user" yy.txt
[root@test certs]#grep -i "pass" yy.txt
[root@test certs]#
说明:可以看到加密后的报文我们是抓不到user和pass的字样
���filezilla等工具测试
配置好加密重启vsftpd后用filezilla工具连接它就会弹出一个整数信息,让你确认
说明:从证书上看,可看到我们刚才在证书上填写的内容,我们必须要信任了证书才可登录到服务器,也可以选择以后始终信任,这样以后再连接服务器就不会提示这个证书了