温馨提示×

如何配置FTP服务器的防火墙

小樊
37
2025-12-29 20:15:50
栏目: 云计算

FTP服务器防火墙配置指南

一 核心原则与端口规划

  • FTP有两种工作模式,需分别放行对应端口:
    • 主动模式:客户端连接服务器的21/TCP(控制),服务器用20/TCP主动连回客户端的数据端口。
    • 被动模式:客户端连接21/TCP后,服务器在预先配置的端口范围内选择一个端口返回给客户端,双方在该端口建立数据连接。
  • 建议在服务器上固定并放行被动模式的端口范围(如30000–31000/TCP),便于防火墙策略管理与审计。
  • 若使用加密传输,开放对应的加密端口(如990/TCP用于显式FTPS),并确保证书与FTP服务配置一致。

二 Linux常见防火墙配置

  • firewalld(CentOS/RHEL 7+/Fedora)
    1. 放行控制与数据端口(示例被动范围30000–31000/TCP
      sudo firewall-cmd --permanent --add-port=21/tcp
      sudo firewall-cmd --permanent --add-port=20/tcp
      sudo firewall-cmd --permanent --add-port=30000-31000/tcp
      sudo firewall-cmd --reload
      
    2. 如使用显式FTPS,额外放行:
      sudo firewall-cmd --permanent --add-port=990/tcp
      sudo firewall-cmd --reload
      
  • UFW(Ubuntu/Debian)
    1. 放行端口
      sudo ufw allow 21/tcp
      sudo ufw allow 20/tcp
      sudo ufw allow 30000:31000/tcp
      sudo ufw enable
      sudo ufw status
      
    2. 如使用显式FTPS,额外放行:
      sudo ufw allow 990/tcp
      
  • iptables(传统方式)
    1. 放行端口
      sudo iptables -A INPUT -p tcp --dport 21  -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 20  -j ACCEPT
      sudo iptables -A INPUT -p tcp --dport 30000:31000 -j ACCEPT
      
    2. 持久化
      • Debian/Ubuntu:
        sudo iptables-save > /etc/iptables/rules.v4
        
      • CentOS/RHEL:
        sudo service iptables save
        
  • 被动端口范围需在FTP服务配置中同步设置(见下一节)。

三 Windows服务器防火墙配置

  • 安装IIS FTP服务
    • 服务器管理器 → 添加角色和功能 → 勾选Web 服务器(IIS)下的FTP 服务器、FTP 服务、FTP 扩展并完成安装。
  • 配置入站规则
    • 高级安全 Windows 防火墙 → 入站规则 → 新建规则 → 端口 → 选择TCP → 特定本地端口填入:21,20,30000-31000 → 允许连接 → 勾选适用的配置文件(域/专用/公用)→ 命名保存。
  • 被动模式端口范围
    • 在IIS FTP站点的FTP 防火墙支持中设置被动端口范围(如30000–31000),并确保上述防火墙规则已放行相同范围。

四 服务端被动端口与加密设置示例

  • vsftpd(Linux常用FTP服务)
    1. 编辑配置文件(如**/etc/vsftpd.conf**)
      # 启用被动模式并固定端口范围
      pasv_enable=YES
      pasv_min_port=30000
      pasv_max_port=31000
      
      # 可选:启用SSL/TLS(显式FTPS)
      ssl_enable=YES
      
    2. 重启服务
      sudo systemctl restart vsftpd
      
    3. 防火墙放行对应端口(见第二节),如使用显式FTPS同时放行990/TCP
  • Windows IIS FTP
    • 在IIS管理器的FTP站点属性中设置被动端口范围,并在防火墙中放行相同范围;如需加密,配置FTPS并在防火墙放行990/TCP

五 验证与运维安全建议

  • 连通性验证
    • 使用客户端(如FileZilla)测试登录、列目录与传输;若启用被动模式,确认数据通道在配置的端口范围内建立;若启用FTPS,确认能建立加密会话。
  • 安全加固
    • 优先使用FTPS(SSL/TLS)SFTP替代明文FTP,避免敏感数据泄露。
    • 仅开放必要端口与来源网段;定期更新防火墙与FTP服务,并监控防火墙日志以发现异常流量。

0