Ubuntu 上使用 vsftpd 启用 SSL TLS 加密
一 准备与证书
sudo apt update && sudo apt install vsftpd opensslsudo mkdir -p /etc/ssl/privatesudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crtsudo apt install certbot python3-certbot-nginxsudo certbot certonly --nginx -d yourdomain.com二 配置 vsftpd 启用 SSL/TLS
sudo cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.baksudo nano /etc/vsftpd/vsftpd.conf,建议包含以下关键项(按需增删)
listen=YESanonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YESallow_writeable_chroot=YESpam_service_name=vsftpdssl_enable=YESallow_anon_ssl=NOforce_local_logins_ssl=YESforce_local_data_ssl=YESssl_tlsv1_2=YESssl_tlsv1_3=YES(若 OpenSSL 版本支持)ssl_sslv2=NOssl_sslv3=NOssl_tlsv1=NOssl_ciphers=HIGHrsa_cert_file=/etc/ssl/certs/vsftpd.crt、rsa_private_key_file=/etc/ssl/private/vsftpd.keyrsa_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem、rsa_private_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pempasv_enable=YESpasv_min_port=40000pasv_max_port=50000sudo systemctl restart vsftpd三 防火墙与被动模式端口
sudo ufw allow 21/tcpsudo ufw allow 40000:50000/tcpsudo ufw allow 990/tcp四 客户端连接与验证
openssl s_client -connect your_ftp_server_ip:21 -starttls ftp五 常见问题与优化
require_ssl_reuse=NO(默认开启,若客户端兼容可保持开启以增强安全性)sudo systemctl restart vsftpdpasv_min_port/pasv_max_port 与防火墙/安全组一致,且客户端使用 被动模式