## I firewalls ##
Con
la quantità di collegamenti al giorno
in internet e gli accessi da parte di linee a banda larga, 24 ore online,
si cominciano a vedere i primi problemi di sicurezza; attacchi da parte
di Lamers, Hackers, Virus, Troyans.
Per questo si vedono sempre di più i famosi programmi Firewall d'uso
casalingo. Un firewall è un programma software o un insieme Software-Hardware
che genera una barriera costante tra un terminale e qualunque rete essa
sia, o colllegamento telefonico;
Siamo noi a doverlo impostare in modo che funzioni come un filtro ,
che faccia passare solo le informazioni autorizzate da noi sia in entrata
che in uscita, segnalando ogni possibile attaco dall'esterno o da un
eventuale uscita d' informazione dalla nostra macchina (E.T, Troyans,etc...).
In questa pagina troverete dei link verso le case madri di firewall,
sperando che non vi servano mai.
1)
Che cos'è un firewall?
2) Perchè dovrei installare 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 installare 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. By.(GNOMIX).