首页主机资讯Linux FTPServer的防火墙配置技巧

Linux FTPServer的防火墙配置技巧

时间2025-12-01 11:06:04发布访客分类主机资讯浏览1412
导读:Linux FTP Server 防火墙配置技巧 一 基础概念与模式选择 FTP 有两种工作模式:主动模式(服务器从20/tcp主动连客户端的数据端口)与被动模式(服务器在被动端口范围监听,由客户端主动连入)。主动模式常受客户端 NAT/...

Linux FTP Server 防火墙配置技巧

一 基础概念与模式选择

  • FTP 有两种工作模式:主动模式(服务器从20/tcp主动连客户端的数据端口)与被动模式(服务器在被动端口范围监听,由客户端主动连入)。主动模式常受客户端 NAT/防火墙影响,跨公网更推荐被动模式。无论哪种模式,控制通道都使用21/tcp。为提高可控性与安全性,建议在服务器上显式配置被动端口范围,并在防火墙中仅放行该范围。

二 使用 firewalld 的推荐做法

  • 放行控制通道与被动端口范围(示例范围:30000–31000/tcp):
    sudo firewall-cmd --permanent --add-service=ftp
    sudo firewall-cmd --permanent --add-port=21/tcp
    sudo firewall-cmd --permanent --add-port=30000-31000/tcp
    sudo firewall-cmd --reload
    
    说明:许多发行版对内置的 ftp 服务包含模块处理 FTP 协议细节;若未生效或你使用自定义端口,显式放行 21/tcp 与被动端口范围更稳妥。
  • 仅允许特定来源访问(示例:仅内网 192.168.1.0/24):
    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ftp" accept'
    sudo firewall-cmd --reload
    
  • 运行时查看与持久化:
    sudo firewall-cmd --list-all
    sudo firewall-cmd --runtime-to-permanent
    
    提示:若使用 firewalld,优先用“服务/富规则+端口”的组合,减少直接操作链表的复杂度。

三 使用 iptables 的做法

  • 放行控制通道(21/tcp),并仅对被动端口范围放行数据通道(示例:30000–31000/tcp):
    # 控制通道
    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 30000:31000 -m state --state NEW,ESTABLISHED -j ACCEPT
    sudo iptables -A OUTPUT -p tcp --sport 30000:31000 -m state --state ESTABLISHED -j ACCEPT
    
    说明:主动模式涉及服务器从 20/tcp 主动出站连接客户端高位端口,但在 NAT/严格出站策略下更易受阻,跨公网环境通常改用被动模式。
  • 保存规则(按发行版):
    • Debian/Ubuntu:
      sudo apt-get install iptables-persistent
      sudo netfilter-persistent save
      sudo netfilter-persistent reload
      
    • RHEL/CentOS 7(传统方式):
      sudo service iptables save
      
    • 通用:
      sudo iptables-save >
           /etc/iptables/rules.v4
      
    提示:规则顺序与状态匹配(NEW/ESTABLISHED)很重要,避免误放或拦截。

四 vsftpd 与防火墙的配合要点

  • /etc/vsftpd.conf 中显式设置被动端口范围,并重启服务:
    pasv_min_port=30000
    pasv_max_port=31000
    # 其他常用安全项可按需开启:
    # anonymous_enable=NO
    # local_enable=YES
    # write_enable=YES
    # chroot_local_user=YES
    sudo systemctl restart vsftpd
    
    随后在防火墙中仅放行上述端口范围,避免开放 1024–65535 这类过宽区间。
  • 若使用非默认端口(如 2121/tcp),需同步修改 vsftpd 的 listen_port 并在防火墙放行对应端口。

五 安全加固与排错清单

  • 加固建议
    • 优先采用被动模式 + 固定小范围被动端口,并在防火墙精确放行;避免使用过宽端口段。
    • 结合 firewalld 富规则限制来源网段,仅暴露必要服务。
    • 启用 SELinux/AppArmor 等强制访问控制,配合最小权限原则;必要时检查相关布尔值与策略。
    • 如非必须,优先考虑更安全的 SFTP/SSH 替代明文 FTP。
  • 快速排错
    • 使用 sudo firewall-cmd --list-allsudo iptables -L -n -v 核对规则是否生效与命中计数。
    • 客户端连接失败但端口已放行时,优先检查:被动端口范围是否一致、服务器是否监听该范围、NAT/云安全组是否放通、SELinux/AppArmor 是否拦截。

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


若转载请注明出处: Linux FTPServer的防火墙配置技巧
本文地址: https://pptw.com/jishu/759898.html
Debian Golang如何配置环境变量 如何在Linux FTPServer上创建虚拟目录

游客 回复需填写必要信息