Управление 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
Ответ на успешный запрос: создается скрипт для подключения пользователей по 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
- список стран;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
- список стран;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
- список стран;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
Изменение порядка правил
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
Изменение порядка правил
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-адресов, доменов.
Last updated