Управление VPN

Статус VPN-сервера
GET /vpn_servers/status

Ответ на успешный запрос:

{
    "name": "string",
    "status": "string",
    "msg": [ "string" ]
}
  • name - доменное имя;

  • status - статус домена;

  • msg - список сообщений, объясняющий текущее состояние.

Настрока VPN-подключения по PPTP, SSTP

Получение настроек
GET /vpn_servers/settings

Ответ на успешный запрос:

{
  "pptp_enabled": "boolean",
  "sstp": {
      "enabled": "boolean",
      "domain": "string",
      "port": "integer"
  },
  "network": "string",
  "zone": "string" | "null",
  "dns_suffix": "string"
}
  • pptp_enabled - если true, то сервер PPTP включен, false - выключен;

  • sstp - настройки сервера SSTP:

    • enabled - если true, то сервер SSTP включен, false - выключен;

    • domain - доменное имя, присвоенное внешнему интерфейсу. Если домен еще не задан, то null;

    • port - порт для подключения, одно из предустановленных значений (1443, 2443, 3443, 4443).

  • network - сеть, из которой VPN-серверы раздают адреса. Первый адрес в этой сети - всегда адрес самого сервера;

  • zone - зона для Lvpn0-интерфейса. Если зона не назначена, то null;

  • dns_suffix - DNS-суффикс, передаваемый в Ideco Client. Если не назначен, то может быть пустой строкой.

Изменение настроек
PUT /vpn_servers/settings

Json-тело запроса:

{
  "pptp_enabled": "boolean",
  "sstp": {
      "enabled": "boolean",
      "domain": "string",
      "port": "integer"
  },
  "network": "string",
  "zone": "string" | "null",
  "dns_suffix": "string"
}
  • pptp_enabled - если true, то сервер PPTP включен, false - выключен;

  • sstp - настройки сервера SSTP:

    • enabled - если true, то сервер SSTP включен, false - выключен;

    • domain - доменное имя, присвоенное внешнему интерфейсу. Если домен еще не задан, то null;

    • port - порт для подключения, одно из предустановленных значений (1443, 2443, 3443, 4443).

  • network - сеть, из которой VPN-серверы раздают адреса. Первый адрес в этой сети - всегда адрес самого сервера;

  • zone - зона для Lvpn0-интерфейса. Если зона не назначена, то null;

  • dns_suffix - DNS-суффикс, передаваемый в Ideco Client. Если не назначен, то может быть пустой строкой.

Ответ на успешный запрос: 200 OK

Скрипт для подключения пользователей по SSTP

Проверка возможности сгенерировать скрипт
GET /vpn_servers/powershell/status

Ответ на успешный запрос:

{
    "sstp_available": "boolean",
}
Создание скрипта
GET /vpn_servers/powershell/sstp

Ответ на успешный запрос: создается cкрипт для подключения пользователей по SSTP. В ответе отображается заголовок Content-Disposition: attachment; filename=\"Ideco_NGFW_VPN_SSTP.ps1

Управление правилами доступа к VPN

Получение списка правил
GET /vpn_servers/access_rules

Ответ на успешный запрос:

{
    "id": "integer",
    "enabled": "boolean",
    "title": "string",
    "sources": [ "string" ],
    "objects": [ "string" ],
    "vpns": [ "string" ],
    "action": "allow" | "deny",
    "two_factor": "smsaero" | "totp" | "multifactor" | "not_required",
    "comment": "string"
}
  • id - идентификатор правила;

  • enabled - статус правила: true - включено, false - выключено;

  • title - название правила, может быть пустым, но не должно превышать 42 символов;

  • sources - список источников подключения, не может быть пустым, допустимые типы:

    • any - любой источник подключения (если указан алиас any, то других алиасов в списке быть не должно);

    • ip.id - IP-адрес;

    • ip_range.id - диапазон IP-адресов;

    • subnet.id - подсеть;

    • ip_address_list.id - список IP-адресов;

    • list_of_iplists.id - cписок стран;

    • domain.id - домен.

  • objects - список объектов, для которых будут назначены адреса, не может быть пустым. Объекты могут быть следующими:

    • any - для любых объектов (если указан обьект any, то других объектов в списке быть не должно);

    • user.id - для пользователей;

    • group.id - для групп;

    • security_group.guid - для групп безопасности AD.

  • vpns - список типов VPN (протоколов подключения), не может быть пустым. Допустимые варианты:

    • any - любой тип подключения (если указан any, то других типов VPN в списке быть не должно);

    • pptp - подключение по PPTP;

    • l2tp - подключение по L2TP;

    • sstp - подключение по SSTP;

    • ikev2- подключение по IKEv2;

    • agent-vpn-ng - подключение по Wireguard (Ideco Client).

  • action - действие при совпадении источника, объекта и типа VPN, не может быть пустым, допустимые варианты:

    • allow - разрешить;

    • deny - запретить.

  • two_factor - тип требуемой двухфакторной авторизации, не может быть пустым. Должен быть not_required, если в поле action выбран deny. Допустимые варианты:

    • smsaero - аутентификация при помощи вода кода из СМС;

    • totp - аутентификация сканированием QR-кода или использованием токена;

    • multifactor - аутентификация подтверждением личности в стороннем приложении;

    • not_required - означает, что двухфакторная авторизация не требуется.

  • comment - комментарий, может быть пустым, но не должен превышать 255 символов.

Добавление правил
POST /vpn_servers/access_rules?anchor_item_id={int}&insert_after={true|false}

Параметры запроса:

  • anchor_item_id - идентификатор правила, ниже или выше которого необходимо создать новое правило. Если параметр не указан, то правило будет создано в конце списка;

  • insert_after - указывает, куда необходимо вставить новое правило. Если параметр не указан или равен true, то новое правило будет добавлено сразу после правила с указанным идентификатором. Если параметр равен false, то новое правило заменит правило с указанным идентификатором.

Json-тело запроса:

{
    "enabled": "boolean",
    "title": "string",
    "sources": [ "string" ],
    "objects": [ "string" ],
    "vpns": [ "string" ],
    "action": "allow" | "deny",
    "two_factor": "smsaero" | "totp" | "multifactor" | "not_required",
    "comment": "string"
}
  • enabled - статус правила: true - включено, false - выключено;

  • title - название правила, может быть пустым, но не должно превышать 42 символов;

  • sources - список источников подключения, не может быть пустым, допустимые типы:

    • any - любой источник подключения (если указан алиас any, то других алиасов в списке быть не должно);

    • ip.id - IP-адрес;

    • ip_range.id - диапазон IP-адресов;

    • subnet.id - подсеть;

    • ip_address_list.id - список IP-адресов;

    • list_of_iplists.id - cписок стран;

    • domain.id - домен.

  • objects - список объектов, для которых будут назначены адреса, не может быть пустым. Объекты могут быть следующими:

    • any - для любых объектов (если указан обьект any, то других объектов в списке быть не должно);

    • user.id - для пользователей;

    • group.id - для групп;

    • security_group.guid - для групп безопасности AD.

  • vpns - список типов VPN (протоколов подключения), не может быть пустым. Допустимые варианты:

    • any - любой тип подключения (если указан any, то других типов VPN в списке быть не должно);

    • pptp - подключение по PPTP;

    • l2tp - подключение по L2TP;

    • sstp - подключение по SSTP;

    • ikev2- подключение по IKEv2;

    • agent-vpn-ng - подключение по Wireguard (Ideco Client).

  • action - действие при совпадении источника, объекта и типа VPN, не может быть пустым, допустимые варианты:

    • allow - разрешить;

    • deny - запретить.

  • two_factor - тип требуемой двухфакторной авторизации, не может быть пустым. Должен быть not_required, если в поле action выбран deny. Допустимые варианты:

    • smsaero - аутентификация при помощи вода кода из СМС;

    • totp - аутентификация сканированием QR-кода или использованием токена;

    • multifactor - аутентификация подтверждением личности в стороннем приложении;

    • not_required - означает, что двухфакторная авторизация не требуется.

  • comment - комментарий, может быть пустым, но не должен превышать 255 символов.

Ответ на успешный запрос:

{
   "id": "integer"
}
  • id - идентификатор добавленного правила.

Редактирование правил
PATCH /vpn_servers/access_rules/<id правила>

Json-тело запроса:

