什么是防火墙链(Firewall Chains)?
防火墙链(Firewall Chains)是 防火墙规则的组织方式,通常用于 Linux 的 iptables
/nftables
或 云安全组(Security Groups) 等场景。它允许管理员将多个规则按顺序组合成逻辑链,以实现更精细的网络流量控制。
iptables
为例)iptables
中,默认有 5 个预定义链:链(Chain) 作用
INPUT 处理 进入本机 的流量(如 SSH、HTTP 请求)
OUTPUT 处理 从本机发出 的流量(如访问网站、发送邮件)
FORWARD 处理 经过本机转发 的流量(如路由器、NAT 网关)
PREROUTING 在路由决策之前修改数据包(如 DNAT 端口映射)
POSTROUTING 在路由决策之后修改数据包(如 SNAT 源地址转换)
防火墙链的工作流程
当数据包到达防火墙时,会按 链的顺序 依次匹配规则:
PREROUTING(修改目标地址,如端口映射)
INPUT(决定是否允许进入本机)
FORWARD(决定是否允许转发)
OUTPUT(决定是否允许本机发出的流量)
POSTROUTING(修改源地址,如 NAT)
示例:
bash
允许来自 192.168.1.0/24 的 SSH 访问(INPUT 链)
iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
拒绝所有其他 SSH 访问(INPUT 链)
iptables -A INPUT -p tcp --dport 22 -j DROP
允许本机访问外部 HTTP(OUTPUT 链)
iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT
在 INPUT 链中引用自定义链
iptables -A INPUT -j MY_CHAIN
在自定义链中添加规则
iptables -A MY_CHAIN -p icmp -j ACCEPT 允许 ICMP(ping)
iptables -A MY_CHAIN -j DROP 拒绝其他所有流量
防火墙链的应用场景
服务器安全
NAT 网关
PREROUTING
做 DNAT(端口映射)POSTROUTING
做 SNAT(共享上网)云安全组(Security Groups)
灵活性 极高(可自定义链和规则) 较低(通常提供 GUI,但规则逻辑固定)
适用场景 服务器、路由器、Linux 系统 个人电脑、企业网络
配置方式 命令行(iptables/nftables) 图形界面(如 Windows 防火墙)
INPUT
、OUTPUT
)处理不同方向的流量。进阶学习:
iptables
/nftables
具体命令