Predstavljen je izid dinamično upravljanega požarnega zidu firewalld 1.0, implementiranega kot ovitek nad paketnimi filtri nftables in iptables. Firewalld se zažene kot ozadinski proces, ki omogoča dinamično spreminjanje pravil paketnega filtra preko D-Bus, brez potrebe po ponovnem nalaganju pravil paketnega filtra in brez prekinitev vzpostavljenih povezav. Projekt se že uporablja v številnih distribucijah Linuxa, vključno z RHEL 7+, Fedora 18+ in SUSE/openSUSE 15+. Koda firewalld je napisana v jeziku Python in se distribuira pod licenco GPLv2.
Za upravljanje vatrozidom koristi se alat firewall-cmd, koji prilikom kreiranja pravila ne oslanja se na IP naslovov, mrežnih interfejsa i brojeva portova, kao i naziva usluga (na primer, za omogućavanje pristupa SSH potrebno je izvršiti „firewall-cmd —add —service=ssh“, za zatvaranje SSH — „firewall-cmd —remove —service=ssh“). Za promenu konfiguracije međuretnog zida može se koristiti i grafički interfejs firewall-config (GTK) i applet firewall-applet (Qt). Podrška za upravljanje međuretnim zidom putem D-BUS API firewalld dostupna je u projektima kao što su NetworkManager, libvirt, podman, docker i fail2ban.
Značajna sprememba številke različice je povezana z uvajanjem sprememb, ki kršijo obratno združljivost in spreminjajo obnašanje pri delu z območji. Vsi parametri filtriranja, določeni v območju, se zdaj uporabljajo le za promet, usmerjen na gostitelja, na katerem je firewalld zagnan, za filtriranje tranzitnega prometa pa je potrebna nastavitev politik. Najopaznejše spremembe:
- Obsojen je backend, ki je omogočal delovanje nad iptables. Podpora za iptables bo ohranjena v bližnji prihodnosti, vendar ta backend ne bo več razvijan.
- Načrt intra-zone-forwarding je privzet in omogočen za vse nove cone, kar omogoča prosto gibanje paketov med omrežnimi vmesniki ali viri prometa znotraj iste cone (javna, blokirana, zaupanja vredna, notranja itd.). Za vrnitev na prejšnje obnašanje in prepoved preusmerjanja paketov znotraj ene cone lahko uporabite ukaz „firewall-cmd —permanent —zone public —remove-forward“.
- Pravila, povezana s preusmerjanjem naslovov (NAT), so bila premaknjena v družino protokolov „inet“ (prej so bila dodajanja v družinah „ip“ in „ip6“, kar je povzročalo potrebo po podvajanju pravil za IPv4 in IPv6). Sprememba je odpravila podvojitve pri uporabi ipset – namesto treh kopij zapisov ipset se zdaj uporablja ena.
- Dejavnost «default», navedena v parametru «—set-target», je zdaj ekvivalentna «reject», kar pomeni, da bodo vsi paketi, ki ne ustrezajo določenim pravilom na območju, privzeto blokirani. Izkaznica velja samo za paketih ICMP, ki se še vedno spuščajo. Da se vrnemo na prejšnje obnašanje za javno dostopno območje «trusted», lahko uporabimo pravila: 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
- Politike z pozitivnim prioritetom se zdaj izvajajo neposredno pred izvajanjem pravila «—set-target catch-all», torej v trenutku, ki predhaja dodajanju končnih pravil drop, reject ali accept, vključno za območja, v katerih se uporabljajo «—set-target drop|reject|accept».
- Blokada ICMP se zdaj uporablja samo za pakete, usmerjene na trenutni gostitelj (input), in ne vpliva na pakete, preusmerjene med območji (forward).
- Storitev tftp-client, namenjena spremljanju povezav za protokol TFTP, je odstranjena, ker je bila v neuporabnem stanju.
- Vmesnik «direct» je razglašen za zastarelega, kar omogoča neposredno vstavljanje pripravljenih pravil filtriranja paketov. Potreba po tem vmesniku je izginila po dodajanju možnosti filtriranja preusmerjenih in odhodnih paketov.
- Dodana je bila nastavitev CleanupModulesOnExit, ki je privzeto spremenjena na vrednost «no». S to nastavitvijo lahko upravljate z nalaganjem modulov jedra po končanem delovanju firewalld.
- Dovoljeno je uporabljati ipset pri določitvi ciljne naprave (destination).
- Dodane so definicije storitev WireGuard, Kubernetes in netbios-ns.
- Izvedeni so bili pravila samodejnega dopolnjevanja za zsh.
- Podpora za Python 2 je prenehana.
- Seznam odvisnosti je skrajšan. Za delovanje firewalld, poleg jedra Linux, so zdaj obvezne samo python knjižnice dbus, gobject in nftables, medtem ko so paketi ebtables, ipset in iptables postavljeni kot opcijski. Izmed odvisnosti so odstranjene python knjižnice decorator in slip.
Izvor: opennet.ru
