温馨提示×

Linux FTP服务器配置防火墙规则吗

小樊
34
2025-12-24 21:57:07
栏目: 云计算

Linux FTP服务器防火墙规则配置

一 基本要点

  • 需要放行 FTP 的控制连接端口 21/TCP;在主动模式下由服务器从20/TCP主动建立数据连接;在被动模式下服务器会开放一段被动端口范围,客户端连接到该范围的端口进行数据传输。若使用FTPS(FTP over SSL/TLS),通常还需放行990/TCP。为减少攻击面,建议仅开放必要的端口,并尽量使用被动模式 + 限定端口范围

二 常见防火墙配置示例

  • firewalld(CentOS/RHEL、Fedora)
    • 放行基础服务与端口:
      • sudo firewall-cmd --permanent --add-service=ftp
      • sudo firewall-cmd --permanent --add-port=21/tcp
      • 如需 FTPS:sudo firewall-cmd --permanent --add-port=990/tcp
    • 放行被动端口范围(示例:40000–50000/TCP):
      • sudo firewall-cmd --permanent --add-port=40000-50000/tcp
    • 使配置生效:sudo firewall-cmd --reload
  • UFW(Ubuntu/Debian)
    • 放行常用端口与被动范围:
      • sudo ufw allow 20/tcp
      • sudo ufw allow 21/tcp
      • 如需 FTPS:sudo ufw allow 990/tcp
      • 被动范围(示例):sudo ufw allow 40000:50000/tcp
    • 启用防火墙:sudo ufw enable
  • iptables(传统方式)
    • 放行控制与数据端口:
      • sudo iptables -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
      • sudo iptables -A OUTPUT -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT
      • 主动模式数据端口(如启用主动模式):sudo iptables -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED -j ACCEPT
    • 放行被动端口范围(示例:40000–50000/TCP):
      • sudo iptables -A INPUT -p tcp --dport 40000:50000 -m state --state NEW,ESTABLISHED -j ACCEPT
    • 保存规则(视发行版而定):
      • Debian/Ubuntu:sudo iptables-save > /etc/iptables/rules.v4
      • RHEL/CentOS:sudo service iptables save 或保存至 /etc/sysconfig/iptables

三 与 FTP 服务器协同的关键配置

  • 在 vsftpd 中设置被动端口范围(示例:40000–50000),并确保与防火墙放行范围一致:
    • pasv_enable=YES
    • pasv_min_port=40000
    • pasv_max_port=50000
    • 如需加密,启用 SSL/TLS(示例):
      • ssl_enable=YES
      • rsa_cert_file=/etc/ssl/certs/vsftpd.pem
      • rsa_private_key_file=/etc/ssl/private/vsftpd.key
  • 修改配置后重启服务:sudo systemctl restart vsftpd。

四 验证与排错

  • 使用客户端(如 FileZilla)连接,切换到被动模式,测试上传/下载是否正常;命令行可用 ftp 或 lftp 测试。
  • 查看防火墙与端口状态:
    • firewalld:sudo firewall-cmd --list-ports / --list-services
    • UFW:sudo ufw status verbose
    • iptables:sudo iptables -L -n -v
  • 若使用云服务器,确保安全组/ACL 也放行相应端口(如21、990、40000–50000/TCP)。

五 安全建议

  • 优先采用**SFTP(基于 SSH)**替代明文 FTP,减少防火墙与协议复杂度,提升安全性。
  • 避免使用过宽的被动端口范围;仅开放必要端口,并限制来源网段。
  • 启用日志监控,定期审计规则与访问记录。

0