vsFTPd启用SSL加密传输实操指南
一 准备与证书
sudo apt update && sudo apt install -y vsftpd openssl;在 RHEL/CentOS 执行 sudo yum install -y vsftpd openssl。sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem,按提示填写国家、组织、域名等信息。sudo chmod 600 /etc/ssl/private/vsftpd.pem。二 配置 vsFTPd 启用 SSL/TLS
sudo nano /etc/vsftpd/vsftpd.conf,按需添加或修改以下关键项(如已有同名配置项,请改为如下值):
ssl_enable=YES、force_local_data_ssl=YES、force_local_logins_ssl=YESssl_sslv2=NO、ssl_sslv3=NO、ssl_tlsv1=YES(如需更高安全可仅启用 TLSv1.2/1.3,视 vsftpd 版本与 OpenSSL 支持而定)、ssl_ciphers=HIGHrsa_cert_file=/etc/ssl/certs/vsftpd.pem、rsa_private_key_file=/etc/ssl/private/vsftpd.pemallow_anon_ssl=NO(禁止匿名使用 SSL)、require_ssl_reuse=NO(部分客户端握手兼容性更好)sudo systemctl restart vsftpd,并设置开机自启:sudo systemctl enable vsftpd。TRUE/FALSE,而常见发行版示例多用 YES/NO;若启动报错,请统一为发行版示例所用写法(如 ssl_tlsv1=YES)。三 防火墙与被动模式端口
pasv_min_port=40000、pasv_max_port=50000。sudo ufw allow 21/tcp、sudo ufw allow 990/tcp、sudo ufw allow 40000:50000/tcp、sudo ufw enablesudo firewall-cmd --permanent --add-service=ftp、sudo firewall-cmd --permanent --add-service=ftps、sudo firewall-cmd --permanent --add-port=40000-50000/tcp、sudo firewall-cmd --reload四 客户端连接与验证
ftp -v your_server_ip(若服务器仅允许加密,普通 ftp 会失败;请使用支持 TLS 的客户端如 lftp 或 FileZilla)。sudo vsftpd --version,输出中若包含 SSL support enabled 表示编译时支持 SSL。五 常见问题与加固建议
require_ssl_reuse=NO 以提升兼容性。journalctl -u vsftpd)与 vsftpd 日志(由 xferlog_enable=YES 记录),定位握手或登录失败原因。