Remailer
News&Search
Sottobicchieri
R F C
java - php
lista mp3
password
S P P
wingate
joke :-)
News linux
Navighiamo
Bookmark
Crittografia
Firewall
Linux
D V D
BreakingDES
PDF encryption
Vado via

I firewall

Descrizione dei contenuti: 
Il testo contiene una descrizione tecnica per progettare, scegliere e implementare un firewall visto dalla parte di un amministratore.
Traduzione e adattamento: ADaM "unno"
Pubblicato sul numero 8 di NetRunners, la e-zine degli spippolatori, e su Networking Italia.
Originale By: GBoZ Of The 
Cybernetic Techno Ninjas - Tuesday 2/16/99

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) 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
>
>http://www.clark.net/pub/mjr/pubs/index.shtml
>Publicazioni di Marcus Ranum sui firewall
 
 

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

[Back]