Управление правилами трафика

API правил трафика Ideco Center описано в статье Центральная консоль.

Длина комментариев (comment) при API-запросах ограничена 255 символами.

Файрвол

Получение статуса службы
GET /firewall/status

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

[
  {
      "name": "rules-in-kernel",
      "status": "active" | "activating" | "deactivating" | "failed" | "inactive" | "reloading",
      "msg": [ "string" ]
  },
  {
        "msg": [ "string" ],
        "status": "active",
        "name": "auto-snat"
    }
]
  • msg - список строк, поясняющих текущее состояние.

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

Включенность пользовательских правил

GET /firewall/state

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

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

Логирование правил

GET /firewall/settings

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

{
    "automatic_snat_enabled": "boolean",
    "log_mode": "nothing" | "all" | "selected",
    "log_actions": [ "accept" | "drop" | "dnat" | "snat" | "mark_log" | "mark_not_log" ]
} 
  • automatic_snat_enabled - включение автоматического SNAT: true - включен, false- выключен;

  • log_mode - режим логирования;

  • log_actions - события, которые будут логироваться.

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

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

{
    "automatic_snat_enabled": "boolean",
    "log_mode": "nothing" | "all" | "selected",
    "log_actions": [ "accept" | "drop" | "dnat" | "snat" | "mark_log" | "mark_not_log" ]
} 
  • automatic_snat_enabled - включение автоматического SNAT: true - включен, false- выключен;

  • log_mode - режим логирования;

  • log_actions - события, которые будут логироваться.

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

Управление правилами

Получение списка правил
  • GET /firewall/rules/forward - раздел FORWARD;

  • GET /firewall/rules/input - раздел INPUT;

  • GET /firewall/rules/dnat - раздел DNAT;

  • GET /firewall/rules/snat - раздел SNAT;

  • GET /firewall/rules/log - раздел Логирование.

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

[
    {
        "action": "accept" | "drop" | "dnat" | "snat" ("mark_log" | "mark_not_log" для раздела Логирование),
        "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" ],
        "id": "integer"
    },
    ...
]
  • action - действие:

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

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

    • dnat - производить DNAT;

    • snat - производить SNAT;

    • mark_log - логировать;

    • mark_not_log - не логировать;

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

  • destination_addresses - адрес назначения;

  • destination_addresses_negate - инвертировать адрес назначения;

  • destination_ports - порты назначения;

  • enabled - статус правила: true - включено, false - выключено;

  • hip_profiles - HIP-профили;

  • incoming_interface - зона источника;

  • outgoing_interface - зона назначения;

  • parent_id - идентификатор группы в Ideco Center, в которую входит сервер, или константа f3ffde22-a562-4f43-ac04-c40fcec6a88c (соответствует Корневой группе);

  • protocol - протокол;

  • source_addresses - адрес источника;

  • source_addresses_negate - инвертировать адрес источника;

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

  • id - идентификатор правила.

Добавление правила
  • POST /firewall/rules/forward?anchor_item_id=123&insert_after={true|false} - раздел FORWARD;

  • POST /firewall/rules/input?anchor_item_id=123&insert_after={true|false} - раздел INPUT;

  • POST /firewall/rules/dnat?anchor_item_id=123&insert_after={true|false} - раздел DNAT;

  • POST /firewall/rules/snat?anchor_item_id=123&insert_after={true|false} - раздел SNAT;

  • POST /firewall/rules/log?anchor_item_id=123&insert_after={true|false} - раздел Логирование.

    • anchor_item_id - идентификатор правила, ниже или выше которого нужно создать новое. Если отсутствует, то новое правило будет добавлено в конец таблицы.

    • insert_after - вставка до или после. Если значение true или отсутствует, то новое правило будет добавлено сразу после указанного в anchor_item_id. Если false - на месте указанного в anchor_item_id.

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

