Shorewall: abilitare e configurare il firewall in linux (debian, ubuntu)

firewall

Il firefall su un server è una cosa fondamentale.
Per configurarlo occorre sapere a perfezione la sintassi di iptables? No!
Shorewall ci viene incontro grazie ad una sintassi più umana e la possibilità di configurare zone… Ma procediamo per ordine!

La versione di shorewall che installeremo sarà la 4.0.15-1, quella inclusa nella distribuzione Debian Lenny
Il primo passo è l’installazione, consiglio la versione in perl in quanto molto più performante:

apt-get install shorewall-perl

Bene, ora il nostro firewall attivo e possiamo cominciare la configurazione modificando il file /etc/shorewall/shorewall.conf con il nostro programma di editor preferito

pico -w /etc/shorewall/shorewall.conf

Visto che abbiamo installato shorewall-perl, abilitiamo il compilatore perl:

SHOREWALL_COMPILER = perl

Abilitiamo il log per i pacchetti marziani, cioè quei pacchetti che sono su una rete diversa da quella che in cui dovrebbero essere 🙂

LOG_MARTIANS = Yes

Settiamo una directory predefinita /etc/shorewall/localmacros in cui inserire i nostri file delle macro:

CONFIG_PATH=/et/shorewall:/usr/share/shorewall:/etc/shorewall/localmacros

Abilitiamo l’ip forwarding solo se necessario (se il firewall è installato su un sistema isolato oppure se l’accesso verso l’esterno avviene tramite proxy lasciare keep)

IP_FORWARDING = On

Abilitiamo anche il fast accept:

FAST_ACCEPT = Yes

Una breve menzione su ADMINISABSENTMINDED (letteralmente: l’amministratore è assente con la testa): lasciatelo a Yes, questo vi impedirà di bloccare la vostra connessione al sistema per colpa di qualche regola dovuta al troppo caffè 🙂

Per una guida completa ai parametri di configurazione di shorewall consultare la guida digitando

man shorewall.conf

Bene, ora la configurazione di shorewall è a posto! Con shorewall check possiamo testare se la configurazione è ok e non ci sono errori.
Proviamo ad eseguire il comando…

Debian:~# shorewall check
Checking...
   ERROR: No firewall zone defined

Ovviamente da errore perché non abbiamo definito nessuna zona!
Come facciamo a definirla? Dobbiamo creare un file zones nella directory /etc/shorewall. Lo copiamo direttamente dagli esempi del file e lo modifichiamo:

cp /usr/share/doc/shorewall-common/default-config/zones /etc/shorewall
pico -w /etc/shorewall/zones

Aggiungiamo quindi la nostra zona internet (massimo 5 caratteri!) di tipo ipv4:

inter ipv4

Riproviamo a dare shorewall check:

Debian:~# shorewall check
Checking...
   Checking /etc/shorewall/zones...
   ERROR: No network interfaces defined

Mancano le interfacce di rete.
Anche qui copiamo il file interfaces dagli esempi del file e lo modifichiamo:

cp /usr/share/doc/shorewall-common/default-config/interfaces /etc/shorewall
pico -w /etc/shorewall/interfaces

ed inseriamo:

inter eth0 - dhcp

stessa cosa per le policy:

cp /usr/share/doc/shorewall-common/default-config/policy /etc/shorewall
pico -w /etc/shorewall/policy

ed inseriamo:

all all DROP info

In questo modo qualsiasi connessione viene bloccata e loggata.

Ora eseguendo il check vedremo che tutto è configurato! Non ci resta che farlo partire con shorewall start!

Ovviamente tutte le porte saranno bloccate, quindi non andrà nulla 🙂
Ora dovremmo riempire il file delle regole con le nostre direttive!

Il file si chiama rules e lo troviamo sempre nelle configurazioni di default:

cp /usr/share/doc/shorewall-common/default-config/rules /etc/shorewall
pico -w /etc/shorewall/rules

Ecco un tipico file rules per un webserver:

COMMENT Abilito il ping
Ping/ACCEPT inter fw - - - - 1/sec

COMMENT Abilito http e https
Web/ACCEPT inter fw

COMMENT Abilito l'accesso via ssh da degli ip specifici
SSH/ACCEPT inter:67.27.1.10,27.37.6.7 fw

COMMENT Abilito il DNS
DNS/ACCEPT fw inter

COMMENT Abilito i server mail
SMTP/ACCEPT fw inter
SMTPS/ACCEPT fw inter
POP3/ACCEPT fw inter
POP3S/ACCEPT fw inter

COMMENT Abilito Webmin
Webmin/ACCEPT inter fw

COMMENT

Da ricordare che i commenti vanno chiusi con un COMMENT finale.

Un elenco delle macro disponibili si trova eseguendo

shorewall show macros

Ora il vostro firewall è configurato al minimo essenziale!

Per maggiori dettagli leggete la guida di shorewall!

Unisciti alla discussione

1 commento

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *