Выпуск firewalld 1.0
Представлен релиз динамически управляемого межсетевого экрана firewalld 1.0, реализованного в форме обвязки над пакетными фильтрами nftables и iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект уже применяется во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+. Код firewalld написан на языке Python и распространяется под лицензией GPLv2.
Для управления межсетевым экраном используется утилита firewall-cmd, которая при создании правил отталкивается не от IP-адресов, сетевых интерфейсов и номеров портов, а от названий служб (например, для открытия доступа к SSH нужно выполнить «firewall-cmd --add --service=ssh», для закрытия SSH — «firewall-cmd --remove --service=ssh»). Для изменения конфигурации межсетевого экрана также может использоваться графический интерфейс firewall-config (GTK) и апплет firewall-applet (Qt). Поддержка управления межсетевым экраном через D-BUS API firewalld имеется в таких проектах, как NetworkManager, libvirt, podman, docker и fail2ban.
Значительное изменение номера версии связано с внесением изменений, нарушающих обратную совместимость и меняющих поведение работы с зонами. Все определённые в зоне параметры фильтрации теперь применяются только для трафика, адресованного хосту, на котором запущен firewalld, а для фильтрации транзитного трафика требуется настройка политик. Наиболее заметные изменения:
Объявлен устаревшим бэкенд, позволявший работать поверх iptables. Поддержка iptables будет сохранена в обозримом будущем, но развиваться данный бэкенд не будет.
Включён и активирован по умолчанию для всех новых зон режим intra-zone-forwarding, разрешающий свободное перемещение пакетов между сетевыми интерфейсами или источниками трафика внутри одной зоны (public, block, trusted, internal и т.п.). Для возвращения старого поведения и запрета перенаправления пакетов внутри одной зоны можно использовать команду «firewall-cmd --permanent --zone public --remove-forward».
Правила, связанные с трансляцией адресов (NAT), перемещены в семейство протоколов «inet» (ранее добавлялись в семействах «ip» и «ip6», что приводило к необходимости дублирования правил для IPv4 и IPv6). Изменение позволило избавиться от дубликатов при использовании ipset — вместо трёх копий записей ipset теперь используется одна.
- Действие «default», указываемое в параметре »--set-target», теперь эквивалентно «reject», т.е. все пакеты, не подпадающие под определённые в зоне правила, по умолчанию будут блокироваться. Исключение сделано только для ICMP-пакетов, которые по-прежнему пропускаются. Для возвращения старого поведения для публично доступной зоны «trusted» можно использовать правила:
firewall-cmd --permanent --new-policy allowForward firewall-cmd --permanent --policy allowForward --set-target ACCEPT firewall-cmd --permanent --policy allowForward --add-ingress-zone public firewall-cmd --permanent --policy allowForward --add-egress-zone trusted firewall-cmd --reload
Политики с положительным приоритетом теперь выполняются непосредственно до выполнения правила »--set-target catch-all», т.е. в момент, предшествующий добавлению финальных правил drop, reject или accept, в том числе для зон, в которых используются »--set-target drop|reject|accept».
Блокировка ICMP теперь применяется только к адресованным текущему хосту входящим пакетам (input) и не затрагивает пакеты, перенаправляемые между зонами (forward).
Удалён сервис tftp-client, предназначенный для отслеживания соединений для протокола TFTP, но находившийся в непригодном для использования виде.
Объявлен устаревшим интерфейс «direct», позволяющий напрямую подставлять готовые правила пакетного фильтра. Потребность в данном интерфейсе пропала после добавления возможности фильтрации перенаправляемых и исходящих пакетов.
Добавлен параметр CleanupModulesOnExit, который по умолчанию изменён на значение «no». При помощи данного параметрам можно управлять выгрузкой модулей ядра после завершения работы firewalld.
Разрешено использование ipset при определении целевой системы (destination).
Добавлены определения сервисов WireGuard, Kubernetes и netbios-ns.
Реализованы правила автодополнения для zsh.
- Прекращена поддержка Python 2.
Сокращён список зависимостей. Для работы firewalld, помимо ядра Linux, теперь обязательно требуются только python-библиотеки dbus, gobject и nftables, а пакеты ebtables, ipset и iptables отнесены к опциональным. Из числа зависимостей удалены python-библиотеки decorator и slip.
Источник: http://www.opennet.ru/opennews/art.shtml? num=55537
© OpenNet