我正在尝试使用 OpenVPN 设置 pfSense 服务器。
OpenVPN 将使用tap
界面,tun
客户端对我们来说没有选择。
LAN 网络是10.0.0.0/24
,pfSense 机器是10.0.0.10
,客户端 DHCP 范围当前是10.0.0.200-10.0.0.220
。
客户端可以通过 DHCP 顺利连接并可以使用网络。
我尝试使用 pfSense 中的客户端特定覆盖来分配静态 IP。我使用了常用建议的ifconfig-push
命令,但我测试的客户端(Windows 8 和 Arch Linux)不采用其各自覆盖中分配的 IP。我尝试ifconfig-push
使用不同的参数(客户端 IP + 服务器、客户端 IP + 子网掩码,...)。
如果我让 tap-interface 的 DHCP 保持打开状态,客户端将从客户端 DHCP 范围中获取 IP 地址,如果我关闭 DHCP,客户端根本无法获取 IP。我尝试将静态 IP 推送到 DHCP 范围之内和之外。
有什么方法可以使覆盖工作并强制将分配的 IP 分配给客户端?我尤其需要这个,因为 pfSense 防火墙的访问限制。
答案1
经过一些深的挖掘时我发现了一个漏洞在 pfSense 的 Redmine 跟踪器中。这表明 OpenVPN 服务器缺少该client-config-dir
变量。
添加
mode server;client-config-dir /var/etc/openvpn-csc;
高级服务器选项以及提供客户端特定的覆盖
ifconfig-push [IP] [netmask]
成功了。
答案2
根据我的经验,更新了一些内容:
适用于 pfSense 2.3.2
缺少的选项“client-config-dir”已修复。现在很好。
但现在,默认情况下,pfsense 中的 openvpn 服务器配置有选项“用户名作为通用名称”
因此,在客户端特定的覆盖字段“通用名称”中尝试写入用户名而不是通用名称。
如果您在分配静态 IP 时遇到问题,请尝试检查“/var/etc/openvpn/server1.conf”中的 openvpn 服务器配置是否有该选项。
PS ifconfig-push 选项保持不变
答案3
我配置了两个 vpn 服务器,因此在 /var/etc/openvpn-csc 下有两个文件夹
/var/etc/openvpn-csc/server2
/var/etc/openvpn-csc/server3
我不确定索引为什么来自 server2。无论如何,在检查 cat /var/etc/openvpn/server2.conf 和 server3.conf 并确定每个服务器文件夹属于哪个文件夹后,我mode server;client-config-dir /var/etc/openvpn-csc/server2;
在高级服务器选项以及客户端特定覆盖中添加了ifconfig-push [IP] [netmask]
: 。之后我得到了静态 IP。