首页主机资讯如何在Ubuntu上配置FTP SSL加密

如何在Ubuntu上配置FTP SSL加密

时间2025-12-19 09:18:03发布访客分类主机资讯浏览899
导读:在 Ubuntu 上配置 FTP SSL 加密(以 vsftpd 为例) 一 准备与安装 安装 vsftpd 与 OpenSSL:sudo apt update && sudo apt install vsftpd ope...

在 Ubuntu 上配置 FTP SSL 加密(以 vsftpd 为例)

一 准备与安装

  • 安装 vsftpd 与 OpenSSL:sudo apt update & & sudo apt install vsftpd openssl
  • 备份原始配置:sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.orig
  • 建议的基本访问配置(按需调整):
    • anonymous_enable=NO
    • local_enable=YES
    • write_enable=YES
    • chroot_local_user=YES(将本地用户限制在其家目录,更安全)

二 生成或获取 SSL 证书

  • 自签名证书(测试/内网可用):
    • 生成命令:sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
    • 说明:将证书与私钥放在同一文件便于管理;生产环境建议使用受信任 CA 签发的证书
  • 使用 Let’s Encrypt 证书(公网生产推荐):
    • 获取证书:sudo apt install certbot python3-certbot-nginx
    • 申请证书:sudo certbot certonly --standalone -d yourdomain.com
    • 证书路径:/etc/letsencrypt/live/yourdomain.com/fullchain.pem 与 privkey.pem

三 配置 vsftpd 启用 SSL/TLS

  • 编辑配置文件:sudo nano /etc/vsftpd.conf,常用关键项如下(如已有则修改,无则新增):
    • 启用加密与协议
      • ssl_enable=YES
      • tls_enable=YES
      • ssl_tlsv1=YES
      • ssl_sslv2=NO
      • ssl_sslv3=NO
    • 证书与私钥(按你的证书路径设置)
      • 自签名示例:rsa_cert_file=/etc/ssl/private/vsftpd.pem;rsa_private_key_file=/etc/ssl/private/vsftpd.pem
      • Let’s Encrypt 示例:ssl_cert_file=/etc/letsencrypt/live/yourdomain.com/fullchain.pem;ssl_key_file=/etc/letsencrypt/live/yourdomain.com/privkey.pem
    • 强制加密与权限
      • allow_anon_ssl=NO
      • force_local_data_ssl=YES
      • force_local_logins_ssl=YES
      • require_ssl_reuse=NO(部分客户端不支持 SSL 会话重用时可关闭)
      • ssl_ciphers=HIGH
    • 被动模式端口范围(建议固定范围以便放行防火墙)
      • pasv_enable=YES
      • pasv_min_port=40000
      • pasv_max_port=50000
  • 保存后重启服务:sudo systemctl restart vsftpd
  • 说明:不同版本的 vsftpd 对证书选项命名可能略有差异(如 ssl_cert_file/ssl_key_file 与 rsa_cert_file/rsa_private_key_file 的兼容性),以实际配置项生效为准

四 防火墙与被动模式端口放行

  • UFW 示例:
    • 放行控制与 FTPS 端口:sudo ufw allow 21/tcp;sudo ufw allow 990/tcp
    • 放行被动端口范围:sudo ufw allow 40000:50000/tcp
  • firewalld 示例:
    • sudo 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
  • 云服务器还需在云平台安全组放行上述端口

五 客户端连接与验证

  • 使用 FileZilla 测试:
    • 协议选择:FTP - FTPS(显式 SSL,端口 990
    • 主机:服务器 IP 或域名;端口:990
    • 登录:输入本地系统用户名与密码
    • 首次连接若使用自签名证书,会提示证书不受信任,确认指纹后继续
  • 命令行验证(如不依赖 SSL 的 ftp 命令会失败,属正常):
    • lftp -u 用户名,密码 -p 990 ftps://你的域名或IP
  • 日志排查:
    • 查看服务日志:sudo tail -f /var/log/vsftpd.log(连接失败、握手错误、被动端口等问题均会记录)

六 可选方案 SFTP(基于 SSH,非 FTP over SSL)

  • 安装与启用:sudo apt install openssh-server;sudo systemctl start ssh & & sudo systemctl enable ssh
  • 防火墙放行:sudo ufw allow 22/tcp
  • 客户端使用 SFTP 协议连接(端口 22),适合无需 FTP 协议特性、追求更简运维的场景

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何在Ubuntu上配置FTP SSL加密
本文地址: https://pptw.com/jishu/775942.html
Debian Hadoop 社区支持资源在哪里 如何解读Golang日志中的堆栈信息

游客 回复需填写必要信息