Shorewall : lo strumento di configurazione di Netfilter

Che cosa è Shorewall ?

Shorewall è uno strumento di configurazione gateway/firewall per GNU/Linux.

shorewall
shorewall

Un po di teoria

Netfilter è un componente del kernel del sistema operativo Linux, che permette l’intercettazione e manipolazione dei pacchetti che attraversano le interfacce.  Netfilter permette di realizzare alcune funzionalità di rete avanzate come la realizzazione di firewall basata sul filtraggio stateful dei pacchetti o configurazioni anche complesse di NAT, un sistema di “traduzione” automatica degli indirizzi IP, tra cui la condivisione di un’unica connessione Internet tra diversi computer di una rete locale, o ancora la manipolazione dei pacchetti in transito.

Iptables è il programma che permette agli amministratori di sistema di configurare netfilter, definendo le regole per i filtri di rete e il reindirizzamento NAT. Spesso con il termine iptables ci si riferisce all’intera infrastruttura, incluso netfilter.

L’obiettivo principale dietro lo sviluppo del “firewall” Shorewall è stato quello di creare un’astrazione nella configurazione del firewall di livello superiore, rispetto agli iptables standard. Il vantaggio di questo meccanismo è che divide le interfacce in zone con diversi livelli di accesso, in modo che l’utente possa operare su un gruppo di computer, invece che su indirizzi, collegati all’interfaccia. Nel sistema Shorewall, gli utenti possono implementare politiche per la zona in modo semplice e completo.

Shorewall non è un demone in esecuzione in background, ma è meglio conosciuto come uno script di shell, che converte i file di configurazione in comandi iptables.

Alcune Caratteristiche

Utilizza le funzioni di tracciamento delle connessioni di Netfilter per il filtraggio dei pacchetti in modalità stateful.
Può essere utilizzato in un’ampia gamma di applicazioni router/firewall/gateway.
Completamente personalizzabile tramite file di configurazione.
Nessun limite al numero di interfacce di rete.
Consente di dividere la rete in zone e di avere il controllo completo delle connessioni consentite tra ogni coppia di zone.
Sono consentite più interfacce per zona e più zone per interfaccia.
Supporta zone annidate e sovrapposte.

 

Supporta l’amministrazione centralizzata del firewall . Può trattarsi di un PC Windows™ con Cygwin™ o di un Apple MacIntosh™ con OS X.
Gli script firewall generati centralmente vengono eseguiti sui firewall sotto il controllo di Shorewalllite.
Guide di avvio rapido (HOWTO) che aiutano a rendere rapidamente operativo il primo firewall
È disponibile un’interfaccia grafica tramite Webmin 1.060 e versioni successive (http://www.webmin.com).

Supporto molto flessibile per address management/routing :
Masquerading/SNAT.
Port Forwarding (DNAT).
One-to-one NAT.
Proxy ARP.
NETMAP.

Supporto di più ISP (più collegamenti Internet dallo stesso firewall/gateway)

È supportata la blacklist di singoli indirizzi IP e sottoreti.
Comandi semplificati per avviare, arrestare e cancellare il firewall
Supporta il monitoraggio dello stato con un allarme acustico quando viene rilevato un pacchetto “interessante”.
Supporto VPN : Tunnel IPsec, GRE, IPIP e OpenVPN.
Server e client PPTP.
Supporto per il controllo del traffico/Shaping.
Ampio supporto per diverse distribuzioni GNU/Linux.
RPM e pacchetti Debian disponibili.
Include funzionalità automatiche di installazione, aggiornamento e disinstallazione per gli utenti che non possono usare o scelgono di non usare i pacchetti RPM o Debian.
Incluso come parte standard di LEAF/Bering (router/firewall su floppy, CD o compact flash).
Verifica dell’indirizzo MAC (Media Access Control).
Supporto IPv6

Funziona con un’ampia gamma di soluzioni di virtualizzazione:

KVM
Xen
Server Linux
OpenVZ
VirtualBox
LXC
Docker (Shorewall 5.0.6 e successivi)