一旦用户通过 OpenVPN 登录,是否可以阻止用户访问除特定服务器之外的每个服务器/IP,我该如何实现?
其他用户不会受到此限制的影响。
谢谢。
答案1
如果您为每个不同的用户使用 x.509 证书,则可以从 openvpn 远程 IP 池中分配一个唯一的 IP 地址。请--ifconfig-pool-persist file
参阅OpenVPN 2.2 手册。
此后,您就可以照常使用 iptables 了。
答案2
请查看存储库https://github.com/dmytro/openvpn_restrict
它使用learn-address
OpenVPN 的配置选项在客户端连接/断开连接时启动 IPTables 脚本。客户端通过证书的 CN 进行检测。
在 OpenVPN 配置中添加两行:
learn-address /etc/openvpn/connect client-disconnect /etc/openvpn/connect
并按照README中描述的方式添加脚本和配置文件。
答案3
如果您的 openvpn 配置为使用路由而不是桥接,您可以根据他们发送的证书仅向他们推送主机路由 /32 来实现这一点。openvpn 示例配置有一个如何设置的示例。