深入理解 iptables 防火墙:配置、激活与测试
1. 网络地址转换(NAT)
在构建 iptables 策略时,网络地址转换(NAT)是关键的最后一步。其主要目的是将不可路由的内部地址(如 192.168.10.0/24)转换为可路由的外部地址(如 71.157.X.X)。这一转换适用于外部客户端对内部 Web 和 DNS 服务器的入站连接,以及内部网络系统发起的出站连接。
对于内部系统发起的连接,我们使用源 NAT(SNAT)目标;对于外部系统发起的连接,我们使用目标 NAT(DNAT)目标。
在 iptables 中,nat 表专门用于处理所有 NAT 规则。该表中有两个链:
- PREROUTING 链:用于对尚未经过内核路由算法的数据包应用 nat 表规则,这些数据包也尚未与 filter 表中的 INPUT 或 FORWARD 链进行比较。
- POSTROUTING 链:负责处理已经过内核路由算法,即将在计算出的物理接口上传输的数据包。经过此链处理的数据包已通过 filter 表中 OUTPUT 或 FORWARD 链的要求(以及其他可能注册的表,如 mangle 表的要求)。
以下是设置 NAT 规则的具体 iptables 命令:
echo "[+] Setting up NAT rules..." $IPTABLES -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.10.3:80 $IPTABLES -t nat -A PREROUTING -p tcp