{
    "action": "accept" | "drop" | "dnat" | "snat" ("mark_log" | "mark_not_log" для раздела Логирование),
    "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 - запретить;

    • dnat - производить DNAT;

    • snat - производить SNAT;

    • mark_log - логировать;

    • mark_not_log - не логировать;

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

  • destination_addresses - адрес назначения;

  • destination_addresses_negate - инвертировать адрес назначения;

  • destination_ports - порты назначения;

  • enabled - статус правила: true - включено, false - выключено;

  • hip_profiles - HIP-профили;

  • incoming_interface - зона источника;

  • outgoing_interface - зона назначения;

  • parent_id - идентификатор группы в Ideco Center, в которую входит сервер, или константа f3ffde22-a562-4f43-ac04-c40fcec6a88c (соответствует Корневой группе);

  • protocol - протокол;

  • source_addresses - адрес источника;

  • source_addresses_negate - инвертировать адрес источника;

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

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

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

Редактирование правила
  • PUT /firewall/rules/forward/<id правила> - раздел FORWARD;

  • PUT /firewall/rules/input/<id правила> - раздел INPUT;`

  • PUT /firewall/rules/dnat/<id правила> - раздел DNAT;

  • PUT /firewall/rules/snat/<id правила> - раздел SNAT;

  • PUT /firewall/rules/log/<id правила> - раздел Логирование.

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

{
    "action": "accept" | "drop" | "dnat" | "snat" ("mark_log" | "mark_not_log" для раздела Логирование),
    "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 - запретить;

    • dnat - производить DNAT;

    • snat - производить SNAT;

    • mark_log - логировать;

    • mark_not_log - не логировать;

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

  • destination_addresses - адрес назначения;

  • destination_addresses_negate - инвертировать адрес назначения;

  • destination_ports - порты назначения;

  • enabled - статус правила: true - включено, false - выключено;

  • hip_profiles - HIP-профили;

  • incoming_interface - зона источника;

  • outgoing_interface - зона назначения;

  • parent_id - идентификатор группы в Ideco Center, в которую входит сервер, или константа f3ffde22-a562-4f43-ac04-c40fcec6a88c (соответствует Корневой группе);

  • protocol - протокол;

  • source_addresses - адрес источника;

  • source_addresses_negate - инвертировать адрес источника;

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

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

Перемещение правила
  • PATCH /firewall/rules/forward/move - раздел FORWARD;

  • PATCH /firewall/rules/input/move - раздел INPUT;

  • PATCH /firewall/rules/dnat/move - раздел DNAT;

  • PATCH /firewall/rules/snat/move - раздел SNAT;

  • PATCH /firewall/rules/log/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.

Удаление правила
  • DELETE /firewall/rules/forward/<id правила> - раздел FORWARD;

  • DELETE /firewall/rules/input/<id правила> - раздел INPUT;

  • DELETE /firewall/rules/dnat/<id правила> - раздел DNAT;

  • DELETE /firewall/rules/snat/<id правила> - раздел SNAT;

  • DELETE /firewall/rules/log/<id правила> - раздел Логирование.

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

Счетчик срабатывания правил

Проверка включенности счетчика срабатываний правил
GET /firewall/watch

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

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

Включение/выключение счетчика срабатывания правил
PUT /firewall/watch

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

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

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

Получение счетчиков по правилам
  • GET /firewall/counters/forward - раздел FORWARD;

  • GET /firewall/counters/input - раздел INPUT;

  • GET /firewall/counters/dnat - раздел DNAT;

  • GET /firewall/counters/snat - раздел SNAT;

  • GET /firewall/rules/log - раздел Логирование.

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

[
   {
      "id": "integer",
      "packets": "integer"
   },
   ...
]
  • id - идентификатор правила;

  • packets - количество сработок правила.

Контроль приложений

Получение списка правил
GET /application_control_backend/rules

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

[ 
    {
        "action": "drop" | "accept",
        "aliases": [ "string" ],
        "comment": "string",
        "enabled": "boolean",
        "name": "string",
        "parent_id": "string",
        "protocols": [ "string" ],
        "id": "integer"
    },
    ...
 ]
  • action - действие, применяемое к правилу;

  • aliases - объекты, которые используются в правиле (например, any. Список объектов доступен по ссылке);

  • comment - комментарий правила;

  • enabled - статус правила: true - включено, false - выключено;

  • name - имя правила;

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

  • protocols - список протоколов;

  • id - идентификатор правила.

Создание нового правила
POST /application_control_backend/rules

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

{
    "parent_id": "string",
    "name": "string",
    "action": "drop" | "accept",
    "comment": "string",
    "aliases": [ "string" ],
    "protocols": [ "string" ],
    "enabled": "boolean"
}
  • parent_id - идентификатор родительской группы серверов;

  • name - имя правила;

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

  • comment - комментарий правила;

  • aliases - объекты, которые используются в правиле (например, any. Список объектов доступен по ссылке);

  • protocols - список протоколов;

  • enabled - статус правила: true - включено, false - выключено.

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

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

Изменение правила
PUT /application_control_backend/rules/<id правила>

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

{
    "parent_id": "string",
    "name": "string",
    "comment": "string",
    "aliases": [ "string" ],
    "protocols": [ "string" ],
    "action": "drop" | "accept",
    "enabled": "boolean"
}
  • parent_id - идентификатор родительской группы серверов;

  • name - имя правила;

  • comment - комментарий правила;

  • aliases - объекты, которые используются в правиле (например, any. Список объектов доступен по ссылке);

  • protocols - список протоколов;

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

  • enabled - статус правила: true - включено, false - выключено.

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

Изменение приоритета правила
PATCH /application_control_backend/rules/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.

Удаление правила
DELETE /application_control_backend/rules/<id правила>

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

Предотвращение вторжений

Получение статуса модуля
GET /ips/status

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

[
    {
        "name": "string",
        "status": "active" | "activating" | "deactivating" | "failed" | "inactive" | "reloading",
        "msg": [ "string" ]
    },
  ...
]
  • name - название домена;

  • status - статус;

  • msg - cписок сообщений, объясняющий текущее состояние.

Статус обновления баз правил Suricata и GeoIP
GET /ips/update

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

{
    "status": "up_to_date" | "updating" | "failed_to_update" | "disabled"],
    "msg": "i18n_str",
    "last_update": "float" | "null"
}
  • status - текущий статус обновления баз:

    • up_to_date - базы успешно обновлены;

    • updating - скачиваем новые базы;

    • failed_to_update - последняя попытка обновления баз завершилась неудачно;

    • disabled - обновление баз выключено.

  • msg - текстовое описание статуса обновления баз;

  • last_update - время последнего успешного обновления баз.

Получение статуса обновления расширенных баз правил Suricata и GeoIP
GET /ips/update_advanced

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

{
    "status": "up_to_date" | "updating" | "failed_to_update" | "disabled",
    "msg": "i18n_str",
    "last_update": "float" | "null"
}
  • status - текущий статус обновления баз:

    • up_to_date - базы успешно обновлены;

    • updating - скачиваем новые базы;

    • failed_to_update - последняя попытка обновления баз завершилась неудачно;

    • disabled - обновление баз выключено.

  • msg - текстовое описание статуса обновления баз;

  • last_update - время последнего успешного обновления баз.

Запуск принудительного обновления баз
POST /ips/update

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

Получение текущей настройки включенности модуля
GET /ips/state

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

{
    "enabled": "boolean"
}
  • enabled - true, если модуль включен, false - выключен.

Изменение настройки включенности модуля
PUT /ips/state

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

{
    "enabled": "boolean"
}
  • enabled - true если модуль включен, false - выключен.

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

Получение списка локальных подсетей
GET /ips/nets

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

[
  {
      "id": "string",
      "address": "string"
  },
  ...
]
  • id - идентификатор подсети;

  • address - адрес подсети (например, 192.168.0.0).

Добавление новой локальной подсети
POST /ips/nets

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

{
    "address": "string"
}
  • address - адрес подсети (например,192.168.0.0).

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

{
    "id": "string"
}
  • id - идентификатор подсети.

Удаление локальной подсети
DELETE /ips/nets/<id подсети>

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

Получение списка наборов правил
GET /ips/rules

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

[
  {
    "id": "string",
    "name": "string",
    "enabled": "boolean"
  },
  ...
]
  • id - идентификатор набора правил;

  • name - название набора правил;

  • enabled - состояние набора правил: true - включен, false - выключен.

Включение/выключение набора правил
PATCH /ips/rules/<id набора правил>

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

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

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

Получение содержимого правила по sid
GET /ips/rules/sid/<sid правила>

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

{
    "rule": "string"
}
  • rule - текст правила. Если правило не найдено, то пустая строка.

Получение списка исключений
GET /ips/disabled_rules

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

[
  {
    "sid": "integer",
    "comment": "string",
    "id": "string"
  },
  ...
]
  • sid - идентификатор правила;

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

  • id - идентификатор правила.

Добавление исключения
POST /ips/disabled_rules

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

{
    "sid": "integer",
    "comment": "string"
}
  • sid - идентификатор правила;

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

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

{
    "id": "string" 
}
  • id - идентификатор исключения.

Редактирование описания существующего исключения
PATCH /ips/disabled_rules/<id правила (не sid)>

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

{
    "sid": "integer",
    "comment": "string"
}
  • sid - идентификатор правила;

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

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

Удаление существующего исключения
DELETE /ips/disabled_rules/<id исключения>

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

Получение списка исключений объектов
GET /ips/bypass

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

[
    {
        "id": "string",
        "aliases": [ "string" ],
        "comment": "string",
        "enabled": "boolean",
    },
    ...
]
  • id - идентификатор исключения;

  • aliases - список идентификаторов объектов. Допустимые типы: IP-адрес, Диапазон IP-адресов, Список IP-объектов, Список IP-адресов, Подсеть, Домен, Пользователь, Группа;

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

  • enabled - состояние исключения: true - включено, false - выключено.

Добавление исключения объектов
POST /ips/bypass

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

{
    "aliases": [ "string" ],
    "comment": "string",
    "enabled": "boolean"
}
  • aliases - список идентификаторов объектов. Допустимые типы: IP-адрес, Диапазон IP-адресов, Список IP-объектов, Список IP-адресов, Подсеть, Домен, Пользователь, Группа;

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

  • enabled - состояние исключения: true - включено, false - выключено.

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

{
    "id": "string"
}
  • id - идентификатор созданного исключения.

Изменение исключения объектов
PATCH /ips/bypass/<id исключения>

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

{
    "aliases": [ "string" ],
    "comment": "string",
    "enabled": "boolean"
}
  • aliases - список идентификаторов объектов. Допустимые типы: IP-адрес, Диапазон IP-адресов, Список IP-объектов, Список IP-адресов, Подсеть, Домен, Пользователь, Группа;

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

  • enabled - состояние исключения: true - включено, false - выключено.

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

Удаление существующего исключения объектов
DELETE /ips/bypass/<id исключения>

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

Контент-фильтр

Включение/выключение Контент-фильтра

Проверить включенность

GET /content-filter/state

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

{
    "enabled": "boolean"
}
  • enabled - состояние Контент-фильтра: true - включен, false - выключен.

Включить/выключить Контент-фильтр

PUT /content-filter/state

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

{
    "enabled": "boolean"
}
  • enabled - true для включения Контент-фильтра, false для выключения.

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

Настройки

Получение настроек
GET /content-filter/settings

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

{
    "enabled_extended_categorizer": "boolean",
    "quic_reject_enabled": "boolean"
}
  • enabled_extended_categorizer - расширенная категоризация (SkyDNS): true - включена, false - выключена;

  • quic_reject_enabled - запрет трафика по протоколу QUIC: true - включен, false - выключен.

Изменение настроек
PATCH /content-filter/settings

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

{
    "enabled_extended_categorizer": "boolean",
    "quic_reject_enabled": "boolean"
}
  • enabled_extended_categorizer - расширенная категоризация (SkyDNS): true - включена, false - выключена;

  • quic_reject_enabled - запрет трафика по протоколу QUIC: true - включен, false - выключен.

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

Получение настройки безопасного поиска
GET /proxy_backend/safe_search

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

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

Изменение настройки безопасного поиска
PUT /proxy_backend/safe_search

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

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

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

Категории Контент-фильтра

Получение списка категорий (предустановленных и пользовательских)
GET /content-filter/categories

Json-тело ответа:

[
    {
        "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

Json-ответ на запрос:

[
    {
        "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"
}
  • id - идентификатор пользовательской категории.

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

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

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

  • comment - комментарий;

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

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

{
    "id": "string",
    "name": "string",
    "comment": "string",
    "urls": [ "string" ]
}
  • id - идентификатор пользовательской категории.

Правила Контент-фильтра

Получение списка правил
GET /content-filter/rules

Json-тело ответа:

[
    {
        "access": "allow" | "deny" | "bump" | "redirect",
        "aliases": [ "string" ],
        "categories": [ "string" ],
        "comment": "string",
        "enabled": "boolean",
        "name": "string",
        "parent_id": "string",
        "redirect_url": "string" | "null",
        "timetable": [ "string" ],
        "id": "integer"
    },
    ...
]
  • access - действие, которое необходимо выполнить в правиле:

    • allow - разрешить данный запрос;

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

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

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

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

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

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

  • enabled - статус правила: true - включено, false выключено;

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

  • parent_id - идентификатор группы в Ideco Center, в которую входит Ideco NGFW, или константа f3ffde22-a562-4f43-ac04-c40fcec6a88c (соответствует Корневой группе);

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

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

  • id - идентификатор правила.

Создание правила
POST /content-filter/rules?anchor_item_id=123&insert_after={true|false}
  • anchor_item_id - идентификатор правила, ниже или выше которого нужно создать новое. Если отсутствует, то новое правило будет добавлено в конец таблицы.

  • insert_after - вставка до или после. Если значение true или отсутствует, то новое правило будет добавлено сразу после указанного в anchor_item_id. Если false - на месте указанного в anchor_item_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 - идентификатор группы в Ideco Center, в которую входит Ideco NGFW, или константа f3ffde22-a562-4f43-ac04-c40fcec6a88c (соответствует Корневой группе);

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

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

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

    • allow - разрешить данный запрос;

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

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

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

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

  • enabled - true для включения, false для выключения;

  • timetable - время действия, список идентификаторов алиасов.

Редактирование правила
PUT /content-filter/rules/<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 - идентификатор группы в Ideco Center, в которую входит Ideco NGFW, или константа f3ffde22-a562-4f43-ac04-c40fcec6a88c (соответствует Корневой группе);

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

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

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

    • allow - разрешить данный запрос;

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

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

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

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

  • enabled - true для включения, false для выключения;

  • timetable - время действия, список идентификаторов алиасов.

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

Перемещение правила
PATCH /content-filter/rules/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/<id правила>

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

Квоты

Проверить включенность подсчета квот
GET /quotas/state

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

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

Включение/выключение подсчета квот
PUT /quotas/state

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

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

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

Получение списка квот
GET /quotas/quotas

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

[
  {
    "id": "string",
    "title": "string",
    "comment": "string",
    "quota": "integer",
    "enabled": "boolean",
    "interval": "hour" | "day" | "week" | "month" | "quarter"
  },
  ...
]
  • id - идентификатор квоты;

  • title - название квоты, максимальная длина - 42 символа;

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

  • quota - ограничение трафика в байтах;

  • enabled - применяется ли квота;

  • interval - период действия квоты (час, день, неделя, месяц, квартал).

Создание квоты
POST /quotas/quotas

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

{
    "title": "string",
    "comment": "string",
    "quota": "integer",
    "enabled": "boolean",
    "interval": "string"
}
  • title - название квоты, максимальная длина - 42 символа;

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

  • quota - ограничение трафика в байтах;

  • enabled - применяется ли квота;

  • interval - период действия квоты (час, день, неделя, месяц, квартал).

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

{
    "id": "string"
}
  • id - идентификатор квоты.

Редактирование квоты
PATCH /quotas/quotas/<id квоты>

Json-тело запроса (все или некоторые поля):

{
    "title": "string",
    "comment": "string",
    "quota": "integer",
    "enabled": "boolean",
    "interval": "string"
}
  • title - название квоты, максимальная длина - 42 символа;

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

  • quota - ограничение трафика в байтах;

  • enabled - применяется ли квота;

  • interval - период действия квоты (час, день, неделя, месяц, квартал).

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

Удаление квоты
DELETE /quotas/quotas/<id квоты>

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

Last updated