背景
我正在为嵌入式设备添加对 WireGuard VPN 的支持。用户将能够AllowedIPs
自行设置配置。WireGuard 使用允许的 IP 在主机上设置路由,因此用户可以隔离设备(使其无法通过 TCP 连接)。我一直在想办法防止这种情况发生。
潜在解决方案
一种可能的解决方案是为主机接口添加 IP 规则,这样任何具有接口源 IP 的流量始终通过该接口路由。如果我们有一个主机接口 eth0(IP 为 172.17.0.2)和一个 wireguard 接口 wg0(IP 为 172.22.0.4),则配置将如下所示:
ip route add default via 172.17.0.1 dev eth0 table 1
ip rule add from 172.17.0.2 table 1
这意味着来自该设备的连接仍应正常路由,但如果有人使用 TCP(对于 HTTP 或 ssh)连接到该设备,则响应应被路由回来。
问题
从表面上看,这似乎是一个非常优雅的解决方案,但我不禁想到,出于某种原因,这不是默认设置。我只是没有想到那个原因是什么。这是一个坏主意吗?它会给设备增加潜在的漏洞或类似的东西吗?有没有更好的方法来实现我避免设备隔离的预期目标?