iptables 问题

iptables 问题

我有一个小型网络,有一个有效的 IP 和一个带有 3 个网络接口(LAN、WAN、DMZ)的防火墙。

  • 我想在此有效 IP 上启用 PAT,以将 http 流量重定向到我的 DMZ 中的服务器。(完成)
  • 我想在这个 IP 上启用 MASQ,以阻止来自我的 LAN 的流量(已完成)
  • 我也想从我的 LAN 访问 DMZ 上的 http 服务器。(部分)

问题:

在上述情况下,我无法从 LAN 访问 DMZ 中的 http 服务器,因为它具有 MASQ 使用的 IP(我拥有的唯一有效 IP)。解决这个问题的最佳选择是什么?

网络接口:

  • eth0(广域网)
  • eth1(DMZ)
  • eth2(局域网)

    /sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

    /sbin/iptables -A FORWARD --o eth1 -d 2.2.2.2 -p tcp --dport 80 -j ACCEPT

    /sbin/iptables -t nat -A PREROUTING -i eth0 -d 1.1.1.1 -p tcp --dport 80 -j DNAT --to 2.2.2.2

    /sbin/iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT

    /sbin/iptables -A 转发 -i eth1 -o eth0 -j 接受

    /sbin/iptables -A 转发 -i eth2 -o eth0 -j 接受

答案1

我对您的解释有点困惑。因此,我在此仅使用一个示例场景:

  • eth0 = WAN = 123.11.22.33
  • eth1 = DMZ = 192.168.1.0/24
  • eth2 = LAN = 172.16.0.0/16

并且给出了网络服务器192.168.1.55

# First, allow LAN & DMZ to access the outside world
-t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Now, allow outside access to the webserver
-t nat -A PREROUTING -i eth0 -d 123.11.22.33 -p tcp --dport 80 -j DNAT --to 192.168.1.55:80
# Finally, allow forwarding
-A FORWARD -m state --state ESTABLISHED -j ACCEPT
-A FORWARD -d 191.168.1.55 -p tcp --dport 80 -j ACCEPT
-A FORWARD -i eth1 -j ACCEPT
-A FORWARD -i eth2 -j ACCEPT

如果您需要更高的安全性,请随意扩展上面的最后两行,例如:

-N eth1_fwd
-N eth2_fwd
-A FORWARD -i eth1 -g eth1_fwd
-A FORWARD -i eth2 -g eth2_fwd
-A eth1_fwd -s ...... -j ACCEPT
...
-A eth2_fwd -s ...... -j ACCEPT
...

希望这能有所帮助。别忘了添加通向 eth0 默认网关的默认路由 :)

编辑:哎呀,后面的规则中的 iface 错误

答案2

听起来你只是有标准发夹型NAT问题。

解决该问题的一个常见方法是为 DMZ 中的主机分配一个位于不同子网的私有 IP,并设置拆分 DNS。您将私有地址提供给内部主机,外部主机将获得公共地址。然后,您有防火墙规则允许内部客户端访问私有 DMZ 子网,并且您有一个 NAT 和规则,用于从地址/端口转发到 DMZ 中的 Web 服务器。

答案3

举一个可能由拓扑结构引起的问题的例子 - 如果您的内部网络 DMZ 和 LAN 使用重叠子网,那么这可能会导致您看到的问题,因为 LAN 机器不会将发往 DMZ 机器的数据包发送到防火墙/默认路由(因为它会认为 DMZ 机器是本地的)。

话虽如此,您说从 LAN 浏览 1.1.1.1:80 不起作用。这是有道理的,因为您的 DNAT 规则仅限于来自 eth0(-i eth0)的数据包,因此它不会对来自 eth2 并前往 1.1.1.1:80 的数据包进行 DNAT。我认为没有充分的理由将该 PREROUTING 规则限制为特定的以太网接口。

从 LAN 主机访问 2.2.2.2:80 有效吗?

相关内容