Ricerca nel sito web

Come esplorare la configurazione del firewall Shorewall in Linux


Nel mio articolo precedente abbiamo appreso l'installazione di Shorewall, l'impostazione del file di configurazione e la configurazione del port forwarding su NAT. In questo articolo, approfondiremo gli errori comuni associati a Shorewall, forniremo soluzioni e introdurremo le sue opzioni da riga di comando.

Shorewall offre un'ampia gamma di comandi che possono essere eseguiti dalla riga di comando. Dare un'occhiata al manshorewall dovrebbe darti molto da vedere, ma il primo compito che eseguiremo è un controllo sui nostri file di configurazione.

sudo shorewall check

Shorewall stamperà un controllo di tutti i file di configurazione e delle opzioni in essi contenute.

L'output sarà simile a questo.

Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking MAC Filtration -- Phase 1...
Checking /etc/shorewall/rules...
Checking /usr/share/shorewall/action.Invalid for chain %Invalid...
Checking MAC Filtration -- Phase 2...
Applying Policies...
Checking /etc/shorewall/routestopped...
Shorewall configuration verified

La riga magica che stiamo cercando è quella in basso che recita: “Configurazione Shorewall verificata”. Se ricevi qualche errore, molto probabilmente è dovuto alla mancanza di moduli nella configurazione del kernel.

Ti mostrerò come risolvere due degli errori più comuni, ma è necessario che ricompili il kernel con tutti i moduli necessari se prevedi di utilizzare la tua macchina come firewall.

Il primo errore, e il più comune, è l'errore relativo a NAT.

Processing /etc/shorewall/shorewall.conf...
Loading Modules...
Checking /etc/shorewall/zones...
Checking /etc/shorewall/interfaces...
Determining Hosts in Zones...
Locating Actions Files...
Checking /usr/share/shorewall/action.Drop for chain Drop...
Checking /usr/share/shorewall/action.Broadcast for chain Broadcast...
Checking /usr/shrae/shorewall/action.Invalid for chain Invalid...
Checking /usr/share/shorewall/action.NotSyn for chain NotSyn..
Checking /usr/share/shorewall/action.Reject for chain Reject...
Checking /etc/shorewall/policy...
Adding Anti-smurf Rules
Adding rules for DHCP
Checking TCP Flags filtering...
Checking Kernel Route Filtering...
Checking Martian Logging...
Checking Accept Source Routing...
Checking /etc/shorewall/masq...
    ERROR: a non-empty masq file requires NAT in your kernel and iptables /etc/shorewall/masq (line 15)

Se vedi qualcosa di simile, è probabile che il tuo kernel attuale non sia compilato con il supporto per NAT. Questo è comune con la maggior parte dei kernel pronti all'uso. Per favore leggi il mio tutorial su “Come compilare un kernel Debian” per iniziare.

Un altro errore comune prodotto dal controllo è l'errore relativo a iptables e logging.

shorewall check
Checking...
Processing /etc/shorewall/params...
Processing /etc/shorewall/shorewall.conf
Loading Modules..
   ERROR: Log level INFO requires LOG Target in your kernel and iptables

Anche questo è qualcosa che puoi compilare in un nuovo kernel, ma esiste una soluzione rapida se desideri utilizzare ULOG. ULOG è un meccanismo di registrazione diverso da syslog. È abbastanza facile da usare.

Per impostarlo, devi modificare ogni istanza di "info" in "ULOG" in tutti i file di configurazione in /etc/shorewall . Il seguente comando può farlo per te.

cd /etc/shorewall
sudo sed –i ‘s/info/ULOG/g’ *

Successivamente, modifica il file /etc/shorewall/shorewall.conf e imposta la riga.

LOGFILE=

Dove desideri che venga archiviato il tuo registro. Il mio è in /var/log/shorewall.log.

LOGFILE=/var/log/shorewall.log

L'esecuzione ripetuta del comando seguente dovrebbe fornire un certificato di buona salute.

shorewall check

L'interfaccia della riga di comando di Shorewall è dotata di molte utili righe per gli amministratori di sistema. Un comando utilizzato di frequente, soprattutto quando vengono apportate numerose modifiche al firewall, consiste nel salvare lo stato di configurazione corrente in modo da poter eseguire il rollback in caso di complicazioni.

La sintassi per questo è semplice.

sudo shorewall save <filename>

Il rollback è altrettanto semplice:

sudo shorewall restore <filename>

Shorewall può anche essere avviato e configurato per utilizzare una directory di configurazione alternativa. Puoi specificare che questo è il comando di avvio, ma prima dovrai verificarlo.

sudo shorewall check <config-directory>

Se vuoi semplicemente provare la configurazione e, se funziona, avviarla, puoi specificare l'opzione di prova.

sudo shorewall try <config-directory> [  ]

Shorewall è solo una delle tante robuste soluzioni firewall disponibili sui sistemi Linux. Non importa in quale estremità dello spettro di networking ti trovi, molti lo trovano semplice e utile.

Questo non è che un piccolo inizio e può aiutarti sulla buona strada senza addentrarti troppo nei concetti di networking. Come sempre, fate una ricerca e date un'occhiata alle pagine man e alle altre risorse. La mailing list di Shorewall è un posto fantastico, aggiornata e ben mantenuta.