我的路由器上的 NAT Loopback 是否存在安全问题?

信息安全 网络 路由
2021-08-18 16:29:52

一些 DSL 路由器会阻止 NAT 环回。安全有时被认为是原因。NAT 环回真的是一个安全问题吗?如果是这样,它是如何被利用的?

NAT 环回... LAN 上的机器能够通过 LAN/路由器的外部 IP 地址访问 LAN 上的另一台机器(在路由器上设置端口转发以将请求定向到 LAN 上的相应机器) . 如果没有 NAT 环回,您必须在 LAN 上使用设备的内部 IP 地址。

编辑:安全性的提及诚然来自非官方来源,这就是为什么我想澄清这一点......

来自BT 社区论坛

这不是故障。大多数路由器不会在同一个接口(环回)上发送和接收数据,因为这是一个安全风险。

往下,来自同一用户的同一页面:

作为一名网络工程师,我每天都使用 Cisco 和 Brocade 路由器,由于固有的安全问题,这些路由器不允许环回。BT 采用了一种安全性非常重要的方法,并且与企业级路由器一样,不允许环回。

NAT Loopback Routers 上的页面

许多 DSL 路由器/调制解调器会阻止环回连接作为安全功能。

老实说,到目前为止,我一直认为不支持 NAT 环回只是硬件/固件的故障,而不是“安全功能”?!恕我直言,它的遗漏是一个更大的问题。(如果你没有猜到,我的路由器不支持 NAT 环回。)

3个回答

大多数消费级路由器都没有禁止它,它只是不起作用。

想象以下场景。这不是假设,只需tcpdump在您自己的计算机上运行,​​您就会立即看到它的发生。刚才从我的 Buffalo ddwrt 中捕获,只是为了验证。

玩家:[Router: 10.0.0.1] [Computer1: 10.0.0.3] [Computer2: 10.0.0.4]
外网IP:99.99.99.99,转发给Computer2

  • 计算机 1 到路由器 [10.0.0.3 -> 99.99.99.99]

  • 路由器使用 DNAT 将目标更改为 10.0.0.4 并将其推送回本地网络:
    路由器到 Computer2 [10.0.0.3 -> 10.0.0.4]

  • Computer2 尝试通过发送到源 IP 来响应数据包。
    计算机 2 到计算机 1 [10.0.0.4 -> 10.0.0.3]

  • 计算机1:WTF?
    计算机 1 期待来自 99.99.99.99 的回复,但收到了来自 10.0.0.4 的回复。地址不匹配,连接失败,返回 RST 数据包。

现在,您要问了,为什么路由器在对 Computer2 进行 DNAT 时,不对从 Computer1 到路由器内部 IP 的连接进行 SNAT?因为 SNAT 规则会使所有其他不遵循上述模式的流量变得一团糟。

SNAT 真的应该只用于一个方向,除非您愿意花费大量时间和精力来制定和维护不会对您不利的 NAT 规则集。

并抢占任何说这个的人:

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -d 10.0.0.0/24 -j MASQUERADE

我要指出,这条规则不仅会影响 NAT 环回流量,还会影响桥接流量(例如 WiFi 网络到有线网络),这会使 WiFi 路由器令人沮丧地坏掉。必须调整规则以仅匹配环回流量,这稍微复杂一些,并且可能涉及标记数据包。不是不可能,但不是大多数路由器的工程和调试;当然也充满了危险。

术语表:
SNAT = 源 NAT(更改源 IP)
DNAT = 目标 NAT(更改目标 IP)
NAT = 网络地址转换

找不到此 NAT 环回安全问题声明的技术依据。=)

在我早期的记忆中,唯一的环回问题是将 cat5e 的 RJ45 的两端连接到同一个交换机并破坏了 LAN 的连接。那时,我们称之为环回。但这更像是技术问题而不是安全问题。

存在一个安全问题,因为环回的所有流量在目的地看来都是来自进行环回的路由器,而不是实际的源。它对您的内部流量的作用与常规 NAT 对您的传出流量的作用相同。对于企业系统来说,这是一种安全风险,每次与服务器的连接都需要仔细检查潜在的大量路由器日志以确定来源。

对于家庭网络,您可能不会以同样的方式关注内部安全。