vsftpd实现基于SSL的FTPS

一、查看是否支持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工具测试

2021-02-15_234937
2021-02-15_234911

*************** 当你发现自己的才华撑不起野心时,就请安静下来学习吧!***************
原文地址:https://www.cnblogs.com/lvzhenjiang/p/14405842.html