Издание на 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 — вместо три копия на записи, сега се използва едно.
  • Действието «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.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster