OpenVPN 允许两个客户端相互连接,而无需全局使用客户端到客户端

Jam*_*ite 8 routing openvpn centos

我在 CentOS 6 上运行 OpenVPN 2.3.7。我正在使用路由 (tun) 并且有两个 OpenVPN 实例。在第二个实例中,我希望有两个客户端彼此可见,即 ping、访问端口等。它们都在同一个子网中,所以应该相当简单,它们通过静态地址配置CCD。

我希望两个客户端能够通过他们的 OpenVPN LAN IP 地址看到对方,而无需client-to-client在 server.conf 中启用。

我很确定它可以用 iptables 来完成,我用它作为我的防火墙,虽然我使用 CSF,但它是 iptables 的包装器。

这些是客户端的 IPv4 地址:

OpenVPN Client #1: 10.8.2.14 
OpenVPN Client #2: 10.8.2.17
Run Code Online (Sandbox Code Playgroud)

我需要客户端 #1 才能访问在客户端 2 上运行的服务,如果需要响应,我想兼容性客户端 #2 可以查看客户端 #1。

我在 OpenVPN 服务器上尝试了几个 FORWARD 链规则,但是我无法在两个客户端之间进行任何通信。OpenVPN服务器明显可以ping通两个客户端,客户端可以ping通OpenVPN服务器网关,客户端明显看不到对方。

我已经尝试过但没有奏效的一些规则:

iptables -A FORWARD -s 10.8.2.14 -d 10.8.2.17 -j ACCEPT
iptables -A FORWARD -s 10.8.2.17 -d 10.8.2.14 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

我正在寻找有关 iptables 的帮助,以使两个客户端彼此可见,而无需启用客户端到客户端,请参阅这是对两个客户端的特殊要求,在其他任何地方都不需要。

另一种方法是通过 NAT 在 VPN 客户端上公开服务,但为了安全起见,我宁愿避免这样做。

任何见解都会有所帮助!

谢谢,

詹姆士

pjz*_*pjz 1

我建议您执行相反的操作:启用 iptables client-to-client,然后使用 iptables 阻止所有客户端,但您希望允许彼此通信的两个客户端除外。