Управление правилами трафика
API правил трафика Ideco Center описано в статье Центральная консоль.
Файрвол
Получение статуса службы
GET /firewall/status
Ответ на успешный запрос:
[
{
"name": "rules-in-kernel",
"status": "active|activating|deactivating|failed|inactive|reloading",
"msg": [ "string" ] (Список строк, поясняющих текущее состояние)
},
{
"msg": [ "string" ],
"status": "active",
"name": "auto-snat"
}
]
Получение настроек Файрвола
Включенность пользовательских правил
GET /firewall/state
Ответ на успешный запрос:
{
"enabled": "boolean"
}
enabled
- Опция раздела Файрвол включен (true) или отключен (false).
Логирование правил
GET /firewall/settings
Ответ на успешный запрос:
{
"automatic_snat_enabled": boolean,
"log_actions": ["accept" | "drop" | "dnat" | "snat"],
"log_mode": "string"
}
Изменение настроек
PUT /firewall/settings
Json-тело запроса:
{
"automatic_snat_enabled": boolean,
"log_actions": ["accept" | "drop" | "dnat" | "snat"],
"log_mode": "string"
}
Ответ: 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": int
},
...
]
"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"
- идентификатор группы в ЦК, в которую входит сервер, или константа "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": "",
"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": int
}
Редактирование правила
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": "",
"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" ]
}
Ответ: 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": int,
"anchor_item_id": int,
"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 (true - если счетчик включен, false - если выключен)
}
Включение/выключение счетчика срабатывания правил
PUT /firewall/watch
Json-тело запроса:
{
"enabled": boolean (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": int,
"packets": int (количество сработок правила)
},
...
]
Контент-фильтр
Настройки
Получение настроек
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 (Любое из полей может отсутствовать)
}
Ответ на запрос: 200 OK.
Получение настройки безопасного поиска
GET /proxy_backend/safe_search
Ответ на успешный запрос:
{
"enabled": boolean
}
Изменение настройки безопасного поиска
PUT /proxy_backend/safe_search
Json-тело запроса:
{
"enabled": boolean
}
Ответ: 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" (номер категории, вида - users.id.1),
"name": "string" (название категории, не пустая строка),
"comment": "string",
"urls": ["string"]
},
...
]
"urls"
- список url. Либо полный путь до страницы, либо только доменное имя. В пути может присутствовать любое количество любых символов.
Создание пользовательской категории
POST /content-filter/users_categories
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
Ответ на успешный запрос:
{
"id": "string"
}
Редактирование пользовательских категорий
PUT /content-filter/users_categories/{category_id}
Json-тело запроса:
{
"name": "string",
"comment": "string",
"urls": ["string"]
}
Ответ на успешный запрос:
{
"id": "string",
"name": "string",
"comment": "string",
"urls": [ "string" ]
}
Правила Контент-фильтра
Получение списка правил
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": int
},
...
]
id
- идентификатор правила;parent_id
- id группы в ЦК, в которую входит Ideco NGFW, или константа "f3ffde22-a562-4f43-ac04-c40fcec6a88c" (соответствует Корневой группе);name
- название правила, не пустая строка;comment
- комментарий (макс. 256 символов), может быть пустым;aliases
- список id алиасов (поле Применяется для);categories
- список id категорий сайтов;access
- действие, которое необходимо выполнить в правиле, строка, может принимать три значения:allow
- разрешить данный запрос;deny
- запретить запрос и показать страницу блокировки;bump
: расшифровать запрос;redirect
: перенаправить запрос наredirect_url
;
redirect_url
- URL, на который перенаправляются запросы.String
приaccess
=redirect
иnull
при остальных вариантахaccess
;enabled
: правило включено (true) или выключено (false);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" ]
}
Редактирование правила
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" ]
}
Ответ: 200 ОК
Перемещение правила
PATCH /content-filter/rules/move
Json-тело запроса:
{
"params": {
"id": int,
"anchor_item_id": int,
"insert_after": boolean
}
}
id
- идентификатор правила;anchor_item_id
- идентификатор правила, ниже или выше которого нужно вставить правило, которое перемещаем;insert_after
- вставка до или после. Еслиtrue
, то правило будет вставлено сразу после указанного вanchor_item_id
, еслиfalse
- на месте указанного вanchor_item_id
.
Ответ: 200 OK.
Квоты
Включить/выключить подсчет квот
PUT /quotas/state
Json-тело запроса:
{
"enabled": boolean
}
Ответ: 200 ОК
Получение списка квот
GET /quotas/quotas
Ответ на успешный запрос:
[
{
"id": "string",
"title": "string",
"comment": "string",
"quota": "integer",
"enabled": "bool",
"interval": "hour" | "day" | "week" | "month" | "quarter"
},
...
]
id
- идентификатор квоты;title
- название квоты (максимальная длина 42 символа);comment
- комментарий (максимальная длина 256 символов)%quota
- ограничение трафика в байтах;enabled
- применяется ли квота;interval
- период действия квоты (час, день, неделя, месяц, квартал).
Создание квоты
POST /quotas/quotas
Json-тело запроса:
{
"title": "string",
"comment": "string",
"quota": int,
"enabled": boolean,
"interval": "string"
}
Ответ на успешный запрос:
{
"id": "string"
}
Last updated