我已经在 FreeBSD 10.3 服务器上设置了 OpenVPN + PF 设置。
我的 VPN 客户端包括管理员(应该具有网络的完全访问权限)和不受信任的用户(只能访问几个 IP 地址)。
我使用 client-config-dir 为特定用户设置唯一的 IP 地址,然后使用 PF 阻止或传递该地址。
问题是由于 OpenVPN 是使用 Tap 设备设置的,因此任何连接的客户端都可以手动将其 IP 地址更改为受信任的 IP 并覆盖此限制。
即:我将一台机器连接到 VPN,根据其 ccd,该机器的 IP 地址为 10.0.1.11,这是不受信任的。但如果客户端将其 IP(使用 ifconfig)更改为受信任的 10.0.1.15,则其限制将被覆盖。
有没有什么方法可以强制客户端只能使用特定的 IP 地址,而无需使用 TUN 设备?
如果没有,是否有任何方法可以过滤网络访问,而无需使用 VPN 客户端 IP 地址或运行单独的 VPN?
感谢您的帮助
答案1
OpenVPN 无法做到这一点。只需在另一个端口上创建第二个 OpenVPN 实例,使用一些额外的密钥和完全不同的子网即可使其更安全。这可以使用相同的证书和最少的额外管理工作来完成。
只是一个想法:我知道有一种方法可以运行连接前和连接后脚本。也许你可以这样做:默认阻止所有 VPN 流量,并在连接后启用流量(使用连接的隧道 IP 创建 pf 规则)这样如果用户随后切换他的 IP,pf 将不会让任何流量通过。(仅是我的 2 分钱)