web analytics

[Guida] Introduzione alla gestione di firewalld su GNU/Linux

firewalld firewall sysadmin 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 firewall sysadmin status
Visualizzare lo stato di un servizio con Systemd.

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.
firewalld firewall sysadmin status public
Una descrizione della zona di fiducia pubblica.

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 

firewalld services ports zone

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.

sharing-caring-1Seguiteci 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.