我有一个 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