Мы создаем серверное приложение PHP на сервере Ubuntu 18.04 под управлением Apache 2.4.
Приложению необходимо подключиться к безопасному внешнему серверу, который может быть подключен только через VPN. Сервер работает из командной строки только через SSH.
Я могу настроить VPN через командную строку следующим образом:
Установите OpenConnect:
sudo apt install openconnect
Я не уверен на 100%, нужна ли эта команда:
sudo /sbin/modprobe tun
А затем подключитесь к VPN с помощью OpenConnect:
sudo -b openconnect vpn.example.com
Для подключения мне необходимо ввести следующую информацию:
Двухфакторная аутентификация проходит через приложение на моем телефоне.
Нам нужно иметь возможность делать все это, но иметь соединение, работающее постоянно в фоновом режиме, чтобы приложение 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).