Авторизация

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

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

Содержание

Введение

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

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

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

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

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

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

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

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

 

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

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 на сервере

 

 

Введение

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

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

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

api key empty

 

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


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


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=<ключ пользователя>

 

 

 

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=<ключ пользователя>

 

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

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

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

 

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