11 Фильтрация сетевого потока

11.1 Введение

Средства фильтрации сетевого потока предоставляют возможности фильтрации входящих и исходящих сетевых потоков на основе установленного набора правил с учетом атрибутов безопасности и используемых сетевых протоколов, а также управления правилами фильтрации сетевых потоков; регистрации и учета выполнения проверок при фильтрации сетевых потоков.

11.2 Настройка файрвола (брандмауэра)

Утилита firewall-cmd позволяет настраивать работу файрвола (брандмауэра), осуществляющего фильтрацию сетевых потоков при помощи определения так называемых зон, иными словами, наборов правил, которые управляют трафиком на основе уровня доверия к той или иной сети.

Существуют следующие зоны:

  • drop — самый низкий уровень доверия к сети. Весь входящий трафик сбрасывается без ответа. Поддерживаются только исходящие соединения;

  • block — эта зона похожа на предыдущую, но при этом входящие запросы сбрасываются с сообщением icmp-host-prohibited или icmp6-adm-prohibited;

  • public — эта зона представляет публичную сеть, которой нельзя доверять, однако поддерживает входящие соединения в индивидуальном порядке;

  • external — зона внешних сетей. Поддерживает маскировку NAT, благодаря чему внутренняя сеть остается закрытой, но с возможностью получения доступа;

  • internal — обратная сторона зоны external. Компьютерам в этой зоне можно доверять.

Доступны дополнительные сервисы:

  • dmz — используется для компьютеров, расположенных в DMZ (зонах изолированных компьютеров, которые не будут иметь доступа к остальной части сети). Поддерживает только некоторые входящие соединения;

  • work — зона рабочей сети. Большинству машин в сети можно доверять, доступны дополнительные сервисы;

  • home — зона домашней сети. Окружению можно доверять, но поддерживаются только определённые пользователем входящие соединения;

  • trusted — всем машинам в сети можно доверять.

Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:

Опции утилиты firewall-cmd и их значения

Опция

Значение

--state

Вывести состояние файрвола.

--reload

Перезагрузить правила из постоянной конфигурации.

--complete-reload

Жёсткая перезагрузка правил с разрывом всех соединений.

--runtime-to-permanent

Перенести настройки runtime в постоянную конфигурацию.

--permanent

Использовать постоянную конфигурацию.

--get-default-zone

Отобразить зону, используемую по умолчанию.

--set-default-zone

Установить зону по умолчанию.

--get-active-zones

Отобразить активные зоны.

--get-zones

Отобразить все доступные зоны.

--get-services

Вывести предопределенные сервисы.

--list-all-zones

Вывести конфигурацию всех зон.

--new-zone

Создать новую зону.

--delete-zone

Удалить зону.

--list-all

Вывести всё, что добавлено, из выбранной зоны.

--list-services

Вывести все сервисы, добавленные к зоне.

--add-service

Добавить сервис к зоне.

--remove-service

Удалить сервис из зон.

--list-ports

Отобразить порты, добавленные к зоне.

--add-port

Добавить порт к зоне.

--remove-port

Удалить порт из зоны.

--query-port

Показать, добавлен ли порт к зоне.

--list-protocols

Вывести протоколы, добавленные к зоне.

--add-protocol

Добавить протокол к зоне.

--remove-protocol

Удалить протокол из зоны.

--list-source-ports

Вывести порты источника, добавленные к зоне.

--add-source-port

Добавить порт-источник к зоне.

--remove-source-port

Удалить порт-источник из зоны.

--list-icmp-blocks

Вывести список блокировок icmp.

--add-icmp-block

Добавить блокировку icmp.

--remove-icmp-block

Удалить блокировку icmp.

--add-forward-port

Добавить порт для перенаправления в NAT.

--remove-forward-port

Удалить порт для перенаправления в NAT.

--add-masquerade

Включить NAT.

--remove-masquerade

Удалить NAT.

Пример: настройка правила блокировки адреса получателя может выглядеть следующим образом:

[root@msvsphere ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -d 192.168.10.20 -j DROP
success

Пример: настройка правила отбрасывания всех входящих соединений по протоколу IPv4 может выглядеть следующим образом:

[root@msvsphere ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -j DROP
success

Пример: настройка правила отбрасывания всех исходящих пакетов UDP может выглядеть следующим образом:

[root@msvsphere ~]# firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p upd -j DROP
success

11.3 Конфигурационный файл /etc/firewalld/firewalld.conf

Конфигурационный файл /etc/firewalld/firewalld.conf содержит основные параметры конфигурации для файрвола firewalld.

  • DefaultZone — устанавливает зону по умолчанию для соединений или интерфейсов;

  • MinimalMark — с этой опцией блок меток может быть зарезервирован для частного использования. Используются только отметки над этим значением. Значение по умолчанию равно 100;

  • CleanupOnExit — если firewalld останавливается, он очищает все правила. Если для этого параметра установлено значение no или false, текущие правила останутся нетронутыми. Значением по умолчанию является yes или true;

  • Lockdown — если эта опция включена, изменения firewalld с интерфейсом D-Bus будут ограничены приложениями, которые перечислены в белом списке блокировки. Значением по умолчанию является no или false;

  • IPv6_rpfilter — если эта опция включена, выполняется проверка фильтра обратного пути для пакета для IPv6. Если ответ на пакет будет отправлен через тот же интерфейс, на который поступил пакет, пакет совпадет и будет принят. В противном случае он будет отброшен. Для IPv4 rp_filter управляется с помощью sysctl;

  • IndividualCalls — если этот параметр отключен, используются комбинированные вызовы restore, а не отдельные вызовы, чтобы применить изменения к файрволу. Использование отдельных вызовов увеличивает время, необходимое для применения изменений;

  • LogDenied — добавление правил ведения журнала непосредственно перед отклонением и удалением правил в цепочках INPUT, FORWARD и OUTPUT для правил по умолчанию, а также окончательных правил отклонения и отбрасывания в зонах для настроенного типа пакета канального уровня. По умолчанию установлено off — отключение ведения журнала.

  • AutomaticHelpers — для безопасного использования протокола IPv4 iptables и помощников по отслеживанию соединений этот параметр рекомендуется отключить. Возможные значения: yes, no, system. По умолчанию установлено system;

  • FirewallBackend — выбирает реализацию брандмауэра. Возможные значения: nftables (по умолчанию) или iptables. Это относится ко всем примитивам firewalld. Единственным исключением являются прямые и сквозные правила, которые всегда используют традиционные iptables, ip6tables и ebtables.