![如何限制openvpn客户端与其他vpn客户端通信](https://linux22.com/image/1085968/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6openvpn%E5%AE%A2%E6%88%B7%E7%AB%AF%E4%B8%8E%E5%85%B6%E4%BB%96vpn%E5%AE%A2%E6%88%B7%E7%AB%AF%E9%80%9A%E4%BF%A1.png)
我有这个 Openvpn 场景..
我有很多 openvpn 客户端连接到我的服务器,我想要的只是限制客户端到客户端的通信。
例如,我有 (10.20.0.2,10.20.0.3,10.20.0.4,10.20.0.5) 个客户端,其中 10.20.0.2 不应与 10.20.0.3 或 4、5 通信
有没有办法使用 iptables 来实现这一点?或者通过编辑配置文件?
答案1
斯坦,
gertvdijk 只是部分正确。你必须做的是禁用客户对客户在服务器配置文件中,但您还必须以这样的方式配置 OpenVPN,即每个客户端都在他们自己的 /30 子网中,而不是让每个客户端都在同一个 /24(或其他)子网中。
因此,回答你的问题,如果客户端和客户端位于同一子网中,则无法使用 OpenVPN 的服务器/客户端配置来阻止客户端之间的通信独自的。
话虽如此,当然您可以使用 iptables 来阻止每个主机的特定流量,但这不仅配置起来很麻烦,而且扩展起来也很麻烦。因此,最好的选择是为每个客户端配置 /30 子网。
答案2
是的。正如手册页中所述:
--client-to-client
Because the OpenVPN server mode handles multiple clients through
a single tun or tap interface, it is effectively a router. The
--client-to-client flag tells OpenVPN to internally route client-
to-client traffic rather than pushing all client-originating
traffic to the TUN/TAP interface.
When this option is used, each client will "see" the other
clients which are currently connected. Otherwise, each client
will only see the server. Don't use this option if you want to
firewall tunnel traffic using custom, per-client rules.
因此,移除从您的配置中执行此行,您将限制客户端只能与服务器对话。