FortiGate 和 WireGuard UDP 漏洞

FortiGate 和 WireGuard UDP 漏洞

我正在开展一个使用 WireGuard 和 UDP Hole Punching 在对等点之间创建网状网络的项目。对等点大多位于住宅家庭网关后面,在这些网关中,打洞隧道工作正常。但是,我的客户位于 Fortigate 防火墙后面,它不允许任何未启动对等点的响应流量。我不想在他们的边界上放置中继服务器。我希望 FortiGate 传递对等流量。FortiGate 使用单个公共 IP。

我们与 Fortinet Level-3 技术人员进行了通话,他得出结论说没有什么可以做的。Fortigate 正在保护网络。我确实同意 UDP 打洞“有点像黑客行为”。但这是一种流行的黑客行为,我本以为他们会有某种“辅助”功能来适应它。

短期内,我们将内部设备置于消费者防火墙后面,这种方法有效。但从长远来看,这并不是一个好的解决办法。

在此场景中,有以下设备:

  • T1 是技术人员的笔记本电脑,位于 FortiGate 后面的办公室中
  • T2 是现场技术人员的笔记本电脑(例如蜂窝热点)
  • C1 是家中位于住宅电缆调制解调器后面的客户设备
  • H 是在静态端口上运行 wireguard 的云 rendevous 服务器
  • 所有设备都运行 WireGuard,并有一个管理动态配置的程序

什么可行,什么不可行:

  • 所有与 H 的连接均正常工作
  • 从 T2(现场)到 C1 的连接正常工作
  • 从 T1(办公室内)到 C1 的连接失败

连接流程:

  • T1 通过 wg 连接到 H,H 记下公共 ip:port 端点
  • C1 通过 wg 连接到 H,H 记下公共 ip:port 端点
  • T1 和 C1 向 H 询问连接详细信息
  • H 共享 T1 网络的已知公共端点列表
  • T1 和 C1 重新配置其对等端以使用已知端点

连接流的净效应是 C1 尝试通过为 H 开放的端口连接回 T1。并且,对于 FortiGate 而言,数据包会被丢弃,因为它们不是来自 H。大多数其他防火墙似乎都允许这种情况。

我从 T1 上的“wg”看到,已发送字节,但未收到任何内容。我从 C1 上看到的情况也一样。

我觉得奇怪的是防火墙中没有配置来适应这种情况。

我正在寻找任何和所有关于如何解决这个问题的建议。理想情况下,在防火墙配置中。如果我只是错过了什么,那就更好了……

谢谢

相关内容