Файрвол
Получение статуса службы
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
- раздел Логирование.
Ответ на успешный запрос: объекты FilterRuleObject, DnatRuleObject, SnatRuleObject
Объект FilterRuleObject (разделы FORWARD и 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
- запретить.
Объект DnatRuleObject (раздел DNAT)
{
"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"
}
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
- порты назначения;timetable
- время действия;comment
- комментарий, может быть пустым;action
- действие:accept
- разрешить;dnat
- производить DNAT.
change_destination_address
- IP-адрес или диапазон IP-адресов для замены назначения, илиnull
, еслиaction
=accept
;change_destination_port
- порт или диапазон портов для замены значения, илиnull
, еслиaction
=accept
.
Объект SnatRuleObject (раздел SNAT)
{
"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"
}
id
- идентификатор правила.parent_id
- идентификатор группы в Ideco Center, в которую входит сервер, или константаf3ffde22-a562-4f43-ac04-c40fcec6a88c
(соответствует Корневой группе);enabled
- еслиtrue
, то правило включено,false
- выключено;protocol
- протокол;source_addresses
- адрес источника;source_addresses_negate
- инвертировать адрес источника;source_ports
- порты источников, список идентификаторов алиасов;destination_addresses
- адрес назначения;destination_addresses_negate
- инвертировать адрес назначения;destination_ports
- порты назначения;outgoing_interface
- зона назначения;timetable
- время действия;action
- действие:accept
- разрешить;snat
- производить SNAT.
change_destination_address
- IP-адрес для замены источника, илиnull
, еслиaction
=accept
.
Добавление правила
POST /firewall/rules/forward?anchor_item_id=<id правила>&insert_after={true|false}
- раздел FORWARD;POST /firewall/rules/input?anchor_item_id=<id правила>&insert_after={true|false}
- раздел INPUT;POST /firewall/rules/dnat?anchor_item_id=<id правила>&insert_after={true|false}
- раздел DNAT;POST /firewall/rules/snat?anchor_item_id=<id правила>&insert_after={true|false}
- раздел SNAT;POST /firewall/rules/log?anchor_item_id=<id правила>&insert_after={true|false}
- раздел Логирование.anchor_item_id
- идентификатор правила, ниже или выше которого нужно создать новое. Если отсутствует, то новое правило будет добавлено в конец таблицы;insert_after
- вставка до или после. Если значениеtrue
или отсутствует, то новое правило будет добавлено сразу после указанного вanchor_item_id
. Еслиfalse
- на месте указанного вanchor_item_id
.
Json-тело запроса: один из объектов FilterRuleObject (разделы FORWARD и INPUT) | DnatRuleObject (раздел DNAT) | SnatRuleObject (раздел SNAT), описанных в раскрывающемся блоке Получение списка правил
В запросе не должно быть
id
, так как правило еще не создано и не имеет идентификатора.
Ответ на успешный запрос:
{
"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-тело запроса: один из объектов FilterRuleObject (разделы FORWARD и INPUT) | DnatRuleObject (раздел DNAT) | SnatRuleObject (раздел SNAT), которые описаны в раскрывающемся блоке Получение списка правил, без поля id
Ответ на успешный запрос: 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 /firewall/checks_packets
Ответ на успешный запрос:
{
"id": "string",
"enabled": "boolean",
"protocol": "tcp" | "udp",
"src_ip": "string",
"src_port": "integer",
"dst_ip": "string",
"dst_port": "integer",
"incoming_interface": "string",
"expected_result": "drop" | "accept",
"comment": "string"
}
id
- идентификатор проверки;enabled
- включена ли данная проверка;protocol
- протокол, используемый в данной проверке. Может бытьtcp
илиudp
;src_ip
- адрес источника тестовых пакетов;src_port
- порт источника тестовых пакетов;dst_ip
- адрес назначения тестовых пакетов;dst_port
- порт назначения тестовых пакетов;incoming_interface
- идентификатор алиаса сетевого интерфейса, на который приходят тестовые пакеты;expected_result
- ожидаемый результат выполнения проверки. Может бытьdrop
илиaccept
;comment
- комментарий, может быть пустым.
Добавление новых проверок
POST /firewall/checks_packets
Json-тело запроса:
{
"enabled": "boolean",
"protocol": "tcp" | "udp",
"src_ip": "string",
"src_port": "integer",
"dst_ip": "string",
"dst_port": "integer",
"incoming_interface": "string",
"expected_result": "drop" | "accept",
"comment": "string"
}
enabled
- включена ли данная проверка;protocol
- протокол, используемый в данной проверке. Может бытьtcp
илиudp
;src_ip
- адрес источника тестовых пакетов;src_port
- порт источника тестовых пакетов;dst_ip
- адрес назначения тестовых пакетов;dst_port
- порт назначения тестовых пакетов;incoming_interface
- идентификатор алиаса сетевого интерфейса, на который приходят тестовые пакеты;expected_result
- ожидаемый результат выполнения проверки. Может бытьdrop
илиaccept
;comment
- комментарий, может быть пустым.
Ответ на успешный запрос:
{
"id": "integer"
}
id
- идентификатор созданной проверки.
Редактирование проверок
PATCH /firewall/checks_packets/<id проверки>
Json-тело запроса:
{
"enabled": "boolean",
"protocol": "tcp" | "udp",
"src_ip": "string",
"src_port": "integer",
"dst_ip": "string",
"dst_port": "integer",
"incoming_interface": "string",
"expected_result": "drop" | "accept",
"comment": "string",
},
enabled
- включена ли данная проверка;protocol
- протокол, используемый в данной проверке. Может бытьtcp
илиudp
;src_ip
- адрес источника тестовых пакетов;src_port
- порт источника тестовых пакетов;dst_ip
- адрес назначения тестовых пакетов;dst_port
- порт назначения тестовых пакетов;incoming_interface
- идентификатор алиаса сетевого интерфейса, на который приходят тестовые пакеты;expected_result
- ожидаемый результат выполнения проверки. Может бытьdrop
илиaccept
;comment
- комментарий, может быть пустым.
Ответ на успешный запрос: 200 ОК
Получение результатов проверок
GET /firewall/checks_result
Ответ на успешный запрос:
{
"block_status": "boolean",
"in_progress": "boolean",
"check_datetime": "integer",
"data": {
"check_id": {
"result": "drop" | "accept",
"rule_id": "string",
"verdict": "boolean"
}
}
}
block_status
- текущий статус блокировки трафика, вызванный провалом проверок;in_progress
- выполняются ли проверки в данный момент;check_datetime
- время выполнения последних проверок в форматеYYYYMMDDHMS
;data
- словарь результатов проверок, ключ - uuid проверки;result
- результат выполнения проверки, может бытьdrop
илиaccept
;rule_id
- номер отработавшего правила. Например,fwd.ngfw.2
;verdict
- совпал ли фактический результат с ожидаемым.
Номер правила в поле rule_id
будет отсутствовать, если пакет был заблокирован пользовательским правилом INPUT. В этом случае поле rule_id
будет иметь вид inp.ngfw
.
Last updated