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.
INPUTper il traffico in entrata). - Regola (Rule): Un insieme di condizioni e un'azione. Se un pacchetto soddisfa i criteri, viene eseguita un'azione come
ACCEPToDROP.
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!