Release af den dynamisk administrerede firewall firewalld 1.0 er blevet præsenteret, implementeret som et lag oven på packetfiltrene nftables og iptables. Firewalld kører som en baggrundsproces, der gør det muligt at ændre firewallregler dynamisk via D-Bus uden at genstarte firewallreglerne og uden at afbryde etablerede forbindelser. Projektet anvendes allerede i mange Linux-distributioner, herunder RHEL 7+, Fedora 18+ og SUSE/openSUSE 15+. Koden til firewalld er skrevet i Python og distribueres under GPLv2-licensen.
For at administrere firewallen bruges værktøjet firewall-cmd, som ved oprettelse af regler baserer sig ikke på IP-adresser, netværksgrænseflader og portnumre, og fra navne på tjenester (for eksempel for at åbne adgang til SSH, skal man køre «firewall-cmd —add —service=ssh», for at lukke SSH — «firewall-cmd —remove —service=ssh»). Konfigurationen af firewallen kan også ændres via den grafiske brugerflade firewall-config (GTK) og applet firewall-applet (Qt). Understøttelse af at administrere firewallen via D-BUS API'en firewalld er til stede i sådanne projekter som NetworkManager, libvirt, podman, docker og fail2ban.
Den betydelige ændring af versionsnummeret skyldes ændringer, der bryder bagudkompatibiliteten og ændrer adfærden ved arbejdet med zoner. Alle de filtreringsparametre, der er defineret i zonen, anvendes nu kun for trafik, der er adresseret til den værtsmaskine, hvor firewalld kører, og for at filtrere transittrafik er det nødvendigt at indstille politikker. De mest bemærkelsesværdige ændringer:
- Backend der gjorde det muligt at fungere oven på iptables er blevet markeret som forældet. Understøttelse af iptables vil blive opretholdt i den nærmeste fremtid, men denne backend vil ikke blive videreudviklet.
- Intra-zone-forwarding tilstand er som standard inkluderet og aktiveret for alle nye zoner og tillader fri bevægelse af pakker mellem netværksgrænseflader eller trafikproducenter inden for en zone (public, block, trusted, internal osv.). For at returnere til den gamle adfærd og forbyde videresendelse af pakker inden for en zone kan man bruge kommandoen «firewall-cmd —permanent —zone public —remove-forward».
- Regler relateret til adresseoversættelse (NAT) er blevet flyttet til protokolfamilien «inet» (tidligere blev de tilføjet i familierne «ip» og «ip6», hvilket medførte behovet for at duplikere reglerne for IPv4 og IPv6). Ændringen har gjort det muligt at eliminere duplikater ved brug af ipset — i stedet for tre kopier af ipset-posteringer anvendes der nu kun én.
- Handlingen «default», angivet i parameteren «—set-target», er nu lig med «reject», dvs. alle pakker, der ikke falder ind under bestemte regler i zonen, vil som standard blive blokeret. Undtagelsen er kun ICMP-pakker, som stadig tillades. For at returnere til den gamle adfærd for den offentligt tilgængelige zone «trusted» kan følgende regler anvendes: 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
- Politikker med positiv prioritet udføres nu direkte før udførelsen af reglen «—set-target catch-all», dvs. i det øjeblik, der går forud for tilsætningen af de endelige regler drop, reject eller accept, herunder for zoner, hvor «—set-target drop|reject|accept» anvendes.
- Blokering af ICMP gælder nu kun for de indkommende pakker, der er adresseret til den aktuelle værtsmaskine (input), og berører ikke pakker, der videresendes mellem zoner (forward).
- Tjenesten tftp-client, der er beregnet til at overvåge forbindelser til protokollen TFTP, er blevet fjernet, da den var ubrugelig.
- Grænsefladen «direct», som gjorde det muligt at indsætte klare regelsæt for pakke filtrering direkte, er blevet erklæret forældet. Behovet for denne grænseflade forsvandt efter tilføjelsen af muligheden for at filtrere videresendte og udgående pakker.
- Parameteren CleanupModulesOnExit er tilføjet, og standardværdi er ændret til «no». Denne parameter kan bruges til at styre aflæsningen af kerne-moduler efter firewalld's afslutning.
- Brug af ipset er blevet tilladt ved bestemmelse af destinationssystemet (destination).
- Definitioner af tjenesterne WireGuard, Kubernetes og netbios-ns er blevet tilføjet.
- Autocompletion regler for zsh er blevet implementeret.
- Understøttelsen af Python 2 er ophørt.
- Listen over afhængigheder er blevet forkortet. For at få firewalld til at fungere kræves nu kun linux-kernen samt python-bibliotekerne dbus, gobject og nftables, mens pakkerne ebtables, ipset og iptables er blevet bedt om at være valgfrie. Python-bibliotekerne decorator og slip er blevet fjernet fra afhængighederne.
Kilde: opennet.ru
