Фильтрация сетевого потока
Введение
Средства фильтрации сетевого потока предоставляют возможности фильтрации входящих и исходящих сетевых потоков на основе установленного набора правил с учетом атрибутов безопасности и используемых сетевых протоколов, а также управления правилами фильтрации сетевых потоков; регистрации и учета выполнения проверок при фильтрации сетевых потоков.
Настройка файрвола (брандмауэра)
Утилита firewall-cmd позволяет настраивать работу файрвола (брандмауэра), осуществляющего
фильтрацию сетевых потоков при помощи определения так называемых зон, иными словами,
наборов правил, которые управляют трафиком на основе уровня доверия к той или иной сети.
Существуют следующие зоны:
drop— самый низкий уровень доверия к сети. Весь входящий трафик сбрасывается без ответа. Поддерживаются только исходящие соединения;block— эта зона похожа на предыдущую, но при этом входящие запросы сбрасываются с сообщениемicmp-host-prohibitedилиicmp6-adm-prohibited;public— эта зона представляет публичную сеть, которой нельзя доверять, однако поддерживает входящие соединения в индивидуальном порядке;external— зона внешних сетей. Поддерживает маскировку NAT, благодаря чему внутренняя сеть остается закрытой, но с возможностью получения доступа;internal— обратная сторона зоныexternal. Компьютерам в этой зоне можно доверять.
Доступны дополнительные сервисы:
dmz— используется для компьютеров, расположенных в DMZ (зонах изолированных компьютеров, которые не будут иметь доступа к остальной части сети). Поддерживает только некоторые входящие соединения;work— зона рабочей сети. Большинству машин в сети можно доверять, доступны дополнительные сервисы;home— зона домашней сети. Окружению можно доверять, но поддерживаются только определённые пользователем входящие соединения;trusted— всем машинам в сети можно доверять.
Режимы работы утилиты и выполняемые функции задаются набором опций, перечисленных в таблице:
Опция |
Значение |
|---|---|
|
Вывести состояние файрвола. |
|
Перезагрузить правила из постоянной конфигурации. |
|
Жёсткая перезагрузка правил с разрывом всех соединений. |
|
Перенести настройки |
|
Использовать постоянную конфигурацию. |
|
Отобразить зону, используемую по умолчанию. |
|
Установить зону по умолчанию. |
|
Отобразить активные зоны. |
|
Отобразить все доступные зоны. |
|
Вывести предопределенные сервисы. |
|
Вывести конфигурацию всех зон. |
|
Создать новую зону. |
|
Удалить зону. |
|
Вывести всё, что добавлено, из выбранной зоны. |
|
Вывести все сервисы, добавленные к зоне. |
|
Добавить сервис к зоне. |
|
Удалить сервис из зон. |
|
Отобразить порты, добавленные к зоне. |
|
Добавить порт к зоне. |
|
Удалить порт из зоны. |
|
Показать, добавлен ли порт к зоне. |
|
Вывести протоколы, добавленные к зоне. |
|
Добавить протокол к зоне. |
|
Удалить протокол из зоны. |
|
Вывести порты источника, добавленные к зоне. |
|
Добавить порт-источник к зоне. |
|
Удалить порт-источник из зоны. |
|
Вывести список блокировок icmp. |
|
Добавить блокировку icmp. |
|
Удалить блокировку icmp. |
|
Добавить порт для перенаправления в NAT. |
|
Удалить порт для перенаправления в NAT. |
|
Включить NAT. |
|
Удалить NAT. |
Пример: настройка правила блокировки адреса получателя может выглядеть следующим образом:
$ sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -d 192.168.10.20 -j DROP
success
Пример: настройка правила отбрасывания всех входящих соединений по протоколу IPv4 может выглядеть следующим образом:
$ sudo firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -j DROP
success
Пример: настройка правила отбрасывания всех исходящих пакетов UDP может выглядеть следующим образом:
$ sudo firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p upd -j DROP
success
Конфигурационный файл /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. Если ответ на пакет будет отправлен через тот же интерфейс, на который поступил пакет, пакет совпадет и будет принят. В противном случае он будет отброшен. Для IPv4rp_filterуправляется с помощьюsysctl;IndividualCalls— если этот параметр отключен, используются комбинированные вызовы restore, а не отдельные вызовы, чтобы применить изменения к файрволу. Использование отдельных вызовов увеличивает время, необходимое для применения изменений;LogDenied— добавление правил ведения журнала непосредственно перед отклонением и удалением правил в цепочкахINPUT,FORWARDиOUTPUTдля правил по умолчанию, а также окончательных правил отклонения и отбрасывания в зонах для настроенного типа пакета канального уровня. По умолчанию установленоoff— отключение ведения журнала.AutomaticHelpers— для безопасного использования протокола IPv4iptablesи помощников по отслеживанию соединений этот параметр рекомендуется отключить. Возможные значения:yes,no,system. По умолчанию установленоsystem;FirewallBackend— выбирает реализацию брандмауэра. Возможные значения:nftables(по умолчанию) илиiptables. Это относится ко всем примитивамfirewalld. Единственным исключением являются прямые и сквозные правила, которые всегда используют традиционныеiptables,ip6tablesиebtables.
Предупреждение
Внимание! Не следует выдавать права sudo на утилиту iptables-save.
Утилита iptables-save при помощи ключа -f позволяет записывать дамп правил в файл.
Соответственно, имея права sudo, пользователь сможет переписать любой файл в системе.