一、查看是否支持SS
$ ldd `which vsftpd`
$ ldd `which vsftpd`|grep libssl
libssl.so.10 => /lib64/libssl.so.10 (0x00007f7bd8ea7000)
二、创建自签名证书
# CentOS 7 上可以实现直接生成一个包括私钥和证书的文件
$ cd /etc/pki/tls/certs/
$ make vsftpd.pem
$ openssl x509 -in vsftpd.pem -noout –text
# 在CentOS8上手动分别生成一个证书和私钥文件,再合并成一个文件
$ mkdir /etc/vsftpd/ssl
$ cd /etc/vsftpd/ssl
$ openssl req -x509 -nodes -keyout vsftpd.key -out vsftpd.crt -days 365 -newkey rsa:2048
$ cat vsftpd.crt vsftpd.key > vsftpd.pem
三、配置vsftpd服务支持SSL
$ vim /etc/vsftpd/vsftpd.conf
# 在末尾添加即可
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 # 一个包括证书和私钥两个内容的文件
#rsa_private_key_file /path/file # 此项如果没有指定,私钥也在证书文件中
#ssl_tlsv1=YES
#ssl_sslv2=NO
#ssl_sslv3=NO
#require_ssl_reuse=NO
#ssl_ciphers=HIGH
命令行客户端测试:
$ ftp 10.4.7.1
Connected to 10.4.7.1 (10.4.7.1).
220 (vsFTPd 3.0.2)
Name (10.4.7.1:root): lzj
530 Non-anonymous sessions must use encryption.
Login failed.
421 Service not available, remote server has closed connection
用filezilla工具测试