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 nftablesUna volta installato, è consigliabile abilitare il servizio in modo che parta automaticamente al boot del sistema:
sudo systemctl enable nftables
sudo systemctl start nftablesIl 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 filterQuesta 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 tablesRegole 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 acceptDi 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 dropQueste 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 INPUTRegole 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 dropUn’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 counterI contatori possono essere interrogati in qualsiasi momento per ottenere statistiche dettagliate:
sudo nft list ruleset | grep counterQueste 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.