{
    "enabled": "boolean",
    "title": "string",
    "sources": [ "string" ],
    "objects": [ "string" ],
    "vpns": [ "string" ],
    "action": "allow" | "deny",
    "two_factor": "smsaero" | "totp" | "multifactor" | "not_required",
    "comment": "string"
}
  • enabled - статус правила: true - включено, false - выключено;

  • title - название правила, может быть пустым, но не должно превышать 42 символов;

  • sources - список источников подключения, не может быть пустым, допустимые типы:

    • any - любой источник подключения (если указан алиас any, то других алиасов в списке быть не должно);

    • ip.id - IP-адрес;

    • ip_range.id - диапазон IP-адресов;

    • subnet.id - подсеть;

    • ip_address_list.id - список IP-адресов;

    • list_of_iplists.id - cписок стран;

    • domain.id - домен.

  • objects - список объектов, для которых будут назначены адреса, не может быть пустым. Объекты могут быть следующими:

    • any - для любых объектов (если указан обьект any, то других объектов в списке быть не должно);

    • user.id - для пользователей;

    • group.id - для групп;

    • security_group.guid - для групп безопасности AD.

  • vpns - список типов VPN (протоколов подключения), не может быть пустым. Допустимые варианты:

    • any - любой тип подключения (если указан any, то других типов VPN в списке быть не должно);

    • pptp - подключение по PPTP;

    • l2tp - подключение по L2TP;

    • sstp - подключение по SSTP;

    • ikev2- подключение по IKEv2;

    • agent-vpn-ng - подключение по Wireguard (Ideco Client).

  • action - действие при совпадении источника, объекта и типа VPN, не может быть пустым, допустимые варианты:

    • allow - разрешить;

    • deny - запретить.

  • two_factor - тип требуемой двухфакторной авторизации, не может быть пустым. Должен быть not_required, если в поле action выбран deny. Допустимые варианты:

    • smsaero - аутентификация при помощи вода кода из СМС;

    • totp - аутентификация сканированием QR-кода или использованием токена;

    • multifactor - аутентификация подтверждением личности в стороннем приложении;

    • not_required - означает, что двухфакторная авторизация не требуется.

  • comment - комментарий, может быть пустым, но не должен превышать 255 символов.

Ответ на успешный запрос: 200 OK

Удаление правил
DELETE /vpn_servers/access_rules/<id правила>

Ответ на успешный запрос: 200 OK

Изменение порядка правил
PATCH /vpn_servers/access_rules/<id правила>/position

Json-тело запроса:

{
   "direction": "up" | "down"
}
  • direction - направление сдвига строки с правилом в таблице:

    • up - правило поднимается на одну позицию вверх;

    • down - правило опускается на одну позицию вниз.

Ответ на успешный запрос: 200 OK

Управление правилами выдачи IP-адресов

Получение списка правил
GET /vpn_servers/lease_rules

Ответ на успешный запрос:

{
  "id": "integer",
  "title": "string",
  "objects": [ "string" ],
  "address": "string",
  "comment": "string",
  "enabled": "boolean"
}
  • id - идентификатор правила получения адресов;

  • title - название правила, может быть пустым, но не должно превышать 42 символов;

  • objects - список объектов, для которых будут назначены адреса, не может быть пустым. Объекты могут быть следующими:

    • any - для любых объектов (если указан обьект any, то других объектов в списке быть не должно);

    • user.id - для пользователей;

    • group.id - для групп;

    • security_group.guid - для групп безопасности AD.

  • address - IP-адрес, который будет назначен пользователю, или адрес сети, в которой ему будет выделен IP-адрес, если пользователь соответствует списку объектов. В строке может быть указан IP-адрес без маски или подсеть (значение не может быть пустым и не должно повторяться);

  • comment - комментарий, может быть пустым, но не должен превышать 255 символов;

  • enabled - статус правила: true - включено, false - выключено.

Добавление правил
POST /vpn_servers/lease_rules?anchor_item_id=<integer>&insert_after=<true|false>

Параметры запроса:

  • anchor_item_id - идентификатор правила, ниже или выше которого необходимо создать новое правило. Если параметр не указан, то правило будет создано в конце списка;

  • insert_after - указывает, куда необходимо вставить новое правило. Если параметр не указан или равен true, то новое правило будет добавлено сразу после правила с указанным идентификатором. Если параметр равен false, то новое правило заменит правило с указанным идентификатором.

Json-тело запроса:

{
  "title": "string",
  "objects": [ "string" ],
  "address": "string",
  "comment": "string",
  "enabled": "boolean"
}
  • title - название правила, может быть пустым, но не должно превышать 42 символов;

  • objects - список объектов, для которых будут назначены адреса, не может быть пустым. Объекты могут быть следующими:

    • any - для любых объектов (если указан обьект any, то других объектов в списке быть не должно);

    • user.id - для пользователей;

    • group.id - для групп;

    • security_group.guid - для групп безопасности AD.

  • address - IP-адрес, который будет назначен пользователю, или адрес сети, в которой ему будет выделен IP-адрес, если пользователь соответствует списку объектов. В строке может быть указан IP-адрес без маски или подсеть (значение не может быть пустым и не должно повторяться);

  • comment - комментарий, может быть пустым, но не должен превышать 255 символов;

  • enabled - статус правила: true - включено, false - выключено.

Ответ на успешный запрос:

{
   "id": "integer"
}
  • id - идентификатор добавленного правила.

Редактирование правил
PATCH /vpn_servers/lease_rules/<id правила>

Json-тело запроса:

{
  "title": "string",
  "objects": [ "string" ],
  "address": "string",
  "comment": "string",
  "enabled": "boolean"
}
  • title - название правила, может быть пустым, но не должно превышать 42 символов;

  • objects - список объектов, для которых будут назначены адреса, не может быть пустым. Объекты могут быть следующими:

    • any - для любых объектов (если указан обьект any, то других объектов в списке быть не должно);

    • user.id - для пользователей;

    • group.id - для групп;

    • security_group.guid - для групп безопасности AD.

  • address - IP-адрес, который будет назначен пользователю, или адрес сети, в которой ему будет выделен IP-адрес, если пользователь соответствует списку объектов. В строке может быть указан IP-адрес без маски или подсеть (значение не может быть пустым и не должно повторяться);

  • comment - комментарий, может быть пустым, но не должен превышать 255 символов;

  • enabled - статус правила: true - включено, false - выключено.

Ответ на успешный запрос: 200 OK

Удаление правил
DELETE /vpn_servers/lease_rules/<id правила>

Ответ на успешный запрос: 200 OK

Изменение порядка правил
PATCH /vpn_servers/lease_rules/<id правила>/position

Json-тело запроса:

{
   "direction": "up" | "down"
}
  • direction - направление сдвига строки с правилом в таблице:

    • up - правило поднимается на одну позицию вверх;

    • down - правило опускается на одну позицию вниз.

Ответ на успешный запрос: 200 OK

Работа с таблицей VPN

Получение типов VPN, используемых в таблице Доступ по VPN
GET /vpn_servers/vpns_in_access_rules

Ответ на успешный запрос:

{
   "pptp": "boolean",
   "l2tp": "boolean",
   "sstp": "boolean",
   "ikev2": "boolean",
   "agent-vpn-ng": "boolean"
}

Значение по ключу boolean указывает, используется ли этот тип в таблице VPN.

Получение типов двуфакторной авторизации, используемых в таблице Доступ по VPN
GET /vpn_servers/two_factor_in_access_rules

Ответ на успешный запрос:

{
   "smsaero": "boolean",
   "totp": "boolean",
   "multifactor": "boolean"
}

Значение по ключу boolean указывает, используется ли этот тип в таблице VPN.

Получение списка правил доступа к VPN для конкретного пользователя
GET /vpn_servers/user_access_rules/<id пользователя>

Ответ на успешный запрос:

{
  "id": "integer",
  "enabled": "boolean",
  "title": "string",
  "sources": [ "string" ],
  "objects": [ "string" ],
  "vpns": [ "string" ],
  "action": "allow" | "deny",
  "two_factor": "smsaero" | "totp" | "multifactor" | "not_required",
  "comment": "string"
}

Для несуществующего пользователя или пользователя, для которого нельзя получить полный список групп, возвращается пустой список правил.

DHCP-сервер

Получение настроек
GET /vpn_servers/dhcp

Ответ на успешный запрос:

{
  "mode": "all" | "utm" | "local" | "none" | "custom",
  "networks": [ "string" ],
  "excluded_networks": [ "string" ]
}
  • mode - режим раздачи маршрутов:

    • all - направляем весь трафик на NGFW (маршрут 0.0.0.0/0);

    • utm - раздаем маршруты до локальных и внутренних сетей NGFW;

    • local - раздаем маршруты только до локальных сетей NGFW;

    • none - не раздаем маршруты;

    • custom - раздаем только маршруты до указанных подсетей.

  • networks - список подсетей, маршруты до которых передаются в режиме custom. Допустимы алиасы подсетей, IP-адресов, доменов;

  • excluded_networks - список подсетей, маршруты до которых исключаются в любом режиме. Допустимы алиасы подсетей, IP-адресов, доменов.

Изменение настроек
PUT /vpn_servers/dhcp

Json-тело запроса:

{
  "mode": "all" | "utm" | "local" | "none" | "custom",
  "networks": [ "string" ],
  "excluded_networks": [ "string" ]
}

Ответ на успешный запрос: 200 OK

Last updated