Versione Firewalld 1.0

Viene presentata una versione del firewall a controllo dinamico firewalld 1.0, implementato sotto forma di wrapper sui filtri di pacchetti nftables e iptables. Firewalld viene eseguito come processo in background che consente di modificare dinamicamente le regole del filtro dei pacchetti tramite D-Bus senza dover ricaricare le regole del filtro dei pacchetti o interrompere le connessioni stabilite. Il progetto è già utilizzato in molte distribuzioni Linux, tra cui RHEL 7+, Fedora 18+ e SUSE/openSUSE 15+. Il codice firewalld è scritto in Python ed è concesso in licenza con la licenza GPLv2.

Per gestire il firewall, viene utilizzata l'utilità firewall-cmd, che, durante la creazione di regole, non si basa su indirizzi IP, interfacce di rete e numeri di porta, ma sui nomi dei servizi (ad esempio, per aprire l'accesso a SSH è necessario eseguire “firewall-cmd —add —service= ssh”, per chiudere SSH – “firewall-cmd –remove –service=ssh”). Per modificare la configurazione del firewall è possibile utilizzare anche l'interfaccia grafica firewall-config (GTK) e l'applet firewall-applet (Qt). Il supporto per la gestione del firewall tramite l'API D-BUS firewalld è disponibile in progetti come NetworkManager, libvirt, podman, docker e fail2ban.

Una modifica significativa nel numero di versione è associata a modifiche che interrompono la compatibilità con le versioni precedenti e modificano il comportamento di utilizzo delle zone. Tutti i parametri di filtraggio definiti nella zona vengono ora applicati solo al traffico indirizzato all'host su cui è in esecuzione firewalld e il filtraggio del traffico di transito richiede l'impostazione di policy. I cambiamenti più evidenti:

  • Il backend che gli permetteva di funzionare su iptables è stato dichiarato obsoleto. Il supporto per iptables verrà mantenuto nel prossimo futuro, ma questo backend non verrà sviluppato.
  • La modalità di inoltro intra-zona è abilitata e attivata per impostazione predefinita per tutte le nuove zone, consentendo la libera circolazione dei pacchetti tra interfacce di rete o sorgenti di traffico all'interno di una zona (pubblica, bloccata, attendibile, interna, ecc.). Per ripristinare il vecchio comportamento e impedire che i pacchetti vengano inoltrati all'interno di una zona, è possibile utilizzare il comando "firewall-cmd –permanent –zone public –remove-forward".
  • Le regole relative alla traduzione degli indirizzi (NAT) sono state spostate nella famiglia di protocolli “inet” (precedentemente aggiunta alle famiglie “ip” e “ip6”, il che ha portato alla necessità di duplicare le regole per IPv4 e IPv6). La modifica ci ha permesso di eliminare i duplicati quando si utilizza ipset: invece di tre copie delle voci ipset, ora ne viene utilizzata una.
  • L'azione "default" specificata nel parametro "--set-target" ora è equivalente a "reject", ovvero tutti i pacchetti che non rientrano nelle regole definite nella zona verranno bloccati per impostazione predefinita. Viene fatta un'eccezione solo per i pacchetti ICMP, che sono ancora consentiti. Per restituire il vecchio comportamento per la zona "attendibile" accessibile pubblicamente, è possibile utilizzare le seguenti regole: firewall-cmd —permanent —new-policyallowForward firewall-cmd —permanent —policyallowForward —set-target ACCEPT firewall-cmd —permanent — policyallowForward —add-ingress -zone public firewall-cmd —permanent —policyallowForward —add-egress-zone Trusted Firewall-cmd —reload
  • Le policy con priorità positiva vengono ora eseguite immediatamente prima dell'esecuzione della regola "--set-target catch-all", ovvero al momento prima di aggiungere le regole di rilascio, rifiuto o accettazione finale, anche per le zone che utilizzano "--set-target drop|reject|accept".
  • Il blocco ICMP ora si applica solo ai pacchetti in entrata indirizzati all'host corrente (input) e non influisce sui pacchetti reindirizzati tra zone (inoltro).
  • Il servizio client tftp, progettato per tracciare le connessioni per il protocollo TFTP, ma che era in una forma inutilizzabile, è stato rimosso.
  • L'interfaccia “diretta” è stata deprecata, consentendo l'inserimento diretto di regole di filtro dei pacchetti già pronte. La necessità di questa interfaccia è scomparsa dopo l'aggiunta della possibilità di filtrare i pacchetti reindirizzati e in uscita.
  • Aggiunto il parametro CleanupModulesOnExit, che viene modificato in "no" per impostazione predefinita. Usando questo parametro, puoi controllare lo scaricamento dei moduli del kernel dopo lo spegnimento di firewalld.
  • È consentito utilizzare ipset per determinare il sistema di destinazione (destinazione).
  • Aggiunte definizioni per i servizi WireGuard, Kubernetes e netbios-ns.
  • Regole di completamento automatico implementate per zsh.
  • Il supporto di Python 2 è stato interrotto.
  • L'elenco delle dipendenze è stato abbreviato. Per il funzionamento di firewalld, oltre al kernel Linux, sono ora necessarie le sole librerie python dbus, gobject e nftables, mentre i pacchetti ebtables, ipset e iptables sono classificati come opzionali. Il decoratore e lo slip delle librerie Python sono stati rimossi dalle dipendenze.

Fonte: opennet.ru

Aggiungi un commento