Авторизация

АВТОМАТИЗАЦИЯ VPN СОЕДИНЕНИЙ С API VPNKI

и как с ним работать

Содержание

Введение

API часть 1. Общие сведения и сбор статистики

1.0. Отображение статуса работы системы VPNKI

1.1. Список всех туннелей пользователя

1.2. Список активных туннелей пользователя

1.3. Статус туннелей пользователя

1.4. Статистика подключений всех туннелей пользователя

1.5. Статистика подключений определенного туннеля пользователя за указанный период времени

1.6. Отображение основных данных учетной записи пользователя

1.7. Отображение активных дополнительных услуг пользователя

1.8. Отображение данных по последним платежам

 

API часть 2.1. Управление услугами

2.1 Добавление нового туннеля в пользовательский аккаунт

2.2. Удаление туннеля из пользовательского аккаунта

2.3. Старт процесса OpenVPN в пользовательской сети и получение файла настроек .ovpn

2.4. Добавление записи в Публикации URL

2.5. Удаление ВСЕХ записей в Публикации URL

2.6. Добавление Проброса TCP порта

2.7. Удаление Проброса TCP порта

2.8. Отключение туннеля на стороне сервера

2.9. Перезапуск процесса OpenVPN на сервере

2.10. Просмотр маршрута к сети пользователя

2.11. Добавление маршрута к сети пользователя

2.12. Удаление маршрута к сети пользователя

 

Введение

API 0.4 системы VPNKI предназначен для автоматизированной работы различных приложений с нашей системой.

Обращение пользователя к ресурсам API осуществляется путем web-запроса с использованием ключа, полученного на личной странице пользователя. API системы отображает информацию в ответ на запрос пользователя в формате JSON.

Личный ключ вы можете получить внизу любой странице "Личного кабинета". Выглядит ключ приблизительно так:

api key empty

 

API часть 1. Сбор статистики


Эта часть предназначена для сбора статистики о туннелях пользователя. Доступна любому пользователю. Все запросы осуществляются методом HTTP GET

 

1.0. Актуальный статус работы системы VPNKI

Отображает актуальную информацию о работе системы VPNKI в целом с указанием протоколов и временем последней проверки (московское время). Аналог страницы https://vpnki.ru/status

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=system&action=status&key=<ключ пользователя>

 


1.1. Список всех туннелей пользователя

Отображает все туннели пользователя, ранее созданные через web-интерфейс системы или API.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=tunnels&key=<ключ пользователя>

 

 

1.2. Список активных туннелей пользователя

Отображает список активных туннелей пользователя.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=active&key=<ключ пользователя>

 

 

1.3. Статус туннелей пользователя

Отображает все туннели пользователя и их статус. status=0 - туннель отключен, status=1 - туннель подключен

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=stat&key=<ключ пользователя>

 


1.4. Статистика подключений всех туннелей пользователя

Отображает статистику всех подключений туннелей пользователя за указанный период времени.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=stat_user&key=<ключ пользователя>&ts=0000-00-00%2000-00-00&te=2016-12-12%2000-00-00

Где, ts - дата и время начала интервала

te - дата и время окончания интервала.

%20 - разделитель полей дата и время (вместо пробела)

Пример: 2015-12-31%2023-59-59

Примечание: Разделить %20 может не использоваться при обращении через браузер, а использоваться обычный пробел

 


1.5. Статистика подключений определенного туннеля пользователя за указанный период времени


Отображает статистику подключений указанного туннеля пользователя за выбранный период времени.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=stat_tunnel&key=<ключ пользователя>&tunnel=<имя туннеля>&ts=2016-10-10%2000-00-00&te=2016-10-18%2000-00-00

 

Где, tunnel - имя туннеля, например user356,

ts - дата и время начала интервала,

te - дата и время окончания интервала, допускается указать словоформу NOW.

%20 - разделитель полей дата и время (вместо пробела)

Пример: 2015-12-31%2023-59-59

Примечание: Разделить %20 может не использоваться при обращении через браузер, а использоваться обычный пробел

 

 

1.6. Отображение основных данных пользователя

Отображает основные данные пользователя.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=account&action=main&key=<ключ пользователя>

 

 

1.7. Отображение активных дополнительных услуг пользователя

Отображает основные данные пользователя.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=account&action=service&key=<ключ пользователя>

 

1.8. Отображение последних 50 записей в таблице истории платежей

Отображает последние 50 записей.

Формат запроса:

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=log&action=payments&key=<ключ пользователя>

 

 

API Часть 2. Управление туннелями

 

Эта часть предназначена для автоматизированного управления туннелями. Доступна только привилегированным пользователям.

 

2.1 Добавление нового туннеля в пользовательский аккаунт

 

Использует метод HTTP GET. Добавляет новый туннель в пользовательский аккаунт. В ответном сообщении пользователь получит автоматически созданное имя туннеля и пароль.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=add_tunnel&key=<ключ пользователя>

 

 

2.2. Удаление туннеля из пользовательского аккаунта

 

Использует метод HTTP GET. Удаляет указанный пользователем туннель. В ответном сообщении пользователь получает сообщение об успехе операции.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=del_tunnel&tunnel=<имя туннеля>&key=<ключ пользователя>

 

 

 

2.3. Старт процесса OpenVPN в пользовательской сети и получение файла настроек .ovpn

Использует метод HTTP GET. Запускает процесс OpenVPN, в ответ пользователь получает: имя_файла.ovpn и его содержимое в качестве переменных JSON

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=add&key=<ключ пользователя>

 

 

2.4. Добавление записи в Публикации URL

 

