温馨提示×

Ubuntu中vsftp防火墙如何配置

小樊
50
2025-10-24 19:40:29
栏目: 智能运维

Ubuntu中VSFTPD防火墙配置指南(以UFW为例)

一、前置准备:安装并启动VSFTPD

在配置防火墙前,需确保VSFTPD已安装并正常运行:

  1. 安装VSFTPD:更新软件包列表并安装VSFTPD
    sudo apt update && sudo apt install vsftpd
    
  2. 启动服务并设置开机自启
    sudo systemctl start vsftpd
    sudo systemctl enable vsftpd
    

二、配置VSFTPD(关键:定义被动模式端口范围)

防火墙需放行VSFTPD的控制连接(21端口)和数据连接(被动模式端口范围),因此需先修改VSFTPD配置文件:

  1. 编辑配置文件
    sudo nano /etc/vsftpd.conf
    
  2. 开启被动模式并设置端口范围(需添加/修改以下参数):
    pasv_enable=YES       # 启用被动模式
    pasv_min_port=50000   # 被动模式最小端口(建议设为50000+)
    pasv_max_port=50100   # 被动模式最大端口(与最小端口间隔≥100)
    
  3. 保存并重启VSFTPD
    sudo systemctl restart vsftpd
    

三、配置UFW防火墙(Ubuntu默认防火墙工具)

  1. 启用UFW(若未启用):
    sudo ufw enable
    
  2. 允许FTP控制连接(21端口)
    sudo ufw allow 21/tcp
    
  3. 允许被动模式数据连接(自定义端口范围)
    根据/etc/vsftpd.conf中设置的pasv_min_portpasv_max_port,放行对应端口范围(示例为50000-50100):
    sudo ufw allow 50000:50100/tcp
    
  4. (可选)允许SSH连接(便于远程管理):
    sudo ufw allow ssh
    
  5. 重新加载UFW规则
    使配置生效:
    sudo ufw reload
    
  6. 验证规则
    查看UFW状态,确认21端口及被动模式端口范围已放行:
    sudo ufw status
    
    正常输出应包含:
    21/tcp                   ALLOW       Anywhere
    50000:50100/tcp          ALLOW       Anywhere
    

四、测试FTP连接

使用FTP客户端(如FileZilla)连接服务器,选择“被动模式(PASV)”,验证是否能正常登录、上传/下载文件。若连接失败,需检查:

  • VSFTPD配置文件中的pasv_enable是否为YES
  • UFW是否放行了正确的端口范围;
  • 服务器防火墙(如云服务商的安全组)是否额外限制了端口。

注意事项

  • 主动模式 vs 被动模式:被动模式(PASV)更适用于大多数场景,需明确配置端口范围以避免防火墙拦截;主动模式(PORT)需允许服务器向客户端发起连接,配置复杂且易受网络限制。
  • 安全性:传统FTP协议以明文传输数据,建议启用allow_writeable_chroot=YES(限制用户在其主目录)并结合SFTP(SSH File Transfer Protocol)替代,提升数据传输安全性。

0