Salta al contenuto principale

Sicurezza di rete avanzata su Linux: implementazione di un firewall con nftables

Profile picture for user luca77king

La sicurezza di rete è una componente imprescindibile per qualsiasi sistema informatico, e su piattaforme Linux la protezione efficace passa spesso attraverso una configurazione accurata del firewall. Tra gli strumenti più moderni e potenti disponibili, nftables si è affermato come lo standard di riferimento, sostituendo gradualmente iptables grazie alla sua maggiore flessibilità e alla sintassi più leggibile.

Comprendere le basi di nftables è il primo passo per costruire una difesa solida: si tratta di un framework modulare che consente di definire tabelle, catene e regole in modo chiaro e gestibile. La sua architettura consente di semplificare la manutenzione delle policy di sicurezza, riducendo al contempo il rischio di errori di configurazione.

In questo articolo approfondiremo i concetti chiave di nftables, illustreremo la procedura passo‑passo per installare e configurare un firewall di base, e presenteremo alcune regole avanzate per gestire traffico, blocchi IP e monitoraggio tramite contatori e insiemi. Alla fine della lettura avrai tutte le informazioni necessarie per proteggere la tua rete Linux con un approccio professionale e scalabile.

Configurazione di base

Prima di tutto, è necessario installare il pacchetto nftables sulla propria distribuzione Linux. Su Debian, Ubuntu e derivate la procedura è semplicissima:

sudo apt update
sudo apt install nftables

Una volta installato, è consigliabile abilitare il servizio in modo che parta automaticamente al boot del sistema:

sudo systemctl enable nftables
sudo systemctl start nftables

Il prossimo passo è creare una tabella di lavoro. La tabella predefinita per la filtrazione del traffico è chiamata filter e può essere creata con il comando:

sudo nft add table ip filter

Questa tabella rappresenta il contenitore principale dove verranno inserite le catene e le regole che definiranno il comportamento del firewall. È buona pratica verificare la creazione della tabella elencando le configurazioni attive:

sudo nft list tables

Regole di base

All’interno della tabella filter, la prima catena da configurare è tipicamente INPUT, che controlla il traffico in ingresso sulla macchina locale. La catena viene definita con:

sudo nft add chain ip filter INPUT { type filter hook input priority 0 \; }

A questo punto possiamo aggiungere le regole di base. Una delle pratiche più comuni è consentire solo le connessioni SSH sulla porta TCP 22, garantendo così l’accesso remoto sicuro ma limitato:

sudo nft add rule ip filter INPUT tcp dport 22 ct state new accept

Di default, è consigliabile impostare una politica di drop su tutto il resto, così da bloccare qualsiasi traffico non esplicitamente autorizzato:

sudo nft add rule ip filter INPUT drop

Queste tre regole costituiscono una configurazione minima ma solida: consentono l’accesso amministrativo tramite SSH, bloccano tutto il traffico non richiesto e consentono di aggiungere ulteriori eccezioni in futuro. È possibile visualizzare l’intero set di regole con:

sudo nft list chain ip filter INPUT

Regole avanzate

Una volta stabilita la configurazione di base, è possibile sfruttare le funzionalità più avanzate di nftables per affinare ulteriormente la sicurezza. Una delle opzioni più potenti è l’uso degli insiemi (sets), che permettono di raggruppare più indirizzi IP, porte o protocolli in un’unica struttura, riducendo il numero di regole necessarie.

Per esempio, per bloccare una lista di indirizzi IP sospetti, possiamo creare un insieme denominato blocked_ips:

sudo nft add set ip filter blocked_ips { type ipv4_addr\; }
sudo nft add element ip filter blocked_ips { 192.168.1.100, 203.0.113.45 }

E poi aggiungere una singola regola che droppa tutto il traffico proveniente da questi IP:

sudo nft add rule ip filter INPUT ip saddr @blocked_ips drop

Un’altra caratteristica avanzata è l’utilizzo dei contatori (counters) per monitorare quante volte una determinata regola è stata attivata. Questo è utile per analizzare il traffico e individuare eventuali tentativi di intrusione. È possibile aggiungere un contatore a una regola con la keyword counter:

sudo nft add rule ip filter INPUT ip saddr 203.0.113.0/24 drop counter

I contatori possono essere interrogati in qualsiasi momento per ottenere statistiche dettagliate:

sudo nft list ruleset | grep counter

Queste funzioni avanzate consentono di gestire il firewall in modo più efficiente, riducendo la complessità della configurazione e fornendo preziose informazioni sul traffico di rete.

Conclusioni

Configurare un firewall con nftables è un passo fondamentale per garantire una sicurezza di rete robusta su piattaforme Linux. Abbiamo illustrato i concetti essenziali di tabella e catena, mostrato come creare una configurazione di base che protegga le porte più critiche, e approfondito le possibilità offerte da insiemi e contatori per una gestione avanzata del traffico.

Adottare nftables significa beneficiare di una sintassi chiara, di una struttura modulare e di una maggiore capacità di personalizzazione rispetto ai tradizionali iptables. Seguendo le best practice descritte, potrai costruire un perimetro di difesa adattabile alle esigenze della tua organizzazione, riducendo al minimo le superfici di attacco.

Ricorda che la configurazione di un firewall richiede una buona comprensione delle dinamiche di rete e della logica di filtraggio. Se non sei sicuro delle impostazioni più appropriate per il tuo ambiente, considera di rivolgerti a un esperto di sicurezza informatica per una consulenza professionale. La protezione proattiva della tua infrastruttura è l’investimento più importante per prevenire minacce e garantire la continuità operativa.