当客户端之间的通信被阻止时,如何允许某些客户端与同一 IP 范围内的其他客户端通信?

当客户端之间的通信被阻止时,如何允许某些客户端与同一 IP 范围内的其他客户端通信?

我有一个 tap0 VPN 正在运行。为了让顾客不说话,我评论了这#client-to-client条线,它起作用了。

现在我想留下一些 IP 与客户交谈。例如:10.8.0.2 和 10.8.0.6 可以与 10.8.0.0./24 范围内的每个人通话。

我应该怎么做?

答案1

在 OpenVPN 服务器的配置文件中/etc/openvpn/server.conf,确保client-to-client禁用或删除该行,以便iptables可以操作此类数据包。然后将静态 IP 地址分配给应与其余客户端通信的两个客户端。然后使用 iptables 阻止未经授权的客户端之间的通信。

为用户 tom 和 jerry 分配静态 IP 地址

$ sudo echo "tom,10.0.8.2" >> ifconfig-pool-persist ipp.txt
$ sudo echo "jerry,10.0.8.6" >> ifconfig-pool-persist ipp.txt
# Then restart openvpn service
$ systemctl restart openvpn@server

然后将 iptables 规则添加到 FORWARD 链,记住规则是自上而下处理的(10.0.8.1属于 OpenVPN 服务器)

$ sudo iptables -A FORWARD -s 10.0.8.1 -d 10.0.8.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -s 10.0.8.2 -d 10.0.8.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -s 10.0.8.6 -d 10.0.8.0/24 -j ACCEPT
$ sudo iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
# Assuming OpenVPN server uses tun0, block unauthorized client-to-client
$ sudo iptables -A FORWARD -i tun0 -o tun0 -j DROP

如果client-to-client启用,iptables则无法操纵此类流量,因为它没有推送到内核

参考:https://serverfault.com/questions/736274/openvpn-client-to-client

相关内容