为什么路由器(和路由器防火墙)要付出如此多的努力才能使点对点变得困难?

网络工程 路由器 tcp 防火墙 纳特 UDP
2022-02-13 01:22:57

大型路由器具有不可预测的随机端口分配(这会通过使端口预测变得不可能来削弱 UDP 打孔)和防火墙(不是设备中内置的软件防火墙,而是更上游的东西)阻止所有传出的 UDP 和TCP 流量除了 TCP 端口 80 和 443同样的事情 - 只需通过服务器中继流量并使其看起来像 HTTP 获取请求或类似的东西。

那么随机端口分配(对称 NAT)如何提高安全性呢?阻止所有传出的 UDP 怎么样?阻止除端口 80 和 443 之外的所有传出 TCP?在我看来,这些措施大多只是让我的 Skype 速度变慢,给人们带来不便。

* 更新 *

我在问为什么大型(对称、运营商级、大规模等)路由器经常选择随机(1024 到 65535 之间)端口,而不是易于预测的(3000、3001、3002 等)端口猜猜为什么本地企业会丢弃所有传出的 UDP 数据包并发送 RST 数据包以终止任何未指向端口 80 或端口 443 的 TCP 连接。

2个回答

您混淆了几件事:防火墙和 NAT。虽然您可以在许多防火墙上使用 NAT,但它们甚至不接近相同的技术。

在 NAT 上使用 UDP 打孔,它可能会或可能不会在防火墙或普通旧路由器上配置。NAT 旨在保护 IPv4 地址,而不是安全性。

防火墙通常会阻止来自外部来源的流量。如果会话是从防火墙内部开始的,则允许防火墙外的目标主机通过防火墙继续会话。

许多家庭路由器/NAT/防火墙组合往往会让人感到困惑。如果您有足够的公共 IP 地址,通常可以关闭 NAT,但启用防火墙,反之亦然。许多甚至允许在保留防火墙的同时禁用路由器和 NAT。

您需要将这些不同的技术分开并重新考虑您的问题。

老实说,我认为你不明白这个问题

我也不明白你的问题,这可能是因为我相信你在不正确的假设下运作。

让我说清楚 - 您的提供商并不关心您尝试 NAT 遍历以使您的 Skype 通话更好。如果他们不是第 1 层,他们关心的是赚钱、最大限度地减少中断并降低他们的运输成本。基本上就是这样。您所指的“大型”或“运营商级”路由器与 NAT 或“选择端口”几乎没有关系。即使是直接位于您家中路由器(或 Winn Dixie)上游的路由器,也不关心 NAT。NAT 的全部意义在于您的终端设备不知道它正在被 NAT,并且运营商的边缘路由器不在乎 - 他们看到他们分配给您的目标 IP 地址和源 IP 地址,并且他们希望尽快将这些数据包从他们的网络中取出。正如 Ron 所说,NAT 是为地址保存/保存和“移动性”而设计的,因此运营商网络边缘的客户可以充分利用分配的地址空间。您所指的大多数“大型”路由器并未部署在生产网络中,其设计考虑涉及执行任何类型的 NAT,它们是根据其 FIB/RIB 容量、端口密度、可用接口类型、TCAM 实现的大小,背板速度等。关于端口选择的指责不一定要针对运营商及其设备,

因此,如果您的问题是,“为什么客户不选择容易猜到的端口?” (或者说顺序端口),答案是许多实现在选择临时端口时就是这样做的:“取最后一个当前使用的端口,添加一个,获取新的临时端口”

但是,您需要了解选择临时端口不仅是客户端必须关心的事情 - 在以下情况下会发生“冲突”(有些简化和做作):

CLIENT_IP:EPH_PORT     <----FIN----       WEBSERVER:80
CLIENT_IP:EPH_PORT     --FIN/ACK-->       WEBSERVER:80
CLIENT_IP:EPH_PORT     <----ACK----       WEBSERVER:80

所以现在客户端的连接状态消失了,网络服务器的 TCP 会话处于FIN_WAIT. 如果客户端使用“下一个可用 + 1”临时端口标准,并使用之前用于连接同一网络服务器的相同临时端口,而前一个会话仍在FIN_WAIT网络服务器上,则会出现问题。

关于阻止除 80 和 443 之外的所有出站设备,这又取决于管理边缘设备的人,而不是运营商。运营商根本不这样做。如果我感觉自己是一个非常谨慎或偏执的管理员,并且我在一个高度公共的地方管理网络基础设施/WiFi,我可能会做同样的事情。

NAT 不是一种安全手段。然而,正如您所注意到的,为 NAT 选择的临时端口可能并且有时会被混淆以用于安全措施;如果攻击者有办法轻松猜测传输层流中使用的下一个临时端口,他们实际上可以做恶事。