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.
|