Next Previous Contents

2. Progettazione di un Firewall

Innanzitutto nella progettazione di un firewall si devono tenere in mente alcuni punti fondamentali che servono di conseguenza nella scelta del firewall da adottare:

  1. Primo che tipo di accesso possono avere gli utenti Internet verso il server della rete e cioè se devono essere abilitati sia a prelevare che inviare file.
  2. Determinare se si deve disabilitare utenti o macchine particolari.
  3. Determinare se la rete deve includere un sito Web, nel caso affermetivo bisogna determinare se il sito deve poter essere accessibile tramite applicazioni telnet.
  4. Determinare che livello di accesso gli utenti devono avere verso internet, per esempio quali protocolli di livello applicazione possono usare.
  5. Infine, determinare che cosa può succedere se un crakker riesce a penetrare il firewall. In base alle scelte fatte riguardanti le propie esigenze, la progettazione del firewall viene diretta alla scelta di tre firewall principali: firewall a livello rete, firewall a livello applicazione, firewall a livello circuiti. tutti i tre tipi di firewall devono includere sistemi crittografici, per farsi un 'idea sulla crittografia si può leggere nella sezione crittografia , introduzione alla crittografia e funzioni hash. Descriviamo adesso i tre tipi di firewall menzionati precedentemente.

2.1 Firewall a livello rete

Questo tipo di firewall è in genere uno screening router che filtra informazioni derivanti dal livello data-link o dal livello rete principalmente sugli IP del mittente e destinatario,ad esempio a livello aziendale si può bloccare in uscita i pacchetti che hanno come IP il server dell'azienda concorrente e in entrata i pacchetti con IP sempre dell'azienda concorrente. In pratica si deve creare una black list (lista nera) degli IP da respingere; siccome questo tipo di firewall lavora al massimo a livello rete(IP), i pacchetti che processa giungono con informazioni dei protocolli usati a livello applicazione, quindi si può già sullo screening router applicare politiche anche su questi protocolli, impedendo di usare un protocollo o limitandone l'uso.Riassumendo con il firewall a livello di rete si può agire sulle seguenti informazione, sulle quali poi applicare filtri:

  1. Indirizzo IP dei dati sorgente e destinazione.
  2. tipo di protocollo dei dati TCP, UDP, ICMP.
  3. Porta di applicazione di origine e del servizio richiesto esemp. ftp 25, http 80, telnet 23 etc, una corrispondenza tra servizi e porte sui sistemi Linux è data dal file /etc/services, si può quindi limitare l'uso dei protocolli agendo sulla porta di destinazione.
  4. pacchetti IP in base all'opzione IP del sources routing.
  5. La data e l'ora. Uno dei principali svantaggi degli screening router e' quello della difficile configurazione delle ACL e della difficile fase di testing.

2.2 Firewall a livello applicazione

Il firewall a livello applicazione viene comunemente chiamato server Proxy o più semplicemente Proxy; questi tipi di server comunicano con la rete esterna per conto degli host della rete interna, in altre parole i Proxy controllano il traffico tra due reti.L'indirizzo che un server esterno riceve è infatti quello del Proxy e questo rappresenta anche un metodo di protezione delle informazioni della rete interna.Con questo tipo di firewall abbiamo cosi una netta distinzione tra rete interna e esterna, infatti ogni pacchetto viene ricevuto processato e inoltrato dal Proxy sia verso l'interno che verso l'esterno, non c'è quindi un collegamento fisico tra le due reti.I firewall a livello applicazione operano sui protocolli di livello di applicazione quali HTTP, FTP, SMTP, BOOTP, TFTP, etc. abilitandoli disabilitandoli o limitandone l'uso; a differenza dei firewall a livello rete, qui abbiamo un server Proxy per ogni protocollo interessato http, Telnet, Gopher, Ftp; i server Proxy più diffusi tra sistemi UNIX sono TIS e SOCKS, sta inoltre prendendo fama nei sistemi Linux il Proxy Squid facile da configurare e molto veloce.Per la gestione dei server Proxy bisogna usare applicazioni client che lo supportino, esempio nel client Web della netscape è possibile settare il proxy per la navigazione. La sicurezza di questi firewall è maggiore di quelli precedenti perchè attuano una distinzione fisica tra rete interna e esterna a discapito però di una minore velocità.

2.3 Firewall a livello di circuiti

Il firewall a livello di circuiti è sempre un firewall di livello applicazione cioè un Proxy, ma a differenza del precedente non richiede di utilizzare client specifici che supportino software Proxy.Il Proxy in questo caso si occupa solamente di creare il circuito di comunicazione tra client e server senza che le applicazioni lo sappiano; in pratica questo tipo di firewall esamina ogni tipo di collegamento in modo che segua una sessione di collegamento TCP giusta (handshake), e successivamente il firewall mantiene una tabella dei collegamenti valida che usa per far passare dati da una sorgente a una destinazione, una volta terminata la connessione la entry nella tabella viene rimossa e la connessione chiusa. Un primo vantaggio di questo Proxy è quello di supportare un ampia varietà di protocolli di livello applicazione senza avere client che supportino la collaborazione con il Proxy, poi la stessa gestione del server risulta semplificata in quanto non bisogna gestire più tanti server quanti sono i protocolli da filtrare, ma basta gestire un unico server.Il firewall di livello circuito registra queste informazioni sulla tabella:

  1. identificatore del collegamento di sessione.
  2. lo stato del collegamento handshake, stabilito chiuso.
  3. Indirizzi IP sorgente e destinazione.
  4. Interfaccia di rete fisica su cui arriva il pacchetto.

Quando un firewall a livello di circuito riceve un pacchetto, lo processa e controlla a seconda dei dati contenuti se tale pacchetto a un 'entry nella tabella, e può quindi essere instradato.I principali svantaggi dei firewall a livello di circuito sono:

  1. difficile collaudo delle regole
  2. hanno scarse propietà di controllo degli eventi sulla verifica dei pacchetti.
  3. non hanno altre funzionalità incorporate, quali possono essere per un Proxy normale quelle anche di una gestione della cache. Dall'altra parte però troviamo una maggiore velocità, e una maggiore protezione verso le macchine della rete interna.

2.4 Bastion host

Il Bastion host rappresenta la macchina che viene posizionata in prima linea a difesa di una rete privata di calcolatori, il nome deriva, come già spiegato nell'introduzione, da un termine medievale che indicava una particolare fortificazione nei castelli adibita a respingere l'attacco nemico.Data la sua funzione di protezione, verso questa macchina deve essere rivolta una particolare attenzione di sicurezza e di controllo.Il Bastion host viene sempre associato a uno screening router che viene opportunamente configurato secondo la propia politica di sicurezza. Le caratteristiche principli di un bastion host possono essere riassunte nei seguenti punti:
  1. unico calcolatore della nostra rete raggiungibile da internet
  2. host massiciamente protetto
  3. sistema operativo sicuro
  4. rimozione software non necessario
  5. rimozione dei compilatori
  6. Proxy server in ambiente isolato (chrooting)
  7. read-only file system
  8. process checker
  9. integry file system checker
  10. numero minimo dei servizi
  11. nessun account utente
  12. salvataggio e controllo dei log
  13. eliminazione dei servizi non fidati
  14. disattivazione del source routing

  15. Next Previous Contents