12.9.1. Настройка правил межсетевого экрана

Настройка межсетевого экрана происходит на уровне network-policy firewall. Подробнее о структуре команд читайте в разделе Настройка правил с использованием UPL.

Параметры правил межсетевого экрана:

Параметр

Описание

PASS

DENY

Действие правила межсетевого экрана:

  • PASS -- разрешить трафик.

  • DENY -- запретить трафик.

enabled

Включение/отключение правила:

  • enabled(yes) или enabled(true).

  • enabled(no) или enabled(false).

name

Название правила межсетевого экрана.

Например: name("Rule example").

desc

Описание правила.

Например: desc("Firewall rule example configured in CLI").

reject_with

Настройка доступна для правил с действием Запретить:

  • reject_with(no).

  • reject_with("host_unreach") -- посылать ICMP host unreachable - блокировка трафика с отправкой ICMP-сообщения.

  • reject_with("tcp_rst") - посылать TCP reset: блокировка трафика с отправкой сообщения о разрыве TCP-соединения.

    Важно! При выборе действия Посылать TCP reset необходимо указание сервиса, использующего протокол TCP (подробнее о добавлении и настройке сервисов читайте в разделе ов).

  • reject_with("tcp_reset-both") -- посылать TCP reset в обе стороны - блокировка трафика с отправкой сообщения о разрыве TCP-соединения клиенту и серверу.

scenario

Сценарий, который должен быть активным для срабатывания правила.

Для указания сценария: scenario = "Example of a scenario".

Подробнее о настройке сценариев смотрите в разделе Настройка сценариев.

rule_log

Запись в журнал информации о трафике при срабатывании правила. Возможны варианты:

  • rule_log(no) или rule_log(false) -- отключить журналирование. Если при создании правила rule_log не указано, функция журналирования отключена.

  • rule_log(yes) или rule_log(true) -- журналировать все сетевые пакеты без установки лимитов. Для установки лимитов необходимо указать число событий, записываемых в журнал за единицу времени (s -- секунда; min -- минута; h -- час; d -- день, нельзя установить лимит журналирования менее 5-ти пакетов в день) и максимальное количество пакетов, журналируемых на событие. Например, rule_log(yes, "3/h", 5) -- включение журналирования с установкой лимитов: в журнал записывается 3 события в час; максимальное количество пакетов, журналируемых на событие равно 5.

  • rule_log(session) -- журналировать начало сессии.

fragmented

Указание пакетов, к которым применяется правило межсетевого экрана:

  • fragmented(yes) или fragmented(true) -- применить правило к только фрагментированным пакетам.

  • fragmented(no) или fragmented(false) -- применить правило к только нефрагментированным пакетам.

  • fragmented(all) -- применить правило ко всем пакетам.

Если не указать fragmented при создании правила, то правило межсетевого экрана применяется ко всем пакетам.

src.zone

Зона источника трафика.

Для указания зоны источника, например, Trusted: src.zone = Trusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

src.ip

Добавление списков IP-адресов или доменов источника.

Для указания списка IP-адресов: src.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: src.ip = lib.url(); в скобках необходимо указать название URL, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

src.geoip

Указание GeoIP источника; необходимо указать код страны (например, src.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

user

Пользователи и группы пользователей, для которых применяется правило межсетевого экрана (локальные или LDAP).

Для добавления LDAP групп и пользователей необходим корректно настроенный LDAP-коннектор (о настройке LDAP-коннектора через CLI читайте в разделе Настройка LDAP-коннектора).

В следующей строке описано добавление локальных пользователя (local_user) и группы (Local Group), пользователя (example.local\AD_user) и группы LDAP (AD group):

user = (local_user, "CN=Local Group, DC=LOCAL", "example.loc\\AD_user", "CN=AD group, OU=Example, DC= example, DC=loc")

Заранее был настроен домен Active Directory example.loc. При добавлении пользователей и групп LDAP можно указать список путей на сервере, начиная с которых система будет осуществлять поиск пользователей и групп.

dst.zone

Зона назначения трафика.

Для указания зоны источника, например, Untrusted: dst.zone = Untrusted.

Подробнее о настройке зон с использованием интерфейса командной строки читайте в разделе Зоны.

dst.ip

Добавление списков IP-адресов или доменов назначения.

Для указания списка IP-адресов: dst.ip = lib.network(); в скобках необходимо указать название списка. Подробнее о создании и настройке списков IP-адресов с использованием CLI читайте в разделе Настройка IP-адресов.

Для указания списка доменов источника: dst.ip = lib.url(); в скобках необходимо указать название URL-списка, в который были добавлены необходимые домены. Подробнее о создании и настройке списков URL с использованием интерфейса командной строки читайте в разделе Настройка списков URL.

dst.geoip

Указание GeoIP назначения; необходимо указать код страны (например, dst.geoip = RU).

Коды названий стран доступны по ссылке ISO 3166-1.

service

Тип сервиса. Можно указать сервис или группу сервисов (подробнее читайте в разделах Настройка сервисов и Настройка групп сервисов).

Чтобы указать сервис: service = "service name"; для указания нескольких сервисов: service = (service-name1, service-name2, ...).

Чтобы указать группу сервисов: service = lib.service(); в скобках необходимо указать название группы сервисов.

application

Список приложений, для которых применяется данное правило. Доступно указание:

  • всех групп приложений: application = lib.category(All).

  • групп приложений: application = lib.applicationgroup(); в скобках необходимо указать название группы приложений.

  • категорий приложений: application = lib.category(); в скобках необходимо указать название категорий приложений.

time

Настройка расписания работы правила.

Для установки расписания: time = lib.time(); в скобках необходимо указать название группы календарей. Подробнее о настройке календарей читайте в разделе Настройка календарей.