Выпуск firewalld 1.0
23 июля 2021 года
Представлен релиз динамически управляемого межсетевого экрана firewalld 1.0, реализованного в форме обвязки над пакетным фильтром nftables или iptables. Firewalld запускается в виде фонового процесса, позволяющего динамически изменять правила пакетного фильтра через D-Bus, без необходимости перезагрузки правил пакетного фильтра и без разрыва установленных соединений. Проект уже применяется во многих дистрибутивах Linux, включая RHEL 7+, Fedora 18+ и SUSE/openSUSE 15+. Код проекта написан на языке 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 будет сохранена в обозримом будущем, но развиваться данный бэкенд не будет.
- Прекращена поддержка Python 2.
- Сокращён список зависимостей. Для работы firewalld, помимо ядра Linux, теперь обязательно требуются только python-библиотеки dbus, gobject и nftables, а пакеты ebtables, ipset и iptables отнесены к опциональным. Из числа зависимостей удалены python-библиотеки decorator и slip.
- Включён и активирован по умолчанию для всех новых зон режим 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.
Источники[править]
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
Комментарии[править]
Если вы хотите сообщить о проблеме в статье (например, фактическая ошибка и т. д.), пожалуйста, используйте обычную страницу обсуждения.
Комментарии на этой странице могут не соответствовать политике нейтральной точки зрения, однако, пожалуйста, придерживайтесь темы и попытайтесь избежать брани, оскорбительных или подстрекательных комментариев. Попробуйте написать такие комментарии, которые заставят задуматься, будут проницательными или спорными. Цивилизованная дискуссия и вежливый спор делают страницу комментариев дружелюбным местом. Пожалуйста, подумайте об этом.
Несколько советов по оформлению реплик:
- Новые темы начинайте, пожалуйста, снизу.
- Используйте символ звёздочки «*» в начале строки для начала новой темы. Далее пишите свой текст.
- Для ответа в начале строки укажите на одну звёздочку больше, чем в предыдущей реплике.
- Пожалуйста, подписывайте все свои сообщения, используя четыре тильды (~~~~). При предварительном просмотре и сохранении они будут автоматически заменены на ваше имя и дату.
Обращаем ваше внимание, что комментарии не предназначены для размещения ссылок на внешние ресурсы не по теме статьи, которые могут быть удалены или скрыты любым участником. Тем не менее, на странице комментариев вы можете сообщить о статьях в СМИ, которые ссылаются на эту заметку, а также о её обсуждении на сторонних ресурсах.