Описание хендлеров
Авторизация
POST /web/auth/login
Json-тело запроса:
{
"login": "string",
"password": "string",
"rest_path": "string"
}
login
- логин, каталог администратора указывается после@
. Примеры:admin
- локальный админ, без@
;admin@ad_domain.ru
- AD/ALD администратор;admin@radius
- для RADIUS-администраторов@radius
.
password
- пароль;rest_path
- префикс URL, на который выставлять cookie. Например,/
или/rest
.
Ответ на успешный запрос: 200 ОК
После успешной авторизации сервер Ideco NGFW передает в заголовках куки. Пример значений:
set-cookie: insecure-ideco-session=02428c1c-fcd5-42ef-a533-5353da743806
set-cookie: __Secure-ideco-3ea57fca-65cb-439b-b764-d7337530f102=df164532-b916-4cda-a19b-9422c2897663:1663839003
Эти куки нужно передавать при каждом запросе после авторизации в заголовке запроса Cookie.
Разавторизация администратора
DELETE /web/auth/login
Ответ на успешный запрос: 200 ОК
После успешной разавторизации сервер Ideco NGFW передает в заголовках куки. Пример значений:
set-cookie: insecure-ideco-session=""; expires=Thu, 01 Jan 1970 00:00:00 GMT; Max-Age=0; Path=/
set-cookie: __Secure-ideco-b7e3fb6f-7189-4f87-a4aa-1bdc02e18b34=""; HttpOnly; Max-Age=0; Path=/; SameSite=Strict; Secure
Получение информации о лицензии
GET /license
Пример ответа на успешный запрос:
{
"modules": {
"active_directory": {
"available": true,
"expiration_date": 1713084779.0
},
"kaspersky_av_for_web": {
"available": true,
"expiration_date": 1713084779.0
},
"kaspersky_av_for_mail": {
"available": true,
"expiration_date": 1713084779.0
},
"application_control": {
"available": true,
"expiration_date": 1713084779.0
},
"suricata": {
"available": true,
"expiration_date": 1713084779.0
},
"advanced_content_filter": {
"available": true,
"expiration_date": 1713084779.0
},
"standard_content_filter": {
"available": false,
"expiration_date": 0
},
"ips_advanced_rules": {
"available": true,
"expiration_date": 1713084779.0
},
"icsd": {
"available": true,
"max_users_count": 10000
}
},
"general": {
"available": true,
"reason": "",
"not_upgrade_after": 1713084779.0,
"tech_support_end": 1713084779.0,
"start_date": 1709628779.7338443,
"expiration_date": 1713084779.0
},
"license_type": "enterprise-demo",
"license_id": "UTM-1098592203",
"server_name": "UTM",
"last_update_time": 1709628781.5150864,
"company_id": "Ideco",
"server_id": "CI-GYYWDwzjGBZ8by3drEAwdYMLIVWTa9RD-AsMGk63h",
"registered": true,
"unreliable": false,
"has_connection": true,
"license_server": "https://my.ideco.ru"
}
Если лицензия для данного сервера отсутствует:
{
"registered": false,
"has_connection": true,
"license_server": "https://my.ideco.ru"
}
Управление объектами
Создание объекта IP-адрес
POST /aliases/ip_addresses
Json-тело запроса:
{
"comment": "string",
"title": "string",
"value": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- IP-адрес.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта IP-адрес.
Создание объекта Cписок IP-адресов
POST /aliases/ip_address_lists
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- список IP-адресов.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Список IP-адресов.
Создание объекта Диапазон IP-адресов
POST /aliases/ip_ranges
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "string",
"end": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;start
- первый IP-адрес диапазона;end
- последний IP-адрес диапазона.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Диапазон IP-адресов.
Создание объекта Список IP-объектов
POST /aliases/lists/addresses
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- идентификаторы IP-объектов через запятую.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Список IP-объектов.
Создание объекта Подсеть
POST /aliases/networks
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- адрес подсети в формате192.168.0.0/24
либо192.168.0.0/255.255.255.0
.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Подсеть.
Создание объекта Домен
POST /aliases/domains
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- домен.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Домен.
Создание объекта Порт
POST /aliases/ports
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "integer"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- номер порта.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Порт.
Создание объекта Диапазон портов
POST /aliases/port_ranges
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "integer",
"end": "integer"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;start
- первый порт диапазона;end
- последний порт диапазона.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Диапазон портов.
Создание объекта Порты
POST /aliases/lists/ports
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- список портов.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Порты.
Создание объекта Время
POST /aliases/time_ranges
Json-тело запроса:
{
"title": "string",
"comment": "string",
"weekdays": [ "integer" ],
"start": "string",
"end": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;weekdays
- список дней недели, где 1-пн, 2-вт, ... 7-вс;start
- начало временного отрезка в форматеЧЧ:ММ
;end
- конец временного отрезка в форматеЧЧ:ММ
.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Время.
Создание объекта Расписание
POST /aliases/lists/times
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- список идентификаторов объектов Время.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор объекта Расписание.
Получение идентификаторов объектов
GET /aliases
Ответ на успешный запрос:
[
{
"comment": "string",
"title": "string",
"type": "string",
"values": [
"string" | "integer",
"string" | "integer",
],
"id": "type.id.1"
},
{
"comment": "string",
"title": "string",
"type": "string",
"value": "string" | "integer",
"id": "type.id.1"
},
...
]
В качестве ответа будет возвращен список всех объектов, существующих в NGFW:
protocol.ah
- протокол AH;protocol.esp
- протокол ESP;protocol.gre
- протокол GRE;protocol.icmp
- протокол ICMP;protocol.tcp
- протокол TCP;protocol.udp
- протокол UDP;quota.exceeded
- IP-адреса пользователей, которые превысили квоту;any
- допускается любое значение в этом поле;interface.external_any
- все внешние интерфейсы (равно таблице Подключение к провайдеру в веб-интерфейсе и включает в себя подключения к провайдеру по Ethernet/VPN);interface.external_eth
- внешние Ethernet-интерфейсы;interface.external_vpn
- внешние VPN-интерфейсы;interface.ipsec_any
- все IPsec-интерфейсы;interface.local_any
- все локальные интерфейсы;interface.utm_outgoing
- исходящий трафик устройства;interface.vpn_traffic
- клиентский VPN трафик;group.id.
- идентификатор группы пользователей;interface.id.
- идентификатор конкретного интерфейса;security_group.guid.
- идентификатор группы безопасности AD;user.id.
- идентификатор пользователя;domain.id.
- идентификатор домена;ip.id.
- идентификатор IP-адреса;iplist.
- идентификатор объекта GeoIP (Страна);list_of_iplists.id.
- идентификатор объекта Список стран;ip_range.id.
- идентификатор объекта Диапазон IP-адресов;ip_address_list.id.
- идентификатор объекта Список IP-адресов;address_list.id.
- идентификатор объекта Список IP-объектов;port_list.id.
- идентификатор объекта Список портов;time_list.id.
- идентификатор объекта Расписание;subnet.id.
- идентификатор объекта Подсеть;port_range.id.
- идентификатор объекта Диапазон портов;port.id.
- идентификатор объекта Порт;time_range.id.
- идентификатор объекта Время;zero_subnet
- сеть0.0.0.0/0
.
Редактирование объекта IP-адрес
PUT /aliases/ip_addresses/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- IP-адрес.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Список IP-адресов
PUT /aliases/ip_address_lists/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- список IP-адресов.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Диапазон IP-адресов
PUT /aliases/ip_ranges/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "string",
"end": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;start
- первый IP-адрес диапазона;end
- последний IP-адрес диапазона.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Список IP-объектов
PUT /aliases/lists/addresses/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- идентификаторы IP-объектов через запятую.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Подсеть
PUT /aliases/networks/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- адрес подсети в формате192.168.0.0/24
либо192.168.0.0/255.255.255.0
.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Домен
PUT /aliases/domains/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- домен.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Порт
PUT /aliases/ports/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "integer"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;value
- номер порта.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Диапазон портов
PUT /aliases/port_ranges/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "integer",
"end": "integer"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;start
- первый порт диапазона;end
- последний порт диапазона.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Порты
PUT /aliases/lists/ports/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- список портов.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Время
PUT /aliases/time_ranges/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"weekdays": [ "integer" ],
"start": "string",
"end": "string",
"period": { "first": "integer", "last": "integer" } | "null"
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;weekdays
- список дней недели, где 1-пн, 2-вт, ... 7-вс;start
- начало временного отрезка в форматеЧЧ:ММ
;end
- конец временного отрезка в форматеЧЧ:ММ
;period
- срок действия. Может бытьnull
, если бессрочно.
Ответ на успешный запрос: 200 ОК
Редактирование объекта Расписание
PUT /aliases/lists/times/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
title
- заголовок, максимальная длина - 42 символа;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;values
- список идентификаторов объектов Время.
Ответ на успешный запрос: 200 ОК
Пользовательские категории Контент-фильтра
Создание пользовательской категории
POST /content-filter/users_categories
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
name
- название пользовательской категории;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;urls
- список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.
Ответ на успешный запрос:
{
"id": "string"
}
id
- идентификатор пользовательской категории.
Получение пользовательских категорий
GET /content-filter/users_categories
Json-ответ на запрос:
[
{
"id": "string",
"name": "string",
"comment": "string",
"urls": [ "string" ]
},
...
]
id
- номер категории в форматеusers.id.1
;name
- название категории, не пустая строка;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;urls
- список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.
Редактирование пользовательских категорий
PUT /content-filter/users_categories/<id категории>
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
name
- название категории, не пустая строка;comment
- комментарий, может быть пустым, максимальная длина - 255 символов;urls
- список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.
Ответ на успешный запрос:
{
"id": "string",
"name": "string",
"description": "string",
"urls": [ "string" ]
}
id
- идентификатор пользовательской категории;description
- описание пользовательской категории.
Обнаружение устройств
Получение настроек
GET /netscan_backend
Ответ на успешный запрос:
{
"enabled": "boolean",
"group_id": "integer",
"networks": [ "string" ]
}
enabled
- статус:true
- включен,false
- выключен;group_id
- идентификатор группы, в которую будут добавлены обнаруженные устройства;networks
- список локальных сетей, устройства из которых будут автоматически добавлены и авторизованы на Ideco NGFW.
Изменение настроек
PUT /netscan_backend
Json-тело запроса:
{
"enabled": "boolean",
"group_id": "integer",
"networks": [ "string" ]
}
enabled
- статус:true
- включен,false
- выключен;group_id
- идентификатор группы, в которую будут добавлены обнаруженные устройства;networks
- список локальных сетей, устройства из которых будут автоматически добавлены и авторизованы на Ideco NGFW.
Ответ на успешный запрос: 200 OK
Распространенные статусы
200 OK - Операция успешно завершена;
302 Found - Запрашиваемая страница была найдена / временно перенесена на другой URL;
400 Bad Request - Сервер не смог понять запрос из-за недействительного синтаксиса;
401 Unauthorized - Запрещено. Сервер понял запрос, но он не выполняет его из-за ограничений прав доступа к указанному ресурсу;
404 Not Found - Запрашиваемая страница не найдена. Сервер понял запрос, но не нашел соответствующего ресурса по указанному URL;
405 Method Not Allowed - Метод не поддерживается. Запрос был сделан методом, который не поддерживается данным ресурсом;
502 Bad Gateway - Ошибка шлюза. Сервер, выступая в роли шлюза или прокси-сервера, получил недействительное ответное сообщение от вышестоящего сервера;
542 - Валидация не пропустила тело запроса.
Last updated