Sicurezza: Usare bene i Firewall
1) Che cos'è un firewall?
2) Perchè dovrei volere un firewall?
3) Contro che cosa può proteggere un firewall?
4) Contro che cosa non può proteggere un firewall?
5) Risorse in rete sui firewall
6) Come scegliere un firewall
7) Cosa sono i proxy server e come funzionano
8) Regole logiche di filtraggio per il mio Cisco
9) Come far lavorare DNS e firewall
10) Come far lavorare un FTP attraverso un firewall
11) Come far lavorare un Telnet attraverso un firewall
12) Come far lavorare Finger e whois attraverso un firewall
13) Come far lavorare gopher, archie e altri servizi
attraverso un firewall
14) Pubblicazioni su X-Window attraverso un firewall
15) Glossario di termini riferiti ai firewall
1) Che cos'è un firewall?
Un firewall è uno dei tanti modi per proteggere una rete da
altre reti di cui non ci si fida o comunque sconosciute. Il
reale meccanismo con cui è realizzato varia fortemente, ma il
principio è che il firewall può essere pensato come una
coppia di meccanismi: uno serve a bloccare il traffico e
l'altro per veicolarlo. Alcuni firewall mettono più enfasi
nel bloccarlo, altri nel permetterlo.
2) Perchè dovrei volere un firewall?
Internet, come ogni altra società, è piena di babbei che
sono l'equivalente elettronico del teppistello che imbratta i
muri con lo spray. Alcune persone cercano di lavorare su
Internet e altre hanno dati sensibili o di loro proprietà da
difendere. Un proposito del firewall è tenerci lontano dalla
rete una volta lasciato il lavoro. Molti enti e centri dati
hanno politiche di sicurezza informatica e procedure che
vengono rispettate rigidamente. Il firewall diventa a volte
espressione della politica aziendale di proteggere i dati.
Spesso, la parte più ardua per connettersi ad Internet, se
sei una grande azienda, non è giustificare la spesa o lo
sforzo, ma convincere i manager che non ci sono pericoli di
sicurezza. Un firewall provvede non solo alla reale sicurezza,
ma gioca anche un importante ruolo come schermo di sicurezza
per il management. Infine, un firewall può agire come
ambasciatore dell'azienda su Internet. Molte aziende usano i
loro firewall come un posto dove mettere informazioni
pubbliche sui prodotti e i servizi dell'azienda, file da
scaricare, correzioni e così via. Molti di questi sistemi
stanno avendo importanza per le strutture di servizi per
Internet (ad es.: UUnet.uu.net, gatekeeper.dec.com) e hanno
avuto un buon riflesso sui loro finanziatori aziendali.
3) Contro che cosa può proteggere un firewall?
Qualche firewall permette solo il passaggio di email,
proteggendo quindi la rete da attacchi diversi da quelli
mirati al servizio di email. Altri firewall provvedono a una
meno stretta protezione e bloccano servizi che
tradizionalmente hanno problemi di sicurezza. Di solito, i
firewall sono configurati per proteggere contro i login non
autenticati dall'esterno. Questo aiuta a prevenire il login di
vandali in macchine della rete. Firewall più complicati
bloccano il traffico dall'esterno all'interno, ma permettono
agli utenti interni di comunicare liberamente con l'esterno.
Il firewall ti può proteggere contro qualsiasi tipo di
attacco mediato dalla rete come se fossi disconnesso. I
firewall sono anche importanti perchè possono provvedere a un
singolo punto di blocco dove la sicurezza e il controllo
possono essere imposte. Diversamente, in una situazione in cui
un sistema è attaccato da qualcuno che usa un modem, il
firewall può agire come un rubinetto telefonico e uno
strumento di monitoraggio.
4) Contro che cosa non può proteggere un firewall?
I firewall non possono proteggere da attacchi che non vi
passano attraverso. Molte aziende connesse ad Internet sono
preoccupate dalla fuoriuscita di dati riservati attraverso
qualche via. Sfortunatamente per questi preoccupati, un nastro
magnetico può essere usato per trasportare dati all'esterno.
Le politiche dei firewall devono essere realistiche e
riflettere il livello di sicurezza dell'intera rete. Se un
sistema contiene dati riservati sarebbe meglio non connetterlo
al resto della rete. I firewall non possono proteggere bene da
cose come i virus. Un firewall non può rimpiazzare la
coscienza, la consapevolezza e la prudenza dei suoi utenti. In
generale, un firewall non può proteggere contro un attacco
guidato di dati, attacchi nei quali qualcosa è postato o
copiato all'interno dell'host dove è eseguito. Questa forma
di attacco è avvenuta
nel passato contro varie versioni di Sendmail.
5) Risorse in rete sui firewall
Ftp.greatcircle.com - Firewall mailing list (archivi).
Directory: pub/firewalls
Ftp.tis.com - Strumenti e documenti sui firewall Internet.
Directory: pub/firewalls
Research.att.com - Documenti sui firewall e le violazioni di
sicurezza.
Directory: dist/internet_security
Net.Tamu.edu - Texas AMU security tools.
Directory: pub/security/TAMU
Le mailing list per i firewall sono forum per amministratori e
implementatori. Per sottoscriverle, manda "subscribe
firewalls" nel corpo
del messaggio (non nel soggetto) a "Majordomo@GreatCircle.COM".
>N.d.T.
>Una ottima esposizione in italiano la potrete trovare a:
>http://telemat.die.unifi.it/book/Internet/Security/Firewall/
>
>La versione in inglese più aggiornata e più completa di
questo testo
>la potrete trovare su Internet Firewalls FAQ:
>http://www.clark.net/pub/mjr/pubs/fwfaq/
>http://www.interhack.net/pubs/fwfaq/
>
>Firewalling and Proxy Server HOWTO
>http://okcforum.org/~markg/Firewall-HOWTO.html
>http://sunsite.unc.edu/LDP/HOWTO/Firewall-HOWTO.html
>con traduzione in italiano a cura del Pluto su:
>http://www.pluto.linux.it/ildp
6) Come scegliere un firewall
Allo sfortunato a cui è affidato il compito toccheranno tante
letture. In generale occorre rispettare il modo in cui
l'azienda vuole operare sul sistema: il firewall esiste per
negare esplicitamente tutti i servizi eccetto quelli critici
per cui ci si è connessi alla rete oppure serve per
verificare e controllare i metodi di accesso in modo non
minaccioso. Ci sono diversi gradi di paranoia tra queste
posizioni. La configurazione del tuo firewall sarà effetto più
delle tue politiche che delle decisioni tecniche.
Inoltre, quanto monitorare e controllare? Occorre quindi
decidere che cosa monitorare, permettere e negare. Devi
coniugare obiettivi e analisi del rischio. Infine c'è la
questione finanziaria: quanto costa comprare e implementare il
sistema. Si va da 200 milioni a soluzioni gratuite. Per ciò
che riguarda le soluzioni gratuite, configurare un Cisco o
simili non costerà niente, ma solo tempo-uomo e caffè.
Implementare un firewall impegnativo costerà molti mesi-uomo.
Bisogna quindi considerare non solo il costo di acquisto ma
anche di supporto nel tempo. Dal lato tecnico, c'è un paio di
decisioni da prendere, basate sul fatto che per tutti i fini
pratici di cui stiamo parlando occorrerebbe un servizio di
routing (instradamento) statico del traffico messo tra il
provider della rete e la rete interna. Il servizio di routing
del traffico deve essere implementato a livello di IP
attraverso regole di protezione in un router, o a livello di
applicazione attraverso un proxy che faccia da gateway e dei
servizi. La decisione da prendere qui è se mettere una
macchina che può essere colpita all'esterno della rete per
far girare un proxy per i servizi di telnet, ftp, news, etc.,
o se è meglio settare un router difensivo che faccia da
filtro, permettendo comunicazioni con una o più acchine
interne. Ci sono i pro e i contro a entrambi gli approcci, con
la macchina proxy
si provvede a un più alto livello di controllo e
potenzialmente di sicurezza contro più alti costi di
configurazione e una diminuzione nel livello di servizi
erogati (poichè occorre sviluppare un proxy per ogni servizio
desiderato). La forbice tra facilità d'uso e sicurezza ci
perseguita.
7) Cosa sono i proxy server e come funzionano
Un proxy server (riferito a volte a una applicazione che
permette il passaggio o che spedisce dati) è una applicazione
che si occupa del traffico tra una rete protetta e Internet. I
proxy sono spesso usati invece di router per il controllo del
traffico, per non permettere al traffico di passare
direttamente tra le reti. Molti proxy hanno log supplementari
o supportano l'autenticazione dell'utente. Poichè i proxy
devono capire quale protocollo sta per essere usato, possono
anche implementare specifici protocolli di sicurezza (ad es.,
un proxy FTP potrebbe essere configurato per permettere l'FTP
in entrata e bloccare l'FTP in uscita). I proxy server sono
applicazioni specifiche. Per supportare un nuovo protocollo
attraverso un proxy, questo deve essere sviluppato per quel
protocollo. SOCKS è un sistema proxy generico che può essere
compilato in una
applicazione sul lato client per farlo lavorare attraverso un
firewall. Il vantaggio è che è facile da usare, ma non
supporta l'aggiunta di connessioni con autenticazione o
protocolli con logging specifico. Per maggiori informazioni su
SOCKS, cfr. ftp.nec.com/pub/socks/
8) Regole logiche di filtraggio per il mio
Cisco
Il seguente esempio mostra una possibile configurazione per
usare il Cisco come un router di filtraggio. E' un esempio che
mostra l'implementazione di una specifica linea di condotta.
La tua linea di condotta sarà sicuramente diversa. In questo
esempio, una compagnia ha una Classe B di indirizzi di rete
128.88.0.0 e sta usando 8 bit per le subnet. La connessione
Internet è sulla sottorete rossa 128.88.254.0. Tutte le altre
sottoreti sono considerate di fiducia o sottoreti blu.
+---------------+ +---------------+
| IP provider | | Gateway |
| 128.88.254.1 | | 128.88.254.2 |
+------+--------+ +------+--------+
| Rete rossa
----------+-----------------+----------------------------------
|
+------+--------+
| Cisco |
| 128.88.254.3 |
|...............|
| 128.88.1.1 |
+---------------+
|
----------------------------+----------------------------------
| Rete blu
+------+--------+
| mail router |
| 128.88.1.2 |
+---------------+
Tieni in mente i seguenti punti perchè ti
aiuteranno a capire i pezzi della
configurazione:
1. I Cisco applicano i filtri ai soli pacchetti in uscita.
2. Le regole sono testate in ordine e si fermano quando la
prima occorrenza è stata trovata.
3. C'è una implicita regola di rifiuto alla fine di una lista
di accesso che nega ogni cosa.
L'esempio sotto tratta il filtraggio delle porte di una
configurazione. I numeri di linea e la formattazione sono
state aggiunte per leggibilità.
Le linee guida per l'implementazione sono:
- Niente non esplicitamente permesso è negato.
- Il traffico tra la macchina esterna che fa da gateway e
l'host della rete
blu è permesso.
- I servizi permessi sono originati dalla rete blu.
- Assegna un range di porte alla rete blu per le informazioni
di ritorno
della connessioni dati FTP.
1 no ip source-route
2 !
3 interface Ethernet 0
4 ip address 128.88.1.1 255.255.255.0
5 ip access-group 10
6 !
7 interface Ethernet 1
8 ip address 128.88.254.3 255.255.255.0
9 ip access-group 11
10 !
11 access-list 10 permit ip 128.88.254.2 0.0.0.0
128.88.0.0 0.0.255.255
12 access-list 10 deny tcp 0.0.0.0 255.255.255.255
128.88.0.0 0.0.255.255 lt 1025
13 access-list 10 deny tcp 0.0.0.0 255.255.255.255
128.88.0.0 0.0.255.255 gt 4999
14 access-list 10 permit tcp 0.0.0.0 255.255.255.255
128.88.0.0 0.0.255.255
15 !
16 access-list 11 permit ip 128.88.0.0 0.0.255.255
128.88.254.2 0.0.0.0
17 access-list 11 deny tcp 128.88.0.0 0.0.255.255
0.0.0.0 255.255.255.255 eq 25
18 access-list 11 permit tcp 128.88.0.0 0.0.255.255
0.0.0.0 255.255.255.255
Linea Spiegazione
================
1 Benchè non sia una regola di filtraggio, è buona cosa
includerla
qui.
5 Ethernet 0 è nella rete rossa. La lista estesa 10 di
permessi di accesso sarà applicata all'output su questa
interfaccia. Puoi anche pensare l'output dalla rete rossa come
input nella rete blu.
9 Ethernet 1 è nella rete blu. La lista estesa 11 di permessi
di accesso sarà applicata all'output su questa interfaccia.
11 Permette tutto il traffico dalla macchina gateway alla rete
blu.
12-14 Permette connessioni originarie della rete rossa che
entrano tra le porte 1024 e 5000. Ciò avviene per permettere
alle connessioni dati in FTP di dialogare alla rete blu.
>N.d.T.: permessi e richieste nella connessione FTP
avvengono su una
>porta diversa da quella dove vengono scambiati i dati,
cfr. il
>relativo RFC oppure Internet News, Maggio 1997, Tecnica)
>5000 è stato scelto come limite superiore ed è dove
OpenView parte.
Nota: si assume che questo è accettabile per la supposta
linea di condotta. Non c'è nessun modo per dire a Cisco di
filtrare sulla porta sorgente. Le versioni più recenti del
firmware Cisco supporteranno il filtraggio sulla porta
sorgente. Da quando le regole sono testate fino alla prima
occorrenza dobbiamo usare questa sintassi piuttosto ottusa.
16 Permette l'accesso a tutti i pacchetti della rete blu alla
macchina gateway.
17 Nega l'SMTP (porta tcp 25) mail alla rete rossa.
18 Permette a tutto l'altro traffico TCP di accedere alla rete
rossa. Cisco.com ha un archivio di esempi per costruire
firewall usando i router Cisco, disponibile per ftp da:
ftp://ftp.digital.de/pub/FireWalls/Cisco/acl-examples.tar.Z
9) Come far lavorare DNS e firewall
Alcune organizzazioni vogliono nascondere i nomi DNS
dall'esterno. Molti esperti sono in disaccordo sul fatto che
sia o meno utile, ma se il sito o l'azienda decide di
nascondere i nomi dei domini, questo è un approccio che è
funzionale.Questo approccio è uno dei tanti, ed è utile per
le organizzazioni che vogliono celare i loro nomi di host a
Internet. Il successo di questo approccio nasconde dal fatto
che i client DNS in una macchina non comunicano con un server
DNS nella stessa macchina. In altre parole, proprio perchè c'è
un server DNS su una macchina, non c'è niente di sbagliato (e
spesso ci sono vantaggi a farlo) nel ridirezionare l'attività
di client DNS
di quella macchina su un server DNS in una altra macchina. Per
prima cosa, devi settare un server DNS nel bastion host in
modo che il mondo esterno può comunicare con questo. Setta
questo server così che sia autorevole per i tuoi domini.
Infatti, ognuno di questi server sa ciò che vuoi che il mondo
esterno sappia; i nomi e gli indirizzi dei tuoi gateway, i
tuoi wildcard MX records, e così via. Questo è un server
"pubblico".
>N.d.T. per wildcard MX records: Vedi RFC1034 e RFC974 per
i dettagli.
>In breve nella notazione del DNS indica un Mail eXchanger,
cioe' una
>macchina destinata a scambiare posta.
>Supponiamo che voglia mandare posta a pippo@tin.it.
"tin.it" è una rete e
>non una macchina, quindi nelle tabelle del DNS di tin.it
si indica quale
>macchina fa da mail eXchanger per il dominio, ad es.: MX
posta.tin.it
>Quindi ogni volta che c'è posta per le rete tin.it ci
pensa la macchina di
>posta.tin.it a smistarla.
Quindi, configura un server DNS in una macchina interna.
Questo server pretende anch'esso di essere autorevole per i
tuoi domini; diversamente dal server pubblico, questo sta
dicendo la verità. Questo è il tuo nameserver
"normale", nel quale mettere tutto le cose
"normali" che riguardano il DNS. Devi configurare
anche questo server in modo che trasferisca le domande a cui
non può rispondere al server pubblico (usando una linea che
faccia da "spedizioniere" in /etc/named.boot in una
macchina
Unix, per esempio). Infine, configura tutti i tuoi client DNS
(il file /etc/resolv.conf in una Unix box, per esempio),
includendoli in una macchina con il server pubblico, per usare
il server interno. Questa è la chiave. Un client interno che
interroga un host interno, interroga il server interno, e
ottiene una risposta; un client interno che interroga un host
esterno interroga il server interno, che interroga il server
pubblico. Un client nel server pubblico lavora proprio nello
stesso modo. Un client esterno, comunque, che interroga un
host interno ottiene come risposta "restricted" (cioè
limitata) dal server pubblico. Questo approccio presuppone che
ci sia un filtraggio dei pacchetti da parte
del firewall tra questi due server che permetterà a loro di
comunicare il DNS a ogni altro, ma altrimenti limita il DNS
tra gli altri host. Un altro trucco che è utile in questo
schema è impiegare wildcard PTR records (N.d.T. PTR è un
puntatore ad un altra parte dello spazio del nome di dominio)
nei tuoi domini IN-ADDR.ARPA. Questo causa una ricerca
(tabellare) da indirizzo a nome per ciascuno dei tuoi host non
pubblici e restituisce qualcosa come sconosciuto.TUO.DOMINIO
piuttosto che un errore. Questo soddisfa siti con ftp anonimo
come ftp.uu.net che insiste nell'avere un nome per le macchine
con cui comunica. Questo fallisce quando comunica con siti che
fanno un controllo incrociato del DNS nel quale il nome
dell'host è verificato a fronte del suo indirizzo e
viceversa. Nota che nascondere i nomi nei DNS non risolve il
problema dei nomi di host fuoriusciti con gli headers delle
mail, articoli di news, etc.
10) Come far lavorare un FTP attraverso un
firewall
Di solito, il far lavorare l'FTP attraverso il firewall è
realizzato o usando un server proxy o permettendo connessioni
in entrata in una rete su un ristretto range di porte, e
altrimenti restringendo le connessioni in entrata usando
qualcosa come regole di monitoraggio stabilite. Il client FTP
è allora modificato per congiungere la porta dei dati alla
porta all'interno del range. Questo implica il fatto di essere
capaci di modificare l'applicazione che fa da client FTP sugli
host interni. Un approccio differente è usare l'opzione
"PASV" dell'FTP per indicare che il server FTP
remoto dovrebbe permettere al client di iniziare la
connessione. L'approccio con PASV assume che il server FTP sul
sistema remoto supporti tale operazione. (Vedi l'RFC1579 per
ulteriori informazioni). Altri siti preferiscono costruire
versioni di client del programma di FTP
che sono linkate alla libreria SOCKS.
11) Come far lavorare un Telnet attraverso un
firewall
Telnet è generalmente supportato o per usare una applicazione
che fa da proxy, o semplicemente per configurare un router per
permettere connessioni in uscita usando qualcosa come regole
di monitoraggio stabilite. Le applicazioni proxy potrebbero
essere nella forma di un proxy standalone che gira su un
bastion host, o nella forma di un server SOCKS e un client
modificato.
12) Come far lavorare Finger e whois
attraverso un firewall
Permettere connessioni alla porta finger dalle sole macchine
fidate, che possono emettere richieste di finger nella forma
di: finger user@host.domain@firewall. Questo approccio
funziona solo con le versioni standard del finger di Unix.
Qualche server finger non permette la connessione finger su
user@host@host. Molti siti bloccano le richieste finger
dirette verso l'interno per una varietà di ragioni, di cui la
più importante è la presenza di buchi nella sicurezza del
server finger (il worm Morris ha reso questi bug famosi) e il
rischio che informazioni riservate o proprietarie siano
rivelate nelle informazioni finger dell'utente.
13) Come far lavorare gopher, archie e altri
servizi attraverso un firewall
Questa è ancora un'area di ricerca attiva nella comunità dei
firewall. Molti amministratori di firewall supportano questi
servizi solo attraverso l'interfaccia a linea di comando
fornita da telnet. Sfortunatamente, molti dei servizi di rete
più provocanti fanno connessioni a sistemi remoti multipli,
senza trasmettere nessuna informazione di cui un proxy
potrebbe prenderne vantaggio, e spesso i più nuovi sistemi di
recupero delle informazioni trasmettono dati agli host e
dischi locali con la sola sicurezza minima. C'
è il rischio che (per esempio) i client WAIS possano
richiedere file codificati in uuencode, che decifrano e
modificano i file relativi alla sicurezza nella directory home
dell'utente. Al momento, c'è molta incertezza tra gli
amministratori di firewall che sono responsabili della
sorveglianza dei perimetri della rete, e gli utenti, che
vogliono
avvantaggiarsi di questi davvero attraenti e utili strumenti.
14) Pubblicazioni su X-Window attraverso un
firewall
X Windows è un sistema davvero utile, ma sfortunatamente ha
qualche grande difetto di sicurezza. I sistemi remoti che
possono guadagnare o spufare l'accesso a una workstation con X
possono monitorare la pressione dei tasti degli utenti,
scaricare copie dei contenuti delle loro finestre, etc. Mentre
tentativi sono stati fatti per superarli (ad es., MIT
"Magic Cookie") è ancora troppo facile per un
aggressore impcciarsi del display di un utente di X. Molti
firewall bloccano tutto il traffico di X. Qualcuno permette il
traffico di X attraverso applicazioni proxy come il proxy DEC
CRL X (FTP crl.dec.com).
15) Glossario di termini riferiti ai firewall
- Firewall basato su un host: un firewall dove la sicurezza è
implementata in un software che gira in un computer non
dedicato di qualunque tipo. La sicurezza nei firewall basati
su un host è generalmente al livello di applicazione
piuttosto che al livello della rete.
- Firewall basato su un router: un router che è usato per
implementare parte della sicurezza di un firewall
configurandolo per permettere selettivamente o per negare il
traffico a livello della rete.
- Bastion host (host che si affaccia all'esterno): un sistema
host che è un punto forte nel perimetro della sicurezza del
sistema. I bastion host dovrebbero essere configurati per
essere particolarmente resistenti agli attacchi. In un
firewall basato su host, il bastion host è la piattaforma
nella quale il software firewall gira. I bastion host sono
anche chiamati gateway host.
- Dual-Homed Gateway: un firewall di un bastion host con 2
interfaccie di rete, una delle quali è connessa per
proteggere la rete, l'altra è connessa a Internet. L'inoltro
del traffico IP è di solito disabilitato, limitando tutto il
traffico tra le due reti a qualunque cosa passi attraverso
qualche tipo di applicazione proxy.
- Applicazione proxy: una applicazione che instrada il
traffico delle applicazioni attraverso un firewall. I proxy
tendono a essere specifici per il protocollo per cui sono
progettati per inoltrare, e possono provvedere un aumentato
controllo di accesso o verifica.
- Subnet monitorata: una architettura firewall nel quale una
rete "sand box" o "zona smilitarizzata" è
configurata tra la rete protetta e Internet, con traffico
bloccato tra la rete protetta e Internet. Concettualmente, è
simile a un dual-homed gateway, eccetto che una intera rete,
piuttosto che un singolo host è raggiungibile dall'esterno.