Ubuntu FTP如何启用SSL
导读:Ubuntu FTP启用SSL的实操指南 一 准备与证书 安装 vsftpd 执行:sudo apt update && sudo apt install vsftpd 准备 SSL 证书(二选一) 自签名证书(测...
Ubuntu FTP启用SSL的实操指南
一 准备与证书
- 安装 vsftpd
- 执行:
sudo apt update & & sudo apt install vsftpd
- 执行:
- 准备 SSL 证书(二选一)
- 自签名证书(测试/内网)
- 执行:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/certs/vsftpd.crt - 合并证书与密钥(部分 vsftpd 配置要求同一文件):
sudo cat /etc/ssl/certs/vsftpd.crt /etc/ssl/private/vsftpd.key > /etc/ssl/certs/vsftpd.pem
- 执行:
- Let’s Encrypt 证书(公网生产)
- 安装 Certbot:
sudo apt install certbot python3-certbot-nginx - 获取证书:
sudo certbot certonly --standalone -d yourdomain.com - 证书路径:
/etc/letsencrypt/live/yourdomain.com/fullchain.pem与/etc/letsencrypt/live/yourdomain.com/privkey.pem
- 安装 Certbot:
- 自签名证书(测试/内网)
- 权限建议
- 私钥仅 root 可读:
sudo chmod 600 /etc/ssl/private/vsftpd.key - 证书可读:
sudo chmod 644 /etc/ssl/certs/vsftpd.crt或/etc/ssl/certs/vsftpd.pem
- 私钥仅 root 可读:
二 配置 vsftpd 启用 SSL
- 备份配置:
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig - 编辑:
sudo nano /etc/vsftpd.conf,常用关键项如下(按需调整)- 基础启用
ssl_enable=YESallow_anon_ssl=NOforce_local_logins_ssl=YESforce_local_data_ssl=YES
- 协议与套件(禁用不安全协议)
ssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NO
- 证书路径(二选一,注意与证书准备一致)
- 自签名或合并文件:
rsa_cert_file=/etc/ssl/certs/vsftpd.pem与rsa_private_key_file=/etc/ssl/private/vsftpd.key - Let’s Encrypt:
rsa_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem与rsa_private_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pem
- 自签名或合并文件:
- 其他常用
listen=YESlisten_ipv6=NOanonymous_enable=NOlocal_enable=YESwrite_enable=YESchroot_local_user=YESpam_service_name=vsftpduserlist_enable=YEStcp_wrappers=YES
- 基础启用
- 说明
- 某些 vsftpd 版本使用
ssl_cert_file/ssl_key_file,若配置项不存在可忽略;以rsa_cert_file/rsa_private_key_file为准更通用。
- 某些 vsftpd 版本使用
三 防火墙与被动模式端口
- UFW 放行
- 控制通道:
sudo ufw allow 21/tcp - 显式 FTPS 端口:
sudo ufw allow 990/tcp - 被动模式端口范围(建议配置,避免数据连接失败):
sudo ufw allow 40000:50000/tcp
- 控制通道:
- 云服务器安全组
- 放行上述端口(21、990、以及被动端口段)。
四 启动与验证
- 重启服务:
sudo systemctl restart vsftpd - 查看状态:
sudo systemctl status vsftpd(异常时journalctl -xeu vsftpd排查) - 客户端连接测试
- FileZilla:协议选 FTP - FTPS(显式),主机填域名或 IP,端口 21;首次连接应出现证书指纹确认。
- 命令行(如不强制加密可用普通 ftp,但建议用支持 TLS 的客户端):
lftp -u youruser -p 21 yourdomain.com -e "set ftp:ssl-force true; ls; quit"
五 常见问题与优化
- 证书路径或权限错误
- 确保证书与私钥路径正确、权限为 600/644,证书文件可读。
- 被动模式失败
- 在
vsftpd.conf增加:pasv_enable=YES、pasv_min_port=40000、pasv_max_port=50000,并放行对应端口段。
- 在
- 协议与套件
- 禁用 SSLv2/SSLv3,仅启用 TLSv1.x;如客户端支持更佳的 TLSv1.2/1.3,可在支持的 vsftpd 版本中优先使用。
- 日志排查
- 关注
/var/log/vsftpd.log或journalctl -u vsftpd的输出,定位握手失败、证书不匹配等问题。
- 关注
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu FTP如何启用SSL
本文地址: https://pptw.com/jishu/753960.html
