В качестве клиента VPN используется OpenVPN. Для включения в работу необходимо загрузить файлы ключей и сертификатов, настроить клиент VPN, настроить работу Watchdog Ping.
Wathdog Ping обеспечивает проверку доступности сети и при сбоях должен реагировать проводя переподключение клиента VPN, и если нужно, переподключение соединения LTE и пересброс модема.
Для загрузки файлов ключей используются следующие URI:
- upload-vpn-crt.htm - сертификат клиента;
- upload-vpn-ca.htm - сертификат ЦС;
- upload-vpn-key.htm - ключ клиента.
Для настройки клиента VPN используется запрос с querytype=setvpn, с полями:
enable - включение/отключение клиента;
iface - интерфейс через который работает клиент, может быть "ethernet" или "modem";
gateway - имя или адрес сервера VPN;
port - порт сервера VPN, числовое значение;
- auth_type - тип авторизации клиента на сервере, может быть следующим (пока поддерживается только PASS_TLS):
- TLS - сертификаты (TLS);
- PASS - пароль;
- PASS_TLS - пароль и сертификаты (TLS).
- user - имя пользователя, может быть пустым;
- pass - пароль пользователя, может быть пустым;
- cipher_type - режим шифрования (пока только AES-256-CBC);
- hmac_type - аутентификация HMAC (пока только SHA512);
- verify_type - способ проверки сертификата сервера (пока поддерживается только "name", по имени);
- verify_str - строка по которой сличается сертификат сервера, вводится пользователем произвольно;
- dns1 - адрес сервера DNS 1, может быть пустым;
- dns2 - адрес сервера DNS 2, может быть пустым.
Для чтения параметров клиента VPN используется запрос с querytype=getvpn, ответ содержит следующие поля:
- status - характеризует текущее состояние клиента;
- connect_time - время в формате UnixTimeStamp показывающее момент соединения, "0" если нет данных;
- enable - включен или отключен клиент;
- iface - интерфей через который работает клиетн ("ethernet" или "modem");
- gateway - имя или адрес сервера VPN;
- port - порт сервера VPN, числовое значение;
- auth_type - тип авторизации клиента на сервере;
- user - имя пользователя, может быть пустым;
- pass - пароль пользователя, может быть пустым;
- cipher_type - режим шифрования (пока только AES-256-CBC);
- hmac_type - аутентификация HMAC (пока только SHA512);
- verify_type - способ проверки сертификата сервера;
- verify_str - строка по которой сличается сертификат сервера;
- dns1 - адрес сервера DNS 1, может быть пустым;
- dns2 - адрес сервера DNS 2, может быть пустым.
Для настройки Watchdog Ping используется запрос с querytype=setwdogping, с полями:
enable - включение/отключение;
ping_addr - адрес для пинга;
- ping_time - периодичность пинга, в секундах, от 10 секунд до 5 минут;
- ping_errors1 - количество ошибок для первого действия, если 0 то не используется;
- ping_errors2 - количество ошибок для второго действия, если 0 то не используется;
- ping_errors3 - количество ошибок для третьего действия, если 0 то не используется.
Действия которые выполняются при достижении числа ошибок:
- ping_errors1 - пересброс соединения VPN;
- ping_errors2 - пересброс соединения по модему LTE и соединения VPN;
- ping_errors3 - пересброс модема и всех соединений, счет ошибок начинается заново.
Для чтения параметров Watchdog Ping используется запрос с querytype=getwdogping, ответ содержит следующие поля:
- enable - включение/отключение;
- ping_addr - адрес для пинга;
- ping_time - периодичность пинга, в секундах;
- ping_errors1 - количество ошибок для первого действия - пересброс соединения VPN;
- ping_errors2 - количество ошибок для второго действия - пересброс соединения по модему LTE и соединения VPN;
- ping_errors3 - количество ошибок для третьего действия - пересброс модема и всех соединений.