prof.
Nunzio Brugaletta |
EsNET |
Come esempio di configurazione del firewall si farà riferimento al seguente scenario: la macchina, con IP 192.168.1.100, sulla quale impostare il firewall mette a disposizione degli altri host della rete locale, cui è connessa per mezzo dell'interfaccia eth1, una applicazione web gestita dal web server. Inoltre la macchina, attraverso l'interfaccia eth0 accede, per mezzo di un router, ad Internet.
Come accennato prima le operazioni da compiere sono il prelievo degli opportuni file da /usr/share/doc/shorewall/default-config, la loro personalizzazione e la copia, del file personalizzato, nella directory di configurazione /etc/shorewall.
zones. La prima cosa da fare è definire le zone in modo tale da fare riferimento ad esse per stabilire le possibilità di comunicazione fra di esse. Per zona si intende un insieme di computer, definiti per mezzo degli IP o dei nomi, a cui applicare le stesse regole. Caricando in un editor il file /usr/share/doc/shorewall/default-config/zones, si possono aggiungere alla fine le personalizzazioni:
################################################################
#ZONE TYPE OPTIONS IN OUT
# OPTIONS OPTIONS
fw firewall
net ipv4
loc ipv4
#LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE
oltre alla zona fw configurata di tipo firewall, e che rappresenta la macchina stessa nella quale configurare il firewall, sono state aggiunte le zone: loc per indicare la rete locale, verso la quale verrà fornito il servizio web, e net per Internet. Saranno, quindi, impostate regole diverse per gli host della rete locale e per gli altri host della rete esterna Internet.
Nel file di configurazione delle zone, come negli altri file, sono presenti molte righe di commento con la spiegazione delle varie opzioni che possono essere utilizzate. Nel caso specifico i nomi delle zone possono essere a scelta, escludendo all (indica nei file di configurazione tutte le zone) e none (indica nessuna zona) che hanno significati particolari. Il tipo firewall identifica il firewall stesso e ipv4 indica il tipo generale di zona.
Le opzioni si specificano separate da spazi. L'ordine è quello evidenziato nella riga di commento. Se una opzione non è espressa, e devono essere specificate le successive, occorre inserire un carattere -.
Il file così modificato viene copiato, come tutti gli altri file di configurazione, in /etc/shorewall.
interfaces. In questo file di configurazione vanno definite le corrispondenze fra le zone e le interfacce hardware verso le zone:
###############################################################################
#ZONE INTERFACE BROADCAST OPTIONS
net eth0 detect dhcp
loc eth1 192.168.1.255
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
in questo caso, come specificato in precedenza, eth0 è collegato al router, riceve l'indirizzo, che viene rilevato in automatico (detect nella colonna BROADCAST), da un server dhcp. L'interfaccia eth1 invece collega il computer con la zona loc identificata dall'indirizzo di broadcast 192.168.1.255.
policy. Nel file è indicato il comportamento predefinito del traffico per le zone interessate. I pacchetti possono essere soggetti a tre tipi di trattamenti:
ACCEPT i pacchetti vengono accettati
REJECT i pacchetti vengono rifiutati e viene notificato il rifiuto al mittente
DROP i pacchetti vengono rifiutati ma, a differenza del caso precedente, non viene inviata al mittente alcuna notifica.
La configurazione, in conseguenza delle ipotesi enunciate, potrebbe essere:
##########################################################
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
fw net ACCEPT
fw loc ACCEPT
net fw DROP
loc fw REJECT
# THE FOLLOWING POLICY MUST BE LAST
all all REJECT info
#LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
Le configurazioni esprimono il fatto che, in linea generale, il traffico che viene avviato dal firewall, sia verso la rete locale che verso Internet, è accettato e che, invece, sempre in linea generale, il traffico in entrata verso il firewall non viene accettato.
L'ultima linea, cautelativa, imposta una politica di rifiuto generale: quanto non esplicitamente permesso, viene rifiutato.
rules. Al di là delle impostazioni generali, riportate in policy, in questo file si dettagliano le regole relative al trattamento di un tipo specifico di traffico.
###########################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT(S) PORT(S) DEST LIMIT GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
ACCEPT loc fw tcp 80
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
poiché nel computer, dove si sta configurando il firewall, è in esecuzione il web server e si vuole rendere accessibile tale servizio alla rete locale, si stabilisce la regola di accettare il traffico, di tipo TCP verso la porta 80, proveniente dalla rete locale e diretto alla zona firewall. In definitiva, considerando le politiche generali e l'impostazione dei pacchetti di tipo tcp qui specificate, il firewall accetta, in entrata dalla zona loc (la rete locale), solo il traffico di tipo tcp, rifiutando tutto il resto.
La configurazione delle regole può essere dettagliata per ogni tipo di servizio disponibile in rete. L'installazione di Shorewall crea la directory /usr/share/shorewall contenete una serie di file macro.* con le configurazioni già pronte per i servizi più comuni. Le configurazioni sono conservate come macro parametrizzate in modo da essere utilizzate specificando il tipo di trattamento e le zone interessate. Per esempio per abilitare il traffico per il server web, si possono inserire nel file le righe:
###########################################################################
#ACTION SOURCE DEST PROTO DEST SOURCE ORIGINAL RATE USER/
# PORT(S) PORT(S) DEST LIMIT GROUP
#SECTION ESTABLISHED
#SECTION RELATED
SECTION NEW
HTTP/ACCEPT loc fw
HTTPS/ACCEPT loc fw
nelle due righe specificate si stanno usando le due macro macro.HTTP e macro.HTTPS per il traffico http e https.
http://ennebi.solira.org |
ennebi@solira.org |