Центральная консоль
Длина комментариев (comment
) при API-запросах ограничена 255 символами.
Настройки Центральной консоли в Ideco NGFW
Получение настроек Ideco Center
GET /central_console/settings
Ответ на успешный запрос:
{
"cc_server": "string" | "null",
"last_connect": "integer" | "null",
"last_sync": "integer" | "null",
"root_ca": "string" | "null"
}
cc_server
- доменное имя или IP-адрес центральной консоли;last_connect
- timestamp последней успешной синхронизации данных;last_sync
- timestamp;root_ca
- корневой сертификат в формате PEM.
Изменение настроек Ideco Center
PATCH /central_console/settings
Json-тело запроса:
{
"cc_server": "string" | "null"
}
Загрузка корневого сертификата Ideco Center на NGFW
POST /central_console/root_ca
В тело запроса поместите содержимое корневого сертификата, скачанного в Ideco Center. Для этого откройте сертификат в текстовом редакторе и скопируйте текст.
Удаление корневого сертификата Ideco Center
DELETE /central_console/root_ca
Ответ на успешный запрос: 200 OK
API Ideco Center
Получение статуса службы
GET /servers/status
Ответ на успешный запрос:
{
"name": "string",
"status": "active|activating|deactivating|failed|inactive|reloading",
"msg": ["string"]
}
name
- название службы;status
- текущее состояние службы;msg
- список строк, описывающих состояние службы.
Общие настройки
Получение общих настроек
GET /servers/setting
Ответ на успешный запрос:
{
"domain": "string" | "null"
}
domain
- внешний адрес Ideco Center (IP-адрес или доменное имя).
Изменение общих настроек
PUT /servers/setting
Json-тело запроса:
{
"domain": "string" | "null"
}
Ответ на успешный запрос: 200 OK
Получение настройки включенности синхронизации правил
GET /servers/state
Ответ на успешный запрос:
{
"enabled": "boolean"
}
Включение/выключение синхронизации правил
PUT /servers/state
Json-тело запроса:
{
"enabled": "boolean"
}
Ответ на успешный запрос: 200 OK
Группировка серверов
Получение списка групп серверов в Ideco Center
GET /servers/groups
Пример ответа на успешный запрос:
[
{
"comment": "",
"name": "Группа 1",
"parent_id": "f3ffde22-a562-4f43-ac04-c40fcec6a88c",
"id": "e37ec0bb-fc27-406f-bd24-d0e89200561d"
},
{
"comment": "",
"name": "Корневая группа",
"parent_id": null,
"id": "f3ffde22-a562-4f43-ac04-c40fcec6a88c"
},
...
]
id
- идентификатор группы;comment
- комментарий, может быть пустым;name
- название группы серверов;parent_id
- идентификатор родительской группы серверов.
Создание группы серверов
POST /servers/groups
Json-тело запроса:
{
"comment": "string",
"name": "string",
"parent_id": "string"
}
name
- название группы;parent_id
- идентификатор родительской группы (если группа входит в Корневую группу, идентификатор Корневой группы);comment
- комментарий, может быть пустым.
Ответ на успешный запрос:
{
"id": "string" // (идентификатор созданной группы)
}
Редактирование группы серверов
PATCH /servers/groups/<id группы серверов>
Json-тело запроса:
{
"comment": "string",
"name": "string",
"parent_id": "string"
}
Ответ на успешный запрос: 200 OK
Управление подключенными серверами
Получение списка подключенных серверов
GET /servers/servers
Ответ на успешный запрос:
[
{
"id": "string",
"parent_id": "string",
"version": {
"major": "integer",
"minor": "integer",
"build": "integer",
"timestamp": "integer",
"vendor": "Ideco",
"product": "UTM",
"kind": "FSTEK" | "VPP" | "STANDARD" | "BPF",
"release_type": "release" | "beta" | "devel"
},
"cl_tunnel_addr": "string",
"title": "string",
"approved": "bool",
"last_sync": "int | null",
"last_connect": "int",
"utm_login_secret": "string",
"comment": "string",
},
...
]
id
- идентификатор сервера;parent_id
- идентификатор группы, в которую входит сервер;version
- версия сервера:major
- мажорный номер версии;minor
- минорный номер версии;build
- номер сборки;timestamp
- время выхода версии;vendor
- вендор ("Ideco");product
- код продукта;kind
- вид продукта;release_type
- тип релиза;
cl_tunnel_addr
- IPv6-адрес сервера внутри WireGuard-туннеля;title
- название сервера;approved
- флаг, означающий, подтверждено ли подключение сервера в Ideco Center;last_sync
- timestamp последней успешной синхронизации данных;last_connect
- timestamp последнего успешного подключения;utm_login_secret
- секретное значение для отправки в URL авторизации Ideco Center в Ideco NGFW;version_diff
- разница мажорных версий Ideco Center и NGFW. Если значение равно нулю - мажор одинаковый, больше нуля - версия Ideco Center выше, меньше нуля - версия NGFW выше.comment
- комментарий, максимальная длина - 255 символов, может быть пустым.
Перемещение подключенных серверов между группами/подтверждение подключения сервера к Ideco Center
PATCH /servers/servers/<id сервера>
Json-тело запроса:
{
"parent_id": "string",
"approved": "boolean"
}
Ответ на успешный запрос: 200 OK
При добавлении нового сервера ему автоматически присваивается parent_id Корневой группы.
После подтверждения подключения сервера (установки approved=true) менять это свойство нельзя (для удаления сервера вызывается метод DELETE)
Удаление сервера из Ideco Center
DELETE /servers/servers/<id сервера>
Ответ на успешный запрос: 200 OK
Управление правилами трафика Ideco Center
Контент-фильтр
Получение списка категорий (предустановленных и пользовательских)
GET /content-filter/categories
Ответ на успешный запрос:
[
{
"id": "string",
"type": "string",
"name": "string",
"comment": "string"
},
...
]
id
- номер категории в форматеusers.id.1
илиextended.id.1
.type
- тип категории:users
- пользовательские категории;extended
- расширенные категории (SkyDNS);files
- категории для файлов;special
- специальные предопределенные категории (Прямое обращение по IP, Все категоризированные запросы, Все некатегоризированные запросы, Все запросы).other
- остальные категории.
name
- имя категории (для отображения пользователю).comment
- описание категории (для отображения пользователю).
Получение списка пользовательских категорий
GET /content-filter/users_categories
Ответ на успешный запрос:
[
{
"id": "string", // (номер категории, вида - users.id.1)
"name": "string", // (название категории, не пустая строка)
"comment": "string",
"urls": ["string"]
},
...
]
urls
- список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.
Создание пользовательской категории
POST /content-filter/users_categories
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
Ответ на успешный запрос:
{
"id": "string"
}
Редактирование пользовательских категорий
PUT /content-filter/users_categories/<id категории>
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": ["string"]
}
Ответ на успешный запрос:
{
"id": "string",
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
Получение списка правил
GET /content-filter/rules/before?groups=[UUID1,UUID2]
- начальные правила;GET /content-filter/rules/after?groups=[UUID1,UUID2]
- конечные правила.UUID1
- идентификатор группы серверов в Центральной консоли (id
).
[
{
"id": "integer",
"parent_id": "string",
"name": "string",
"comment": "string",
"aliases": [ "string" ],
"categories": [ "string" ],
"access": "allow" | "deny" | "bump" | "redirect",
"redirect_url": "string" | "null",
"enabled": "boolean",
"timetable": [ "string" ]
},
...
]
id
- идентификатор правила;parent_id
- идентификатор группы серверов, к которой применяется правило;name
- название правила, не пустая строка;comment
- комментарий (максимальная длина - 255 символов), может быть пустым;aliases
- список идентификаторов алиасов (поле Применяется для);categories
- список идентификаторов категорий сайтов;access
- действие, которое необходимо выполнить в правиле:allow
- разрешить данный запрос;deny
- запретить запрос и показать страницу блокировки;bump
- расшифровать запрос;redirect
- перенаправить запрос наredirect_url
;
redirect_url
- адрес, на который перенаправляются запросы.String
приaccess
=redirect
иnull
при остальных вариантахaccess
;enabled
- правило включено (true) или выключено (false);timetable
- время действия.
Создание правил
POST /content-filter/rules/before?anchor_item_id=123&insert_after={true|false}
- создание начального правила;POST /content-filter/rules/after?anchor_item_id=123&insert_after={true|false}
- создание конечного правила.
Json-тело запроса:
{
"parent_id": "string", (идентификатор группы серверов, к которой будет применяться правило)
"name": "string",
"comment": "string",
"aliases": [ "string" ],
"categories": [ "string" ],
"access": "allow" | "deny" | "bump" | "redirect",
"redirect_url": "string" | "null",
"enabled": "boolean",
"timetable": [ "string" ]
}
parent_id
- идентификатор группы серверов, к которой применяется правило;name
- название правила, не пустая строка;comment
- комментарий (максимальная длина - 255 символов), может быть пустым;aliases
- список идентификаторов алиасов (поле Применяется для);categories
- список идентификаторов категорий сайтов;access
- действие, которое необходимо выполнить в правиле:allow
- разрешить данный запрос;deny
- запретить запрос и показать страницу блокировки;bump
- расшифровать запрос;redirect
- перенаправить запрос наredirect_url
;
redirect_url
- адрес, на который перенаправляются запросы.String
приaccess
=redirect
иnull
при остальных вариантахaccess
;enabled
- правило включено (true) или выключено (false);timetable
- время действия.
Ответ на успешный запрос:
{
"id": "integer"
}
id
- идентификатор созданного правила.
Редактирование правил
PUT /content-filter/rules/before/<id правила>
- изменение начального правила;PUT /content-filter/rules/after/<id правила>
- изменение конечного правила.
Json-тело запроса:
{
"name": "string",
"comment": "string",
"parent_id": "string",
"aliases": [ "string" ],
"categories": [ "string" ],
"access": "allow" | "deny" | "bump" | "redirect",
"redirect_url": "string" | "null",
"enabled": "boolean",
"timetable": [ "string" ]
}
name
- название правила, не пустая строка;comment
- комментарий (максимальная длина - 255 символов), может быть пустым;parent_id
- идентификатор группы серверов, к которой применяется правило;aliases
- список идентификаторов алиасов (поле Применяется для);categories
- список идентификаторов категорий сайтов;access
- действие, которое необходимо выполнить в правиле:allow
- разрешить данный запрос;deny
- запретить запрос и показать страницу блокировки;bump
- расшифровать запрос;redirect
- перенаправить запрос наredirect_url
;
redirect_url
- адрес, на который перенаправляются запросы.String
приaccess
=redirect
иnull
при остальных вариантахaccess
;enabled
- правило включено (true) или выключено (false);timetable
- время действия.
Ответ на успешный запрос: 200 OK
Важно! Чтобы переместить правило между группами серверов, измените его parent_id
.
Перемещение правил
PATCH /content-filter/rules/before/move
- перемещение начального правила;PATCH /content-filter/rules/after/move
- перемещение конечного правила.
Json-тело запроса:
{
"params": {
"id": "integer",
"anchor_item_id": "integer",
"insert_after": "boolean"
}
}
id
- идентификатор перемещаемого правила;anchor_item_id
- идентификатор правила, ниже или выше которого нужно поместить перемещаемое правило;insert_after
- вставка до или после. Еслиtrue
, то вставить правило сразу после указанного вanchor_item_id
, еслиfalse
- на месте указанного вanchor_item_id
.
Ответ на успешный запрос: 200 OK
Удаление правила
DELETE /content-filter/rules/before/move
- перемещение начального правила;DELETE /content-filter/rules/after/move
- перемещение конечного правила.
Ответ на успешный запрос: 200 OK
Файрвол
Получение настроек Файрвола
GET /firewall/state
Ответ на успешный запрос:
{
"enabled": "boolean"
}
enabled
- опция раздела Файрвол, включен (true) или отключен (false).
Изменение настроек
PUT /firewall/state
Json-тело запроса:
{
"enabled": "boolean"
}
Ответ на успешный запрос: 200 OK
Получение списка правил
GET /firewall/rules/forward/before?groups=[UUID1, UUID2]
- начальные правила раздела FORWARD;GET /firewall/rules/forward/after?groups=[UUID1, UUID2]
- конечные правила раздела FORWARD;GET /firewall/rules/input/before?groups=[UUID1, UUID2]
- начальные правила раздела INPUT;GET /firewall/rules/input/after?groups=[UUID1, UUID2]
- конечные правила раздела INPUT.
Ответ на успешный запрос:
[
{
"action": "accept" | "drop",
"comment": "",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"enabled": "boolean",
"hip_profiles": ["string"],
"incoming_interface": "string",
"outgoing_interface": "string",
"parent_id": "string",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"timetable": [ "string" ],
"id": "integer"
},
...
]
action
- действие:accept
- разрешить;drop
- запретить;
comment
- комментарий, может быть пустым;destination_addresses
- адрес назначения;destination_addresses_negate
- инвертировать адрес назначения;destination_ports
- порты назначения;enabled
- включено (true) или выключено (false) правило;hip_profiles
- HIP-профили;incoming_interface
- входящий интерфейс;outgoing_interface
- исходящий интерфейс;parent_id
- идентификатор группы, к которой применяется правило;protocol
- протокол;source_addresses
- адрес источника;source_addresses_negate
- инвертировать адрес источника;timetable
- время действия;id
- идентификатор правила.
Правила возвращаются в порядке их применения.
Создание правила
POST /firewall/rules/forward/before?anchor_item_id=123&insert_after={true|false}
- начальное правило в раздел FORWARD;POST /firewall/rules/forward/after?anchor_item_id=123&insert_after={true|false}
- конечное правило в раздел FORWARD;POST /firewall/rules/input/before?anchor_item_id=123&insert_after={true|false}
- начальное правило в раздел INPUT;POST /firewall/rules/input/after?anchor_item_id=123&insert_after={true|false}
- конечное правило в раздел INPUT.anchor_item_id
- идентификатор правила, ниже или выше которого нужно создать новое. Если отсутствует, то новое правило будет добавлено в конец таблицы.insert_after
- вставка до или после. Если значениеtrue
или отсутствует, то новое правило будет добавлено сразу после указанного вanchor_item_id
. Еслиfalse
- на месте указанного вanchor_item_id
.
Json-тело запроса:
{
"action": "accept" | "drop",
"comment": "string",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"enabled": "boolean",
"hip_profiles": ["string"],
"incoming_interface": "string",
"outgoing_interface": "string",
"parent_id": "string",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"timetable": [ "string" ]
}
action
- действие:accept
- разрешить;drop
- запретить;
comment
- комментарий, может быть пустым;destination_addresses
- адрес назначения;destination_addresses_negate
- инвертировать адрес назначения;destination_ports
- порты назначения;enabled
- включено (true) или выключено (false) правило;hip_profiles
- HIP-профили;incoming_interface
- входящий интерфейс;outgoing_interface
- исходящий интерфейс;parent_id
- идентификатор группы, к которой применяется правило;protocol
- протокол;source_addresses
- адрес источника;source_addresses_negate
- инвертировать адрес источника;timetable
- время действия.
Обьект FilterRuleObject
{
"parent_id": "string",
"enabled": "boolean",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"source_ports": [ "string" ],
"incoming_interface": "string",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"outgoing_interface": "string",
"hip_profiles": [ "string" ],
"dpi_profile": "string",
"dpi_enabled": "boolean",
"ips_profile": "string",
"ips_enabled": "boolean",
"timetable": [ "string" ],
"comment": "string",
"action": "accept" | "drop"
}
parent_id
- идентификатор группы в Ideco Center, в которую входит сервер, или константа "f3ffde22-a562-4f43-ac04-c40fcec6a88c" (соответствует Корневой группе);enabled
- включено (true
) или выключено (false
) правило;protocol
- протокол;source_addresses
- адрес источника;source_addresses_negate
- инвертировать адрес источника;source_ports
- порты источников, список идентификаторов алиасов;incoming_interface
- зона источника;destination_addresses
- адрес назначения;destination_addresses_negate
- инвертировать адрес назначения;destination_ports
- порты назначения;outgoing_interface
- зона назначения;hip_profiles
- HIP-профили;dpi_profile
- строка в формате UUID, идентификатор профиля DPI. Не может быть пустой строкой, еслиdpi_enabled
=true
;dpi_enabled
- включена/выключена обработка с помощью модуля Контроль приложений;ips_profile
- строка в формате UUID, идентификатор профиля IPS. Не может быть пустой строкой, еслиips_enabled
=true
;ips_enabled
- включена/выключена обработка с помощью модуля Предотвращение вторжений;timetable
- время действия;comment
- комментарий, может быть пустым;action
- действие:accept
- разрешить;drop
- запретить.
Обьект DnatRuleObject
{
"parent_id": "string",
"enabled": "boolean",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"source_ports": [ "string" ],
"incoming_interface": "string",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"timetable": [ "string" ],
"comment": "string",
"action": "accept" | "dnat",
"change_destination_address": "null" | "string",
"change_destination_port": "null" | "string"
}
action
- действие:accept
- разрешить;dnat
- производить DNAT.
change_destination_address
- IP-адрес или диапазон IP-адресов для замены назначения, илиnull
, еслиaction
=accept
;change_destination_port
- порт или диапазон портов для замены значения, илиnull
, еслиaction
=accept
.
Обьект SnatRuleObject
{
"parent_id": "string",
"enabled": "boolean",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"source_ports": [ "string" ],
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"outgoing_interface": "string",
"timetable": [ "string" ],
"comment": "string",
"action": "accept" | "snat",
"change_source_address": "null" | "string"
}
action
- действие:accept
- разрешить;snat
- производить SNAT.
change_destination_address
- IP-адрес для замены источника, илиnull
, еслиaction
=accept
.
Ответ на успешный запрос:
{
"id": "integer"
}
Редактирование правила
PUT /firewall/rules/forward/before/<id правила>
- раздел FORWARD, начальное правило;PUT /firewall/rules/forward/after/<id правила>
- раздел FORWARD, конечное правило;PUT /firewall/rules/input/before/<id правила>
- раздел INPUT, начальное правило;PUT /firewall/rules/input/after/<id правила>
- раздел INPUT, конечное правило.
Json-тело запроса:
{
"action": "accept" | "drop",
"comment": "",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"enabled": "boolean",
"hip_profiles": ["string"],
"incoming_interface": "string",
"outgoing_interface": "string",
"parent_id": "string",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"timetable": [ "string" ]
}
Обьект FilterRuleObject
{
"id": "integer",
"parent_id": "string",
"enabled": "boolean",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"source_ports": [ "string" ],
"incoming_interface": "string",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"outgoing_interface": "string",
"hip_profiles": [ "string" ],
"dpi_profile": "string",
"dpi_enabled": "boolean",
"ips_profile": "string",
"ips_enabled": "boolean",
"timetable": [ "string" ],
"comment": "string",
"action": "accept" | "drop"
}
id
- идентификатор правила.parent_id
- идентификатор группы в Ideco Center, в которую входит сервер, или константа "f3ffde22-a562-4f43-ac04-c40fcec6a88c" (соответствует Корневой группе);enabled
- включено (true
) или выключено (false
) правило;protocol
- протокол;source_addresses
- адрес источника;source_addresses_negate
- инвертировать адрес источника;source_ports
- порты источников, список идентификаторов алиасов;incoming_interface
- зона источника;destination_addresses
- адрес назначения;destination_addresses_negate
- инвертировать адрес назначения;destination_ports
- порты назначения;outgoing_interface
- зона назначения;hip_profiles
- HIP-профили;dpi_profile
- строка в формате UUID, идентификатор профиля DPI. Не может быть пустой строкой, еслиdpi_enabled
=true
;dpi_enabled
- включена/выключена обработка с помощью модуля Контроль приложений;ips_profile
- строка в формате UUID, идентификатор профиля IPS. Не может быть пустой строкой, еслиips_enabled
=true
;ips_enabled
- включена/выключена обработка с помощью модуля Предотвращение вторжений;timetable
- время действия;comment
- комментарий, может быть пустым;action
- действие:accept
- разрешить;drop
- запретить.
Обьект DnatRuleObject
{
"id": "integer",
"parent_id": "string",
"enabled": "boolean",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"source_ports": [ "string" ],
"incoming_interface": "string",
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"timetable": [ "string" ],
"comment": "string",
"action": "accept" | "dnat",
"change_destination_address": "null" | "string",
"change_destination_port": "null" | "string"
}
action
- действие:accept
- разрешить;dnat
- производить DNAT.
change_destination_address
- IP-адрес или диапазон IP-адресов для замены назначения, илиnull
, еслиaction
=accept
;change_destination_port
- порт или диапазон портов для замены значения, илиnull
, еслиaction
=accept
.
Обьект SnatRuleObject
{
"id": "integer",
"parent_id": "string",
"enabled": "boolean",
"protocol": "string",
"source_addresses": [ "string" ],
"source_addresses_negate": "boolean",
"source_ports": [ "string" ],
"destination_addresses": [ "string" ],
"destination_addresses_negate": "boolean",
"destination_ports": [ "string" ],
"outgoing_interface": "string",
"timetable": [ "string" ],
"comment": "string",
"action": "accept" | "snat",
"change_source_address": "null" | "string"
}
action
- действие:accept
- разрешить;snat
- производить SNAT.
change_destination_address
- IP-адрес для замены источника, илиnull
, еслиaction
=accept
.
Ответ на успешный запрос: 200 OK
Важно! Чтобы переместить правило между группами серверов, измените его parent_id
.
Перемещение правила
PATCH /firewall/rules/forward/before/move
- раздел FORWARD, начальное правило;PATCH /firewall/rules/forward/after/move
- раздел FORWARD, конечное правило;PATCH /firewall/rules/input/before/move
- раздел INPUT, начальное правило;PATCH /firewall/rules/input/after/move
- раздел INPUT, конечное правило.
Json-тело запроса:
{
"params": {
"id": "integer",
"anchor_item_id": "integer",
"insert_after": "boolean"
}
}
id
- идентификатор перемещаемого правила;anchor_item_id
- идентификатор правила, ниже или выше которого нужно поместить перемещаемое правило;insert_after
- вставка до или после. Еслиtrue
, то вставить правило сразу после указанного вanchor_item_id
, еслиfalse
- на месте указанного вanchor_item_id
.
Ответ на успешный запрос: 200 OK
Удаление правила
DELETE /firewall/rules/forward/before/<id правила>
- раздел FORWARD, начальное правило;DELETE /firewall/rules/forward/after/<id правила>
- раздел FORWARD, конечное правило;DELETE /firewall/rules/input/before/<id правила>
- раздел INPUT, начальное правило;DELETE /firewall/rules/input/after/<id правила>
- раздел INPUT, конечное правило.
Ответ на успешный запрос: 200 OK
Last updated