Версия на Firewalld 1.0

Представено е издание на динамично контролираната защитна стена 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.

Значителна промяна в номера на версията е свързана с промени, които нарушават обратната съвместимост и променят поведението при работа със зони. Всички параметри за филтриране, дефинирани в зоната, сега се прилагат само към трафик, адресиран до хоста, на който работи защитната стена, а филтрирането на транзитния трафик изисква настройка на политики. Най-забележимите промени:

  • Бекендът, който му позволява да работи върху iptables, е обявен за остарял. Поддръжката за iptables ще се поддържа в обозримо бъдеще, но този бекенд няма да бъде разработен.
  • Режимът за препращане в рамките на зоната е активиран и активиран по подразбиране за всички нови зони, позволявайки свободно движение на пакети между мрежови интерфейси или източници на трафик в рамките на една зона (публична, блокирана, надеждна, вътрешна и т.н.). За да върнете старото поведение и да предотвратите препращането на пакети в рамките на една зона, можете да използвате командата „firewall-cmd –permanent –zone public –remove-forward“.
  • Правилата, свързани с преобразуването на адреси (NAT), бяха преместени в фамилията протоколи „inet“ (преди това добавени към фамилиите „ip“ и „ip6“, което доведе до необходимостта от дублиране на правила за IPv4 и IPv6). Промяната ни позволи да се отървем от дубликати при използване на ipset - вместо три копия на ipset записи, сега се използва едно.
  • Действието "по подразбиране", посочено в параметъра "--set-target", вече е еквивалентно на "отхвърляне", т.е. всички пакети, които не попадат под правилата, дефинирани в зоната, ще бъдат блокирани по подразбиране. Изключение се прави само за ICMP пакети, които все още са разрешени. За да върнете старото поведение за публично достъпната „доверена“ зона, можете да използвате следните правила: 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“, т.е. в момента преди добавяне на последното пускане, отхвърляне или приемане на правила, включително за зони, които използват „--set-target drop|reject|accept“.
  • ICMP блокирането вече се прилага само за входящи пакети, адресирани до текущия хост (вход) и не засяга пакетите, пренасочени между зоните (напред).
  • Услугата tftp-client, предназначена да проследява връзки за TFTP протокола, но беше в неизползваема форма, беше премахната.
  • „Директният“ интерфейс е отхвърлен, позволявайки директно вмъкване на готови правила за пакетен филтър. Нуждата от този интерфейс изчезна след добавянето на възможност за филтриране на пренасочени и изходящи пакети.
  • Добавен параметър CleanupModulesOnExit, който е променен на "не" по подразбиране. Използвайки този параметър, можете да контролирате разтоварването на модулите на ядрото, след като защитната стена се изключи.
  • Разрешено е използването на ipset при определяне на целевата система (дестинация).
  • Добавени са дефиниции за WireGuard, Kubernetes и netbios-ns услуги.
  • Внедрени правила за автоматично довършване за zsh.
  • Поддръжката на Python 2 е преустановена.
  • Списъкът със зависимости е съкратен. За да работи firewalld, в допълнение към ядрото на Linux, вече са необходими единствените библиотеки на python dbus, gobject и nftables, а пакетите ebtables, ipset и iptables са класифицирани като незадължителни. Декораторът на библиотеките на Python и фишът са премахнати от зависимостите.

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

Добавяне на нов коментар