Выпуск firewalld 1.0

Материал из Викиновостей, свободного источника новостей
Перейти к навигации Перейти к поиску

23 июля 2021 года

Wikinews-logo-ru.svg

Представлен релиз динамически управляемого межсетевого экрана 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.
 

Источники[править]


OpenNET logo.png
Creative Commons
Эта статья содержит материалы из статьи «Выпуск firewalld 1.0», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
Cartoon Robot.svg
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.
 

Комментарии:Выпуск firewalld 1.0