Firewalld in breve
Negli ultimi decenni, la sicurezza informatica è diventata una priorità assoluta per chiunque gestisca reti, server o anche semplicemente un computer connesso a Internet. Tra le tante tecnologie che aiutano a proteggere i nostri dispositivi e dati, uno dei componenti fondamentali è il firewall, uno strumento che filtra e controlla il traffico di rete. Nel panorama di Linux, un tool moderno e versatile per la gestione del firewall è Firewalld.
Un po’ di storia
Fino a non molti anni fa, uno dei firewall più utilizzati in ambiente Linux era iptables, un potente sistema che permetteva di configurare in modo molto dettagliato le regole per gestire il traffico di rete. Tuttavia, configurare iptables richiedeva una buona conoscenza tecnica e una certa esperienza. Nel 2011, il progetto Firewalld è stato introdotto per rendere la gestione del firewall più semplice e accessibile, soprattutto in ambienti con server o desktop. Firewalld fornisce un’interfaccia dinamica che consente di applicare modifiche senza dover riavviare i servizi di rete, cosa che con iptables non era così immediata.
Cosa offre Firewalld?
Firewalld è uno strumento di gestione del firewall che si basa su un approccio a “zone”, permettendo di definire regole diverse a seconda del livello di fiducia che si ha per una determinata connessione. È anche dinamico, il che significa che è possibile modificare le regole del firewall senza disconnettere o interrompere le connessioni attive.
Le sue principali caratteristiche sono:
- Gestione delle zone: permette di separare le reti in differenti zone con livelli di sicurezza variabili.
- Supporto IPv4, IPv6, ponti (bridge) e configurazioni con NAT.
- Modifiche dinamiche: non c’è bisogno di riavviare il firewall o disconnettere gli utenti per applicare nuove regole.
- Interfaccia user-friendly: oltre ai classici comandi da terminale, offre anche un’interfaccia grafica (firewall-config) per chi preferisce una gestione visuale.
- Compatibile con iptables: pur utilizzando tecnologie più moderne, Firewalld permette di usare iptables come backend.
Zone e profili
Le zone sono il cuore di Firewalld. Ogni zona rappresenta un contesto di sicurezza che si applica a un’interfaccia di rete o a un determinato tipo di connessione. Ad esempio, potresti avere il tuo Wi-Fi di casa configurato su una zona “trusted” (fidata), mentre una connessione VPN su una zona “public” (pubblica) con regole di sicurezza più restrittive. Le zone possono essere assegnate in base a dove ti trovi, che tipo di rete stai usando o che servizi desideri rendere disponibili.
Le zone principali predefinite includono:
- drop: tutto il traffico in entrata è bloccato, non si risponde nemmeno ai pacchetti.
- block: simile a drop, ma risponde con “ICMP host proibito”.
- public: pensata per reti pubbliche non fidate, ma con possibilità di abilitare alcuni servizi.
- external: usata in configurazioni di router o gateway, con NAT abilitato.
- internal: per reti interne fidate, dove si desidera maggiore apertura ai servizi.
- trusted: qui tutto è permesso, senza restrizioni.
Puoi assegnare zone specifiche alle interfacce di rete e gestire quali servizi sono abilitati o bloccati per ciascuna di esse. Ad esempio, potresti voler aprire la porta per SSH solo nella zona interna, mentre mantenerla chiusa per quella pubblica.
Installazione di Firewalld
In molte distribuzioni moderne di Linux, Firewalld è preinstallato (ad esempio in Fedora e RHEL/CentOS), ma in altre distribuzioni potrebbe essere necessario installarlo manualmente.
Per installarlo su distribuzioni basate su Debian (come Ubuntu), esegui:
sudo apt update
sudo apt install firewalld
Su distribuzioni RHEL/CentOS o Fedora:
sudo dnf install firewalld
Una volta installato, abilita e avvia il servizio con:
sudo systemctl enable firewalld
sudo systemctl start firewalld
I comandi di base
Ora che Firewalld è attivo e funzionante, vediamo i comandi più utili per iniziare a usarlo e configurarlo:
- Controllare lo stato di Firewalld:
sudo firewall-cmd --state
Questo comando ti dirà se Firewalld è attivo o no.
- Visualizzare la zona predefinita:
sudo firewall-cmd --get-default-zone
- Elencare tutte le zone disponibili:
sudo firewall-cmd --get-zones
- Elencare le regole di una zona specifica (es. public):
sudo firewall-cmd --zone=public --list-all
- Cambiare la zona predefinita:
sudo firewall-cmd --set-default-zone=home
- Aggiungere un servizio (es. HTTP) a una zona specifica:
sudo firewall-cmd --zone=public --add-service=http
Se desideri che questa modifica sia persistente anche dopo un riavvio, aggiungi l’opzione --permanent
:
sudo firewall-cmd --zone=public --add-service=http --permanent
- Rimuovere un servizio:
sudo firewall-cmd --zone=public --remove-service=http --permanent
- Riavviare Firewalld (utile se hai fatto modifiche manuali ai file di configurazione):
sudo firewall-cmd --reload
- Aggiungere una porta specifica: Se desideri aprire una porta specifica (ad esempio la porta 8080), puoi usare il seguente comando:
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
- Assegnare una zona a un’interfaccia di rete:
sudo firewall-cmd --zone=home --change-interface=eth0
Riferimenti alla documentazione ufficiale
Per chi desidera approfondire ulteriormente, qui ci sono alcuni link utili alla documentazione ufficiale di Firewalld e altre risorse tecniche:
- Documentazione ufficiale di Firewalld -Questa è la risorsa principale per capire tutte le funzionalità e opzioni avanzate di Firewalld.
- Pagina del progetto su GitHub – Qui puoi trovare il codice sorgente di Firewalld, issue tracker e contributi della comunità.
- Manuale di Firewalld – Questa pagina man fornisce una panoramica dettagliata del comando
firewall-cmd
e delle sue opzioni.