Ubuntu vsftpd SSL加密

Ubuntu 上 vsftpd 启用 SSL 加密一 准备与证书安装组件:sudo apt update && sudo apt install vsftpd openssl。证书方案(二选一):自签名(测试/内网):sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftp

Ubuntuvsftpd 启用 SSL 加密

一 准备与证书

  • 安装组件:sudo apt update && sudo apt install vsftpd openssl
  • 证书方案(二选一):
    • 自签名(测试/内网):
      sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048
      -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/certs/vsftpd.pem
      提示输入国家、组织等信息;生产环境不建议长期使用自签名。
    • Let’s Encrypt(公网/可被信任):
      sudo apt install certbot python3-certbot-nginx
      sudo certbot certonly –standalone -d yourdomain.com
      证书路径:/etc/letsencrypt/live/yourdomain.com/fullchain.pemprivkey.pem

二 配置 vsftpd 启用 SSL

  • 编辑配置文件:sudo nano /etc/vsftpd.conf,建议的基础与 SSL 关键项如下:
    • 基础与访问
      • listen=YES
      • anonymous_enable=NO
      • local_enable=YES
      • write_enable=YES
      • chroot_local_user=YES
      • pam_service_name=vsftpd
    • SSL/TLS
      • ssl_enable=YES
      • allow_anon_ssl=NO
      • force_local_data_ssl=YES
      • force_local_logins_ssl=YES
      • ssl_tlsv1=YES
      • ssl_sslv2=NO
      • ssl_sslv3=NO
      • rsa_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem(或 /etc/ssl/certs/vsftpd.pem
      • rsa_private_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pem(或 /etc/ssl/private/vsftpd.pem
  • 说明:上述组合启用显式 FTPS(FTP over SSL/TLS),并强制本地用户登录与数据传输均使用加密。

三 防火墙与被动模式端口

  • 放行端口(UFW 示例):sudo ufw allow 21/tcp;sudo ufw allow 990/tcp;sudo ufw reload。
  • 被动模式(如启用)需开放一段高位端口,并在 vsftpd.conf 中设置:
    • pasv_enable=YES
    • pasv_min_port=10090
    • pasv_max_port=10100
      同时在防火墙放行该端口段:sudo ufw allow 10090:10100/tcp

四 验证与客户端连接

  • 命令行验证 SSL 握手:
    openssl s_client -connect your_server_ip:21 -starttls ftp
    看到 TLS 握手与证书链信息即表明 SSL 配置生效。
  • 图形客户端(FileZilla):协议选择 FTP – FTPS(显式),主机填域名或 IP,端口 21,输入用户名与密码连接;若使用自签名证书,首次会提示信任。
  • 服务重启与状态:
    sudo systemctl restart vsftpd;sudo systemctl status vsftpd

五 常见问题与优化

  • 协议选择:vsftpd 的 SSL 配置对应显式 FTPS(FTPES,端口 21 + STARTTLS),并非 SFTP(基于 SSH 的 22 端口)。
  • 证书权限:证书与私钥建议权限为 600,属主 root,防止其他用户读取私钥。
  • 加密套件与协议:生产环境建议仅启用 TLSv1.2/1.3,禁用 SSLv2/3 与不安全套件;可结合 ssl_ciphers 限制为 HIGH
  • 被动端口范围:若客户端在 NAT/云环境,务必正确设置 pasv_min_port/pasv_max_port 并在防火墙放行,否则数据通道会失败。
  • 证书更新:Let’s Encrypt 证书有效期 90 天,建议配置自动续期(如 systemd 定时器或 certbot 续期钩子),续期后重启 vsftpd 使新证书生效。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 55@qq.com 举报,一经查实,本站将立刻删除。转转请注明出处:https://www.szhjjp.com/n/1453024.html

(0)
派派
上一篇 2025-11-16
下一篇 2025-11-16

发表回复

登录后才能评论