我们正在运行 Apache 2.4 的 Ubuntu 18.04 服务器上构建 PHP 后端应用程序。
应用程序需要连接到只能通过 VPN 连接的安全外部服务器。服务器仅通过 SSH 命令行进行连接。
我可以通过这样的命令行设置 VPN:
安装 OpenConnect:
sudo apt install openconnect
我不能 100%确定此命令是否必要:
sudo /sbin/modprobe tun
然后使用 OpenConnect 连接到 VPN:
sudo -b openconnect vpn.example.com
要连接我需要输入以下信息:
- 组名(即“默认”)
- 用户名
- 密码
- 选择双因素身份验证的文本菜单选项(即“1”)
双重身份验证通过我手机上的一个应用程序进行。
我们需要能够完成所有这些操作,但要让连接在后台永久运行,以便 PHP 应用程序可以通过 VPN 连接到安全服务器。
目前,即使我使用该-b
选项,终端窗口也不会返回到命令行,并且没有任何迹象表明如果我关闭终端窗口/断开与服务器的连接,VPN 连接将保留。
如果有帮助的话我们使用以下 PHP 进行连接:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://secure-server.example.com/api/');
curl_setopt($ch, etc. etc. etc.)
$response = curl_exec($ch);
curl_close($ch);
此方法在本地开发环境中有效(在 Ubuntu 18.04 上)。