Interviste Copertina Business |
Articoli
Un esempio pratico di firewall
Dopo aver parlato a grandi linee di cosa sono i firewall e quali sono le loro funzioni principali analizziamo finalmente il caso di un firewall reale, quello della Rete Civica di Cremona.
La Rete civica della città di Cremona è una grande ``INTRANET'' visibile da INTERNET, vediamo il perchè: la RCCR (ormai la indicherò solo così) è raggiungibile dagli utenti in due modi: via modem o via internet. La RCCR però NON vuole essere un punto di accesso ad INTERNET, l'utente che chiama quindi il modem della RCCR può solo consultare la posta proveniente solo dalla casella postale che ha sulla rete civica, vedere i news-gruop ``privatì' della rete, accedere solo ad alcuni indirizzi INTERNET ``permessì'. L'utente che proviende da INTERNET può leggere le pagine della RCCR, consultare la posta della casella postale della RCCR, non può fare sessioni in telnet sulle macchine della rete.E' chiaro che per gestire tutte queste operazioni ci voglia una macchina adeguatamente programmata, per eseguire delle funzioni di firewall.
Chiameremo la macchina facente le funzioni di firewall firewall (scusate la poca fantasia): firewall sarà dotata di due interfaccie eth0 posta su INTERNET ed eth1 posta sulla INTRANET.
Per inizializzare le funzioni di firewall è necesario inserire in /etc/rc.d un file che chiameremo rc.firewall:Definizione delle regole di INPUT
Cominciamo ad impostare le regole di INPUT per la macchina, stiamo dicendo alla macchina da chi e da dove accettare pacchetti, poniamo che l'IP della macchina firewall sia 151.0.0.1
ipfwadm -I -p deny ipfwadm -I -f
# Ricordo che 0.0.0.0/0 significa ``qualsiasi indirizzo:qualsiasi porta'' ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 1024:65535 ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 25 # mail ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 53 # dns ipfwadm -I -a accept -P udp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 53 # dns ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 80 # www ipfwadm -I -a accept -P udp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 80 # www ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 110 # pop3 ipfwadm -I -a accept -P udp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 110 # pop3 ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 119 # news ipfwadm -I -a accept -V 127.0.0.1 -S 0.0.0.0/0 -D 0.0.0.0/0 ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 20 # ftp-data ipfwadm -I -a accept -P tcp -W eth0 -S 0.0.0.0/0 -D 151.0.0.1 21 # ftp ipfwadm -I -a accept -W eth1 -S 192.168.0.0/0 -D 0.0.0.0/0
La prima riga è assolutamente necessario metterla, le porte che vanno dalla 1024 alla 65535 sono porte che alcuni protocolli, come FTP utilizzanon per scambiarsi delle informazioni durante le loro operazioni. Non aprire queste porte significherebbe precludere il funzionamento di queste applicazioni. Sono poi aperte la porta 110 (con protocollo TCP e UDP) per il servizio di POP3, quello che permette ai vari mail-reader di controllare la posta. E' importante sottolineare che per aprire una porta a più protocolli è necessario aggiungere una riga di ipfwadm per ogni protocollo desiderato. L'ultima riga apre qualsiasi porta verso qualsiasi indirizzo ma solo ai pacchetti provenienti dalla INTRANET (si noti, per questo, l'opzione -W eth1). Una riga per certi versi interessante è la seguente:
Abbiamo ottenuto il nostro primo risultato: l'utente internet può, sulla nostra
macchina consultare le notizie dei news-group, passanti dalla porta 119, effettuare
sessioni ftp, controllare la posta via pop3, inoltrare richieste al DNS della
macchina.
L'utene proveniente dai modem della rete civica, che hanno un IP fittizzio,
hanno la possibilità di sfruttare i servizi locali, ma non possono accedere
ad indirizzi di INTERNET.
[ipfwadm -I -a accept -W eth1 -S 192.168.0.0/0 -D 0.0.0.0/0]
Definizione delle regole di OUTPUT
Definiamo ora quali sono i pacchetti che possono transitre in uscita dalla
macchina firewall.
E' necessarrio sottolinare che transitare in uscita non significa andare
su INTERNET, per permettere ad un pacchetto di uscire dalla INTARNET e gettarsi
in INTERNET è neccessario mascherare l'IP di questo pacchetto, ma andiamo
per ordine.
Queste sono le regole di OUTPUT.
ipfwadm -O -p accept ipfwadm -O -f
Definizione delle regole di forwarding e masquerading
Per prima cosa impediamo a qualsiasi macchina di uscire sulla rete, raagiungiamo il
nostro scopo con le seguenti due regole:
ipfwadm -F -p deny ipfwadm -F -f
# Postazioni della RCCR con FULL INTERNET ipfwadm -F -a masquerade -S 192.168.1.100 -D 0.0.0.0/0 ipfwadm -F -a masquerade -S 192.168.1.101 -D 0.0.0.0/0
# # Modem particolari con accesso FULL INTERNET # ipfwadm -F -a masquerade -S 192.168.200.15 -D 0.0.0.0/0 ipfwadm -F -a masquerade -S 192.168.200.16 -D 0.0.0.0/0
Il sugo della historia
Mi perdoni il Manzoni per la citazione ``rubatà', una gestione del firewall
con ipfwadm è sicuramente molto dinamica e comoda, pensate per esempio ad un
ISP che deve aprire il proprio firewall solo dopo essersi accertato che l'utente
che stà chiamando sia autorizzato realmente all'uscita su INTERNET, basta creare
un piccolo programma che accerta il riconoscimento degli utenti e che, se il
riconoscimento è andato a buon fine, apra on-the-fly il firewall e lo richiuda
al logout dell'utente...
Naturalmente questo articolino non può coprire completamente il discorso firewall,
lo scopo del giornale è solo ``far pubblicità '' al firewalling di Linux, ma
penso possa essere di aiuto a chi, si trova a dover metter nella propria rete
una macchina come firewall
Una nota finale
Per problemi di sicurezza gli IP dei modem e delle macchine della RCCR, così
come i loro nomi NON sono stati palesati.
Gli IP che si trovano nell'articolo sono IP casuali che non corrispondono quindi
a realtà.
Mi scuso per l'omissione.
di Corrado Ignoti (Fizban)
Interviste Copertina Business |