Использует метод HTTP GET. Добавляет указанное пользователем доменное имя. В ответном сообщении пользователь получает сообщение об успехе операции.

Важно! Перед использованием API пользователь должен согласиться с условиями работы Публикации URL через сайт.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=url&action=add&exname=<внешнее имя>&inip=<внутренний ip>&inport=<внутренний порт>&key=<ключ пользователя>

Где:

exname – внешне имя, которое затем станет часть URL например: demo и полный URL будет https://aivanov78-demo.vpnki.ru

inip – адрес компьютера с web-сервером во внутренней сети

inport – порт компьютера с web-сервером (скорее всего 80)

Важно, настройки будут применены в течении 5 минут после успешного выполнения команды!

 

 

2.5. Удаление ВСЕХ записей в Публикации URL

 

Использует метод HTTP GET. Удаляет все записи пользователя в Публикации URL. В ответном сообщении пользователь получает сообщение об успехе операции.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=url&action=remove&key=<ключ пользователя>

Важно, настройки будут применены в течении 5 минут после успешного выполнения команды!

 

 

2.6. Добавление Проброса TCP порта

Использует метод HTTP GET. Создает соответствие внешнего TCP порта системы vpnki (адрес 193.232.49.4) и внутреннего порта и IP адреса пользовательского устройства.

В ответном сообщении пользователь получает сообщение об успехе операции, а также выданный системой порт.

Важно! Перед использованием API пользователь должен согласиться с условиями работы Публикации URL через сайт.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=port&action=add&inip=<внутренний ip>&inport=<внутренний порт>&key=<ключ пользователя>

Где:

inip – адрес компьютера с web-сервером во внутренней сети

inport – порт компьютера с web-сервером (скорее всего 80)

Важно, настройки будут применены в течении 5 минут после успешного выполнения команды!

 

2.7. Удаление Проброса TCP порта

Использует метод HTTP GET. Удаляет соответствие внешнего TCP порта системы vpnki (адрес 193.232.49.4) и внутреннего порта и IP адреса пользовательского устройства.

В ответном сообщении пользователь получает сообщение об успехе операции.

Важно! Перед использованием API пользователь должен согласиться с условиями работы Публикации URL через сайт.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=port&action=remove&port=<внешний TCP порт системы vpnki>&key=<ключ пользователя>

Где:

port – ранее выданный TCP пользователю порт системы vpnki

Важно, настройки будут применены в течении 5 минут после успешного выполнения команды!

 

2.8. Отключение туннеля на стороне сервера

Использует метод HTTP GET. Обрывает указанный туннель со стороны сервера, если туннель подключен по протоколам PPTP, L2TP, L2TP/IPsec. В случае подкючения туннеля по протоколу OpenVPN используйте перезапуск процесса OpenVPN на сервере (см. следующий пункт API)

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=manage&target=tun&action=restart&tun=<имя туннеля>&key=<ключ пользователя>

Где:

Имя туннеля - имя пользовательского туннеля в формате userXXXX

Выдает ошибки в случаях: наличие ошибки в имени туннеля, туннель не подключен, туннель подключен с использованием протокола OpenVPN

 

 

2.9. Перезапуск процесса OpenVPN на сервере

Использует метод HTTP GET. Посылает команду перезапуска процессу OpenVPN пользователя на сервере системы.

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=ovpn&action=restart&key=<ключ пользователя>

 

 

2.10. Просмотр маршрута к сети "за туннелем" пользователя

Использует метод HTTP GET. Отображает маршрут к сети, расположенной за туннелем указанным туннелем пользователя. В ответном сообщении пользователь получает сообщение в формате сеть, маска (в укороченном формате, например /24).

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=manage&target=route&action=show&tun=<имя туннеля>&key=<ключ пользователя>

 

 

2.11. Добавление маршрута к сети пользователя

Использует метод HTTP GET. Добавляет маршрут к сети, расположенной за туннелем указанным туннелем пользователя. В ответном сообщении пользователь получает сообщение об успехе добавления.

Сеть записыватся в формате адреса сети, например 192.168.1.0

Маска сети записывается в укороченном формате, например 24 или 16

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=manage&target=route&action=add&tun=<имя туннеля>&route=<сеть>&mask=<маска сети>&key=<ключ пользователя>

 

 

2.12. Удаление маршрута к сети пользователя

Использует метод HTTP GET. Удаляет маршрут к сети, расположенной за туннелем указанным туннелем пользователя. В ответном сообщении пользователь получает сообщение об успехе добавления.

Сеть записыватся в формате адреса сети, например 192.168.1.0

Маска сети записывается в укороченном формате, например 24 или 16

https://vpnki.ru/index.php?option=com_api&format=raw&app=webservices&resource=manage&target=route&action=del&tun=<имя туннеля>&route=<сеть>&mask=<маска сети>&key=<ключ пользователя>

 

ДОПОЛНЕНИЯ ОТ ПОЛЬЗОВАТЕЛЕЙ

--------------------------------------------------------------------------------------

Дополнение к пункту 1.3. Пользоваться статусами в MajorDoMo можно считывая их с помощью Веб переменной, для этого в ссылке указываем ссылку с ключом, а в шаблоне поиска:
[b]userХХХ","status":"(.+?)"[/b] где ХХХ номер вашего тоннеля.
Далее, просто, привязываем Веб переменную к свойству ну, а далее уже на ваше усмотрение, можно сделать оповещение и/или рестарт тоннеля. В ближайшее время я собираюсь в блоге сделать подробный мануал.

 

Обещанная статья: http://ovcher.com/umnyj-dom/kontrol-za-vpn-tonnelyami-vpnki-iz-majordomo.html