ubuntu

vsftp在Ubuntu上如何实现FTP over TLS

小樊
44
2025-09-29 09:30:54
栏目: 智能运维

要在Ubuntu上使用VSFTPD实现FTP over TLS,你需要按照以下步骤操作:

  1. 安装VSFTPD: 打开终端并运行以下命令来安装VSFTPD:

    sudo apt update
    sudo apt install vsftpd
    
  2. 生成SSL证书和密钥: 你可以使用OpenSSL来生成自签名的SSL证书和密钥。运行以下命令来创建一个私钥:

    sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem
    

    在提示时输入所需的信息。这将生成一个有效期为365天的自签名证书。

  3. 配置VSFTPD以使用SSL: 编辑VSFTPD的配置文件 /etc/vsftpd.conf

    sudo nano /etc/vsftpd.conf
    

    找到以下行并进行相应的更改:

    • ssl_enable=YES 设置为启用SSL。
    • 如果你有自签名的证书,可以设置 ssl_certssl_key 指向你的证书和密钥文件:
      ssl_cert=/etc/ssl/private/vsftpd.pem
      ssl_key=/etc/ssl/private/vsftpd.pem
      
    • 你可能还想禁用匿名用户登录,通过设置 anonymous_enable=NO
    • 确保以下行没有被注释掉(删除行首的 #):
      force_local_data_ssl=YES
      force_local_logins_ssl=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
      
    • 保存并关闭文件。
  4. 重启VSFTPD服务: 为了使更改生效,重启VSFTPD服务:

    sudo systemctl restart vsftpd
    
  5. 配置防火墙: 如果你有一个活动的防火墙,确保FTP端口(默认是21)和被动模式端口范围是开放的。例如,如果你使用的是UFW,可以运行以下命令:

    sudo ufw allow 21/tcp
    sudo ufw allow 990/tcp # FTPS控制连接
    sudo ufw allow 40000:50000/tcp # 被动模式端口范围
    
  6. 测试FTP over TLS连接: 使用支持TLS的FTP客户端(如FileZilla或其他FTP客户端软件)来测试你的FTP服务器。在连接设置中,确保选择了FTP over TLS(FTPS)。

请注意,自签名的证书不会被客户端浏览器或大多数FTP客户端默认信任。在生产环境中,你应该使用由受信任的证书颁发机构(CA)签发的证书。此外,根据你的具体需求,你可能需要进一步调整配置文件中的设置。

0
看了该问题的人还看了