Центральная консоль

Длина комментариев (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"
}
  • cc_server - доменное имя или IP-адрес центральной консоли.

Загрузка корневого сертификата Ideco Center на NGFW
POST /central_console/root_ca

В тело запроса поместите содержимое корневого сертификата, скачанного в Ideco Center. Для этого откройте сертификат в текстовом редакторе и скопируйте текст.

Удаление корневого сертификата Ideco Center
DELETE /central_console/root_ca

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

Отключение NGFW от Ideco Center
DELETE /central_console/settings

Ответ на успешный запрос: 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"
}
  • domain - внешний адрес Ideco Center (IP-адрес или доменное имя).

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

Получение настройки включенности синхронизации правил
GET /servers/state

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

{
    "enabled": "boolean"
}
  • enabled - если true, то синхронизация правил включена, false - выключена.

Включение/выключение синхронизации правил
PUT /servers/state

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

{
    "enabled": "boolean"
}
  • enabled - true для включения синхронизации правил, false для выключения.

Ответ на успешный запрос: 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"
}
  • id - идентификатор созданной группы.

Редактирование группы серверов
PATCH /servers/groups/<id группы серверов>

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

{
    "comment": "string",
    "name": "string",
    "parent_id": "string"
}
  • name - название группы;

  • parent_id - идентификатор родительской группы (если группа входит в Корневую группу, идентификатор Корневой группы);

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

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

Удаление группы серверов
DELETE /servers/groups/<id группы серверов>

Ответ на успешный запрос: 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": "boolean",
        "last_sync": "integer" | "null",
        "last_connect": "integer",
        "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"
}
  • parent_id - идентификатор группы, в которую входит сервер;

  • approved - флаг, означающий, подтверждено ли подключение сервера в Ideco Center.

Ответ на успешный запрос: 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",
        "name": "string",
        "comment": "string",
        "urls": [ "string" ]
    },
    ...
]
  • id - номер категории в формате users.id.1;

  • name - название категории, не пустая строка;

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

  • urls - список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.

Создание пользовательской категории
POST /content-filter/users_categories

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

{
    "name": "string",
    "comment": "string",
    "urls": [ "string" ]
}
  • name - название категории, не пустая строка;

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

  • urls - список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.

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

{
    "id": "string"
}
Редактирование пользовательских категорий
PUT /content-filter/users_categories/<id категории>

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

{
    "name": "string",
    "comment": "string",
    "urls": [ "string" ]
}
  • name - название категории, не пустая строка;

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

  • urls - список адресов. Полный путь до страницы или только доменное имя, любое количество любых символов.

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

{
    "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" ],
        "http_methods": [ "string" ],
        "content_types": [ "string" ],
        "access": "allow" | "deny" | "bump" | "redirect",
        "redirect_url": "string" | "null",
        "enabled": "boolean",
        "timetable": [ "string" ]
    },
    ...
]
  • id - идентификатор правила;

  • parent_id - идентификатор группы серверов, к которой применяется правило;

  • name - название правила, не пустая строка;

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

  • aliases - список идентификаторов алиасов (поле Применяется для);

  • categories - список идентификаторов категорий сайтов;

  • http_methods - список методов HTTP. Доступен выбор из списка: GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, TRACE, CONNECT;

  • content_types - список mime types;

  • 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" ],
    "http_methods": [ "string" ],
    "content_types": [ "string" ],
    "access": "allow" | "deny" | "bump" | "redirect",
    "redirect_url": "string" | "null",
    "enabled": "boolean",
    "timetable": [ "string" ]
}
  • parent_id - идентификатор родительской группы;

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

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

  • aliases - список идентификаторов алиасов (поле Применяется для);

  • categories - список идентификаторов категорий;

  • http_methods - список методов HTTP. Доступен выбор из списка: GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, TRACE, CONNECT;

  • content_types - список mime types;

  • access - действие, которое необходимо выполнить в правиле:

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

    • deny - запретить запрос и показать страницу блокировки;

    • bump - расшифровать запрос;

    • redirect - перенаправить запрос на redirect_url.

  • redirect_url - адрес, на который перенаправляются запросы. String при access = redirect и null при остальных вариантах access;

  • enabled - правило включено (true) или выключено (false);

  • timetable - время действия.

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

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

Редактирование правила
  • PATCH /content-filter/rules/before/<id правила> - изменение начального правила;

  • PATCH /content-filter/rules/after/<id правила> - изменение конечного правила.

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

{
    "name": "string",
    "comment": "string",
    "parent_id": "string",
    "aliases": [ "string" ],
    "categories": [ "string" ],
    "http_methods": [ "string" ],
    "content_types": [ "string" ],
    "access": "allow" | "deny" | "bump" | "redirect",
    "redirect_url": "string" | "null",
    "enabled": "boolean",
    "timetable": [ "string" ]
}
  • parent_id - идентификатор родительской группы;

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

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

  • aliases - список идентификаторов алиасов (поле Применяется для);

  • categories - список идентификаторов категорий;

  • http_methods - список методов HTTP. Доступен выбор из списка: GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, TRACE, CONNECT;

  • content_types - список mime types;

  • 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

API для управления морфологическим анализом представлен в статье.

Файрвол

Получение настроек Файрвола
GET /firewall/state

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

{
    "enabled": "boolean"
} 
  • enabled - опция раздела Файрвол: true - включена, false - выключена.

Изменение настроек
PUT /firewall/state

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

{
    "enabled": "boolean"
}  
  • enabled - true для включения, false для выключения.

Ответ на успешный запрос: 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.

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

{
    "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 - если true, то обработка с помощью модуля Контроль приложений включена, false - выключена;

  • ips_profile - строка в формате UUID, идентификатор профиля IPS. Не может быть пустой строкой, если ips_enabled = true;

  • ips_enabled - если true, то обработка с помощью модуля Предотвращение вторжений включена, false - выключена;

  • timetable - время действия;

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

  • action - действие:

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

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

Добавление правила
  • 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-тело запроса:

{
    "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 - если true, то обработка с помощью модуля Контроль приложений включена, false - выключена;

  • ips_profile - строка в формате UUID, идентификатор профиля IPS. Не может быть пустой строкой, если ips_enabled = true;

  • ips_enabled - если true, то обработка с помощью модуля Предотвращение вторжений включена, false - выключена;

  • timetable - время действия;

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

  • action - действие:

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

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

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

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

Редактирование правила
  • 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-тело запроса:

{
    "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 - если true, то обработка с помощью модуля Контроль приложений включена, false - выключена;

  • ips_profile - строка в формате UUID, идентификатор профиля IPS. Не может быть пустой строкой, если ips_enabled = true;

  • ips_enabled - если true, то обработка с помощью модуля Предотвращение вторжений включена, false - выключена;

  • timetable - время действия;

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

  • action - действие:

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

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

Ответ на успешный запрос: 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