Protezione delle porte con Iptables

Protezione dei servizi sensibili tramite catene di verifica personalizzate.

Iptables è lo strumento a riga di comando standard per gestire il firewall Netfilter su Linux. Consente un filtraggio granulare del traffico in base a criteri specifici. La protezione contro la scansione delle porte si basa sulla creazione di una «whitelist» di indirizzi IP attendibili per i servizi con accesso limitato.

Concetti fondamentali

Una gestione efficace del firewall si basa su tre elementi chiave:

  • Tabella (Table): Un gruppo di chain funzionali (la tabella filter è attiva per impostazione predefinita).
  • Chain: Una sequenza ordinata di regole che i pacchetti devono attraversare (es. INPUT per il traffico in entrata).
  • Regola (Rule): Un insieme di condizioni e un'azione. Se un pacchetto soddisfa i criteri, viene eseguita un'azione come ACCEPT o DROP.

Configurazione di una chain «antiscan» personalizzata

La creazione di una chain antiscan dedicata è una best practice per la gestione centralizzata degli accessi. Permette di tenere separate le restrizioni per servizi specifici dalla chain INPUT principale.

1. Creare la chain personalizzata:

iptables -N antiscan

2. Aggiungere gli indirizzi IP attendibili alla whitelist: Aggiungere gli indirizzi IP autorizzati ad accedere alle porte con accesso limitato.

# Sostituire con gli indirizzi IP reali dell'amministratore o dell'ufficio
iptables -A antiscan -s 1.1.1.1 -j ACCEPT
iptables -A antiscan -s 2.2.2.2 -j ACCEPT

3. Bloccare tutto il traffico restante: L'ultima regola della chain garantisce che gli indirizzi IP non autorizzati vengano bloccati.

iptables -A antiscan -j DROP

4. Instradare il traffico di porte specifiche verso la chain antiscan: Il traffico diretto verso porte sensibili viene reindirizzato alla chain personalizzata per la verifica.

Per le porte TCP (es. database, server di posta, pannelli di controllo):

iptables -I INPUT -p tcp --match multiport --dports 25,3306,8083 -j antiscan

Per le porte UDP (es. SNMP, RPC):

iptables -I INPUT -p udp --match multiport --dports 111,161 -j antiscan

Rendere le regole persistenti

Le configurazioni standard di Iptables sono volatili e vengono azzerate al riavvio. Per garantirne la persistenza:

Debian / Ubuntu

iptables-save > /etc/iptables.rules
# Creare uno script di avvio di rete
echo -e '#!/bin/bash\niptables-restore < /etc/iptables.rules' > /etc/network/if-pre-up.d/iptablesup
chmod +x /etc/network/if-pre-up.d/iptablesup

Nota

Sulle distribuzioni moderne è consigliata l'installazione del pacchetto iptables-persistent per una gestione automatizzata.

Considerazioni importanti

  • Ordine delle regole: le regole vengono elaborate sequenzialmente dall'alto verso il basso. Non appena viene trovata una corrispondenza, le regole successive non vengono più valutate.
  • Accesso SSH: assicurarsi che la porta SSH (22 per impostazione predefinita) non venga bloccata inavvertitamente, per evitare la perdita dell'accesso remoto.
  • Test: la connettività deve essere verificata sia da un indirizzo IP presente nella whitelist sia da un indirizzo esterno, per confermare la logica del firewall.

Aiuto

Hai domande o ti serve una mano? Scrivici tramite il sistema di ticket — siamo sempre qui per aiutarti!

Hai bisogno di aiuto?I nostri ingegneri ti aiuteranno gratuitamente con qualsiasi domanda in pochi minutiContattaci