如何防止客户端通过 PfSense 在 OpenVPN 中获取静态 IP(由客户端特定覆盖设置)?

如何防止客户端通过 PfSense 在 OpenVPN 中获取静态 IP(由客户端特定覆盖设置)?

我在通过 PfSense 进行 OpenVPN 时遇到当前设置问题。情况如下:

  1. 我已经在网络 192.168.222.0/24 中创建了一个 OpenVPN 服务器;

  2. 创建了两个客户端证书,C1 和 C2。

  3. C1 通过“客户端特定覆盖”选项卡将 192.168.222.2/24 作为其静态 IP。

  4. C2 没有特殊配置(因此其 IP 将根据其与 OpenVPN 服务器的连接顺序而动态变化)。

当将 C2 连接到 OpenVPN 服务器时,C2 获取 IP 192.168.222.2。

在 C2 连接后,将 C1 连接到 OpenVPN 服务器,C1 获取 IP 192.168.222.2(其静态 IP 地址在“客户端特定覆盖”中定义)哎呀!

我如何防止 OpenVPN 服务器将 C2 的静态定义的 IP 地址提供给 C1?

我试过@Luca Gibelli 的回答,重启服务器后,它停止工作。查看日志发现 openvpn 抛出了以下错误:

Oct 2 17:43:33  openvpn 36651   Use --help for more information.
Oct 2 17:43:33  openvpn 36651   Options error: --server already defines an ifconfig-pool, so you can't also specify --ifconfig-pool explicitly

另外,我发现了关于此问题的讨论这里但没有解决方案。

有什么办法可以绕过这个错误吗?

答案1

您正在寻找的是ifconfig-poolOpenVPN 选项。它允许您为客户端指定动态 IP 地址的 IP 范围。如果您想分配 192.168.222.10-254 范围内的动态 IP,请使用:

ifconfig-pool 192.168.222.10 192.168.222.254 255.255.255.0

您可以Advanced configuration在 pfSense 的 OpenVPN 选项卡下添加此选项。

更多信息:https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html

答案2

由于您使用了--server 192.168.222.0 255.255.255.0指令,并且可能使用--topology subnet了选项,因此您确实有办法确保其他客户端不会获取该 IP 地址。将“client-config-dir”选项添加到服务器的配置文件中并指定一个目录,如下所示:

--client-config-dir /vpn/client-configs

然后在 /vpn/client-configs 目录中,创建一个具有静态分配的 IP 的文件:

/vpn/client-configs/clientname文件:

ifconfig-push 192.168.222.10 192.168.222.11

OpenVPN 网站上有更多信息这里

答案3

您可能误用了用户证书的 X.509 通用名称。

每个用户证书的 CN 必须是唯一的,默认情况下 pfSense 会username-as-common-name在服务器配置中添加。

因此,在客户端特定覆盖设置页面内的通用名称字段中:

  • 如果您的客户端证书的 CN 为空,请使用用户名。
  • 否则,优先使用客户端证书通用名称的值。

OpenVPN 服务器

设备模式:tun
严格用户-CN 匹配:已检查
隧道:192.168.222.0/24
拓扑:子网

C1 - 客户端特定覆盖

通用名称:用户名或客户端证书的 CN
高级:ifconfig-push 192.168.222.240 255.255.255.0

C3——客户端特定覆盖

通用名称:用户名或客户端证书的 CN
高级:ifconfig-push 192.168.222.241 255.255.255.0

C2,无覆盖:应获取 192.168.222.2/24

相关内容