前面我带着大家已经配置了一个vsftpd服务器(虚拟用户模式),匿名用户和本地用户模式配置起来比较简单就没再赘述,本文再带大家开启vsftpd的SSL/TLS功能。
1.生成一个TLS证书
Vsftpd默认没有启用SSL/TLS功能,服务器和客户端之间是明文进行通信的,因此存在较大的安全风险,为了实现服务器与客户端之间的加密通信我们首先需要在服务器端生成一个TLS证书。
使用下面的命令生成一个TLS证书。
sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/vsftpd.pem -out /etc/vsftpd/vsftpd.pem
2.配置证书的存储位置
证书生成之后,我们还需要告诉服务器证书的存储位置。打开vsftpd的配置文件,指定证书的路径。
sudo vim /etc/vsftpd/vsftpd.conf
添加证书路径,在配置文件的末尾添加。
rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd.pem
4.开启服务器的SSL功能
开启服务器的SSL(继续在配置文件中添加)
ssl_enable=YES
保存配置文件,重启vsftpd服务
sudo systemctl restart vsftpd
如果没有什么报错说明重启成功。
5.开启防火墙相关的端口
sudo firewall-cmd --permanent --add-port=20-21/tcp
sudo firewall-cmd --permanent --add-port=30000-31000/tcp
重启防火墙
sudo firewall-cmd --reload
查看防火墙端口是否已经生效。
sudo firewall-cmd --list-port
6.测试
使用FileZilla
来进行验证
经过这样一番操作,你的FTP服务器就开启了SSL/TLS功能了,客户端和服务器端传文件时就不再使用明文传输了。