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