Описание хендлеров
Авторизация
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"
}
Сбор анонимной статистики о работе сервера
Получение текущих настроек:
GET /gather_stat
Ответ на успешный запрос:
{
"enabled": "boolean"
}
Значение enabled
равно true
, если сбор анонимной статистики о работе сервера включен, и false
, если выключен.
Изменение настроек
PUT /gather_stat
Json-тело запроса
{
"enabled": "boolean"
}
Ответ на успешный запрос: 200 ОК
Управление объектами
Создание объекта IP-адрес
POST /aliases/ip_addresses
Json-тело запроса:
{
"comment": "string",
"title": "string",
"value": "string"
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Cписок IP-адресов
POST /aliases/ip_address_lists
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Диапазон IP-адресов
POST /aliases/ip_ranges
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "string",
"end": "string"
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Список IP-объектов
POST /aliases/lists/addresses
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": ["string"] // (идентификаторы объектов IP-адреса, через запятую)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Подсеть
POST /aliases/networks
Json-тело запроса:
{
"title": "string", // (максимальная длина - 42 символа)
"comment": "string", // (может быть пустым, максимальная длина - 255 символов)
"value": "string" // (адрес подсети в формате `192.168.0.0/24` либо `192.168.0.0/255.255.255.0`)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Домен
POST /aliases/domains
Json-тело запроса:
{
"title": "string", // (максимальная длина - 42 символа)
"comment": "string", // (может быть пустым, максимальная длина - 255 символов)
"value": "string" // (домен)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Порт
POST /aliases/ports
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "integer" // (номер порта)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Диапазон портов
POST /aliases/port_ranges
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "integer", // (первый порт диапазона)
"end": "integer" // (последний порт диапазона)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Порты
POST /aliases/lists/ports
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ] // (список портов)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Время
POST /aliases/time_ranges
Json-тело запроса:
{
"title": "string",
"comment": "string",
"weekdays": ["integer"], // (список дней недели, где 1-пн, 2-вт ... 7-вс)
"start": "string", // (начало временного отрезка в формате: ЧЧ:ММ)
"end": "string"// (конец временного отрезка в формате: ЧЧ:ММ)
}
Ответ на успешный запрос:
{
"id": "string"
}
Создание объекта Расписание
POST /aliases/lists/times
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ] // (список идентификаторов объектов Время)
}
Ответ на успешный запрос:
{
"id": "string"
}
Получение идентификаторов объектов
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"
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Список IP-адресов
PUT /aliases/ip_address_lists/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Диапазон IP-адресов
PUT /aliases/ip_ranges/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "string",
"end": "string"
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Список IP-объектов
PUT /aliases/lists/addresses/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Подсеть
PUT /aliases/networks/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Домен
PUT /aliases/domains/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "string"
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Порт
PUT /aliases/ports/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"value": "integer"
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Диапазон портов
PUT /aliases/port_ranges/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"start": "integer",
"end": "integer"
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Порты
PUT /aliases/lists/ports/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Время
PUT /aliases/time_ranges/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"weekdays": [ "integer" ],
"start": "string",
"end": "string",
"period": {"first": "integer", "last": "integer"} | null
}
Ответ на успешный запрос: 200 ОК
Редактирование объекта Расписание
PUT /aliases/lists/times/<id объекта>
Json-тело запроса:
{
"title": "string",
"comment": "string",
"values": [ "string" ]
}
Ответ на успешный запрос: 200 ОК
Пользовательские категории Контент-фильтра
Создание пользовательской категории
POST /content-filter/users_categories
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
urls
- список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.
Ответ на успешный запрос:
{
"id": "string"
}
Получение пользовательских категорий
GET /content-filter/users_categories
Json-ответ на запрос:
[
{
"id": "string", // (номер категории, вида - users.id.1)
"name": "string", // (название категории, не пустая строка)
"comment": "string",
"urls": ["string"]
},
...
]
urls
- список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.
Редактирование пользовательских категорий
PUT /content-filter/users_categories/<id категории>
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": ["string"]
}
Ответ на успешный запрос:
{
"id": "string",
"name": "string",
"description": "string",
"urls": [ "string" ]
}
Обнаружение устройств
Получение настроек
GET /netscan_backend
Ответ на успешный запрос:
{
"enabled": "boolean"
"group_id": "integer" // (идентификатор группы, в которую будут добавлены обнаруженные устройства)
"networks": ["string"] // (список локальных сетей, устройства из которых будут автоматически добавлены и авторизованы на Ideco NGFW)
}
Изменение настроек
PUT /netscan_backend
Json-тело запроса:
{
"enabled": "boolean",
"group_id": "integer",
"networks": ["string"]
}
Ответ на успешный запрос: 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