[Guida] Introduzione alla gestione di firewalld su GNU/Linux
Un firewall di tipo software è un componente essenziale in un sistema operativo. Saperlo gestire al meglio consente al sysadmin di controllare correttamente il flusso del traffico di rete. In questa mini guida vi parlerò di come gestire le regole di firewalld. Il sistema operativo che ho utilizzato per la stesura dell’articolo è OpenSuse 15.2 Leap con GNOME.
Firewalld, un firewall dinamico per GNU/Linux
I firewall sono un importante elemento di sicurezza nelle reti, soprattutto nel mondo moderno, dove ogni computer è quasi sempre connesso a Internet. C’è bisogno, quindi, di impostare con attenzione adeguate misure di sicurezza. Tramite firewalld, infatti, possiamo monitorare il traffico applicando delle regole alle connessioni in entrata ed uscita, per creare un sistema di difesa più o meno importante in base al contesto.
Firewalld è presente nelle principali distribuzioni GNU/Linux come strumento di default per la gestione dei firewall. In particolare, è utilizzato in CentOS, OpenSuse e Fedora. Per quanto riguarda le altre distribuzioni, è comunque possibile installarlo semplicemente da repository. Essendo un servizio, come si evince dal nome, deve essere in esecuzione per essere utilizzato. Come vi ho spiegato in questa guida, per visionarne lo stato è necessario utilizzare questa direttiva:
sudo systemctl status firewalld
Firewalld, la gestione delle zone di fiducia per le interfacce
Firewalld è un firewall zone-based. Questo significa che, per ciascuna zona, in base al livello di fiducia, si potrà impostare un comportamento particolare per i pacchetti in entrata ed uscita. In genere, per tutte le interfacce viene selezionata di default la public zone. Questo significa che non si ha fiducia in alcuna macchina connessa alla rete e sono permesse solo alcune specifiche connessioni. Volendo schematizzare, un packet non viene sottoposto alle regole della zona di default se:
- Proviene da un’interfaccia a cui è assegnata una particolare zona;
- Proviene da un indirizzo cui è assegnata una particolare zona.
I comandi principali da utilizzare per la gestione delle zone di firewalld, sono:
sudo firewall-cmd --get-default-zone //per ottenere, nello std output, il tipo di zona di default sudo firewall-cmd --get-active-zones //per avere la lista delle zone impostate per ogni interfaccia sudo firewall-cmd --get-zones //lista completa delle zone sudo firewall-cmd --set-default-zone=trusted //impostare la zona di default da public a trusted (sconsigliato) sudo firewall-cmd --zone=internal --change-interface=eth0 //assegnare una particolare interfaccia ad una zona specifica, temporaneamente sudo firewall-cmd --permanent --zone=internal --change-interface=eeth0 //rendere la modifica permanentemente sudo firewall-cmd --zone=public --list-all //stampare le caratteristiche di una zona specifica
La gestione delle zone di fiducia per gli indirizzi
In firewalld una zona può essere assegnata non solo ad una particolare interfaccia, ma anche a specifici indirizzi di rete. I comandi sono intuitivi. Supponiamo di voler impostare una regola secondo cui chi ha indirizzo 192.168.1.x appartiene ad una zona ad elevata fiduci. Per farlo basta utilizzare questa direttiva:
sudo firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24
Service e port management
Dopo aver assegnato un’interfaccia o un indirizzo ad una particolare zona, è arrivato il momento di capire per ognuna quali sono i servizi e le porte effettivamente accessibili. Analogamente a quanto visto fino ad ora, i comandi da utilizzare sono i seguenti:
sudo firewall-cmd --list-services --zone=public sudo firewall-cmd --list-ports --zone=public sudo firewall-cmd --permanent --zone=home --add-service=dhcp //per aggiungere un servizio ad una zona sudo firewall-cmd --zone=home --add-port=21/tcp //per aggiungere una porta sudo firewall-cmd --reload //comando necessario per rendere i cambiamenti effettivi
In questa mini guida vi ho parlato solo degli aspetti introduttivi a firewalld ed ai firewall in generale. Per avere maggiori dettagli sul funzionamento di questo tool, vi rimando alla documentazione ufficiale.
Seguiteci sul nostro canale Telegram, sulla nostra pagina Facebook e su Google News. Nel campo qui sotto è possibile commentare e creare spunti di discussione inerenti le tematiche trattate sul blog.