当客户端连接时,如何在 pfSense 中托管的 OpenVPN 服务器中运行脚本?

当客户端连接时,如何在 pfSense 中托管的 OpenVPN 服务器中运行脚本?

我有一个 pfSense 2.6 实例,它为客户端托管 OpenVPN。我正在使用客户端版本 OpenVPN Connect 3.3.7 (2979) 进行测试。

有些 Web 端点具有动态 IP 地址,因此我无法通过 轻松推送路由Custom options。我也不想通过 VPN 重定向所有流量。

我发现了allow-pull-fqdn,但是 OpenVPN 连接版本 3.x 不支持它,来源:https://github.com/OpenVPN/openvpn3/issues/195

我现在正在寻找如何创建脚本来解析 DNS 记录并将 IP 推送到客户端配置中。

第一个选项如果 OpenVPN 服务器能够解析 DNS 记录并通过脚本或其他方式推送路由,那将是最好的,因为这样我就不需要关心客户端上的脚本了。

有没有办法这样做?

第二种选择是在客户端上运行脚本。客户端操作系统可以是 Windows、Mac 和 Linux,因此需要维护不同的脚本。

我一直在研究client-connect这个选项,但似乎根本无法让它工作。我写了一个批处理文件vpn_push_routes.bat

echo 'test' > C:\Users\user\Documents\test.txt

我已将这些行添加到客户端配置文件中:

script-security 3
client-connect C:\\Users\\user\\Documents\\vpn_push_routes.bat

OpenVPN Connect 在日志中显示以下行:UNUSED OPTIONS

[Mar 8, 2023, 18:27:20] UNUSED OPTIONS
1 [persist-tun]
2 [persist-key]
3 [data-ciphers] [AES-256-GCM:AES-128-GCM:CHACHA20-POLY1305:AES-256-CBC]
4 [data-ciphers-fallback] [AES-256-CBC]
6 [tls-client]
8 [resolv-retry] [infinite]
10 [nobind]
14 [auth-nocache]
20 [script-security] [3]
21 [client-connect] [C:\Users\user\Documents\vpn_push_routes.bat]

我也同意第二种选择。有人能帮忙吗?

答案1

似乎问题在于第二选项是所使用的客户端是OpenVPN 连接 3.3.7. 关于如何使用附加选项的文档似乎很少。

带客户端版本OpenVPN 社区 2.6.1脚本通过将以下行添加到客户端配置文件中来工作。这是参考手册适用于版本 2.6。

script-security 2
up 'C:\\Users\\user\\Documents\\vpn_push_routes.bat'

相关内容