Un firewall è un dispositivo collocato tra due o più reti attraverso cui passa tutto il traffico; in questo modo si può controllare il traffico e lasciare passare solo ciò che soddisfa determinati criteri, impostando dei filtri.
Il firewall separa le reti collegate alle diverse interfacce e controlla il traffico in transito tra le reti.
Di solito si usa un firewall tra la rete interna e la rete esterna per controllare il traffico in entrata e in uscita.
I firewall possono essere a filtro di pacchetti o a livello di applicazione.
I firewall a filtro di pacchetti analizzano il traffico a livello di rete e di trasporto, mentre i firewall a livello di applicazione esaminano le informazioni a livello di applicazione.
Di solito le funzioni di firewall a filtro di pacchetti sono realizzate dai router e quelle di firewall a livello di applicazione dai proxy server.
Il firewall può essere un dispositivo hardware separato o un computer dotato di due o più interfacce di rete che esegue un programma apposito.
Un computer che fa da firewall di solito non svolge altre funzioni, è dedicato a questo scopo per maggior sicurezza, in modo che si presti meno ad attacchi.
Per il buon funzionamento del firewall è importante che l’amministratore di sistema configuri adeguatamente le regole per il filtraggio delle informazioni. Si possono definire regole sia per il traffico in entrata che in uscita. Ci sono due tipi di strategie: permettere sempre il traffico a meno che sia esplicitamente vietato, o al contrario vietare tutto il traffico a meno che non sia esplicitamente consentito. Un buon firewall dispone anche di funzioni di registrazione degli eventi e di allarme.
La cosa migliore è negare automaticamente l’accesso a tutto in tutta la intranet e definire esplicitamente solo i permessi necessari.
Nei firewall a filtro di pacchetti i filtri sono basati su tabelle che elencano le sorgenti e le destinazioni permesse e quelle vietate; si possono specificare gli indirizzi IP permessi o negati e la porta (cioè l’applicazione o il protocollo) a cui si riferiscono i permessi; per esempio si può stabilire quali computer della rete locale possono accedere a Internet, oppure bloccare l’ingresso nella intranet a FTP o Telnet bloccando la porta relativa; molti filtri bloccano tutto il traffico UDP che potrebbe fare qualsiasi cosa; altre applicazioni a cui comunemente viene vietato l’accesso sono DNS e Finger che potrebbero rivelare informazioni sulla rete; il traffico in uscita è più difficile da bloccare perché altri server potrebbero usare porte diverse da quelle predefinite.
I firewall a livello di applicazione permettono non solo di stabilire se il traffico relativo a una applicazione può passare o meno ma anche di impostare regole relative ai comandi delle applicazioni (per esempio ai comandi get o put di FTP).
Quando la rete intranet è collegata a Internet mediante un firewall si possono configurare i server DNS in modo che solo alcuni siano abilitati ad accedere al di fuori della rete interna per la risoluzione dei nomi (server forwarder) e gli altri utilizzino il forwarder come intermediario: un server può passare la richiesta al forwarder che la risolve e restituisce i risultati al server richiedente, che a sua volta li restituisce al client.