在 AWS 服务器上,我托管了一个具有两个 WireGuard 接口的 WireGuard 对等体:
- wg0——10.0.1.0/24
- wg1——10.0.2.0/24
有两组客户端连接到同一个 AWS 服务器,但目标 WireGuard 接口不同。目前,连接到 wg0 的 PC 可以 ping 通 wg1 10.0.2.0/24 子网上的客户端。
我想阻止两个子网之间的任何访问,这样连接到 wg0 的任何客户端都不会与 wg1 上的客户端通信。
我尝试添加 iptables 规则,并得到以下结果
-P INPUT ACCEPT
-P FORWARD ACCEPT
-P OUTPUT ACCEPT
-A FORWARD -i wg1 -o wg0 -j DROP
-A FORWARD -i wg0 -o wg1 -j DROP
-A FORWARD -s 10.0.1.0/24 -d 10.0.2.0/24 -j DROP
-A FORWARD -s 10.0.2.0/24 -d 10.0.1.0/24 -j DROP
-A FORWARD -i wg1 -j ACCEPT
-A FORWARD -i wg0 -j ACCEPT
但是,我仍然可以通过上述方法从 wg0 上的客户端 ping wg1 上的客户端。实现该块可能还需要什么?
我尝试禁用net.ipv4.ip_forward,但仍然可以访问。
答案1
抱歉,我只是想更新一下上面的代码是否真的有效。我之前没有注意到,因为我忘记在 PC 上将路由设置为 10.0.2.0/.24。如果没有设置路由,从 10.0.1.8(我的 PC)向 10.0.2.0/24 中的许多地址执行 ping 操作不会导致数据包丢失,即使 10.0.2.0/24 地址上没有客户端。
然后我通过实际测试确保 10.0.1.0/24 和 10.0.2.0/24 之间的路由与我的电脑和 minecraft 服务器正常工作,然后设置上述内容确实阻止了它。