Avanti Indietro Indice

3.1 Tipologie di firewall

Adesso che abbiamo detto cos'è e a cosa serve un firewall, è importante parlare un pochettino delle tipologie di firewall che esistono sul mercato.

Questa non vuole essere né una trattazione completa né ``esatta'' dal punto di vista tecnico. Lo scopo è semplicemente quello di introdurre il lettore alla terminologia utilizzata normalmente parlando di firewall e di dare una breve panoramica sulle soluzioni disponibile per la configurazione, gestione e amministrazione delle reti.

Firewall stateless e firewall statefull

Prima di tutto, esistono firewall che vengono classificati come ``stateless'' ed altri che vengono chiamati ``statefull''. La differenza è abbastanza importante: firewall stateless prendono la decisione di bloccare o consentire una comunicazione soltanto sulla base delle caratteristiche della comunicazione stessa. Al contrario, firewall statefull sono in grado di riconoscere le connessioni e le trasmissioni, e, tenendone traccia, sono in grado di prendere decisioni in base ad altri parametri. Rifacendomi sempre all'esempio dei finanzieri, un finanziere ``stateless'' potrà bloccare o consentire un autoveicolo soltanto in base a caratteristiche come il numero di targa, il tipo di veicolo o il numero di passeggeri. Al contrario, un finanziere ``statefull'' sarà in grado di valutare caratteristiche come il numero di volte che un veicolo è passato, se fa parte di una comitiva di altri veicoli, piuttosto che se il veicolo dovrà fare altri viaggi per svolgere le sue mansioni. Non è proprio l'esempio migliore, ma credo che possa rendere bene l'idea. Parlando invece con un linguaggio più ``tecnico'', un firewall stateless conosce solo il concetto di pacchetto singolo, mentre un firewall statefull è in grado di riconoscere le connessioni e perfino alcuni protocolli. Firewall creati con il vecchio comando ``ipchains'' vengono considerati stateless, mentre quelli creati con ``iptables'' possono essere statefull.

Firewall e protocolli

I firewall possono essere poi classificati a secondo del ``livello'' (termine non strettamente corretto) a cui lavorano:

Parlando poi di reti e di filtraggio, capita spesso che il discorso cada su proxy server e socks server.

Proxy server

Quando utilizzate un proxy server in rete (avete presente i parametri di configurazione di Internet Explorer o Mozilla?) il vostro browser non si collegherà direttamente al sito relativo alla pagina da voi richiesta, bensì si collegherà al proxy richiedendo tale pagina. Il proxy, in vece dei client, si prodigherà per fornire questa pagina scaricandola da internet o leggendola dalla sua cache. In pratica, un proxy server non è altro che un software che tiene una memoria (cache) delle pagine visitate di recente, mettendo tale memoria a disposizione di tutti gli utenti collegati ad una rete il cui browser è configurato per utilizzare tale cache. Questo può portare ad un risparmio di banda davvero notevole, soprattutto in quegli ambienti dove molte persone si collegano più o meno agli stessi siti (e se lo spazio a disposizione per la cache è molto, sarà molto probabile che molti siti si trovino in cache).

Oltre a consentirvi di risparmiare banda (una percentuale spesso rilevante di banda), il vantaggio di utilizzare un proxy server è che vi consentono di creare delle regole molto avanzate e di interagire facilmente con gli utenti.

Con poche righe di configurazione per esempio, installando squid e squidGuard su una macchina linux è possibile filtrare le pagine web in base al contenuto, applicare delle espressioni regolari agli URL e redirigere gli utenti su particolari pagine in caso le politiche impostate vengano violate (cose estremamente difficili ed inefficienti da fare con un normale firewall). In più, i delay pools di squid consentono una distribuzione abbastanza equa della banda e con l'appoggio di un semplice firewall, un proxy server può essere reso trasparente (transparent proxy): in questo caso non ci sarà bisogno di configurare tutti i computer connessi alla rete (client) per utilizzare il proxy e tutte le connessioni verranno automaticamente deviate (redirette) sul proxy dal firewall.

Socks server

Esiste poi un fratello povero dei proxy server, di cui vi ho accennato prima: il socks server. Questo, invece di fare da cache, è un software che si occupa soltanto di applicare restrizioni imponendo dei limiti o dando privilegi in base a regole stabilite dall'amministratore.

Lo svantaggio principale di un socks server è che le applicazioni utilizzate devono essere fatte apposta per parlare la ``lingua'' di quest'ultimo e che non può essere automaticamente imposto a tutti i computer di una rete (non si può impostare un ``transparent socks server''). Fortunatamente però, la maggior parte delle applicazioni attualmente disponibili sono a conoscenza di questa lingua.

Un buon motivo per utilizzare un socks server è che firewall statefull classici sono in grado di riconoscere e gestire soltanto i protocolli standard. Spesso capita quindi che protocolli inventati dai produttori di turno senza rispettare alcuno standard (o modificando gli standard a proprio piacimento) incontrino problemi non indifferenti. Configurando le applicazioni che fanno uso di questi protocolli in modo da collegarsi tramite un socks server li si costringerà a parlare una ``lingua'' standard che consentirà al socks server di far funzionare anche i protocolli più strani.

Normalmente quindi, utilizzando un firewall linux, a secondo delle esigenze degli utenti della rete che andrà a proteggere, si potrà installere e configurare anche un socks server per consentire a questi protocolli di funzionare.

E' importante notare però che i ``socks server'' in generale godono di una brutta fama per quanto concerne la sicurezza, non tanto perchè tutti i socks server siano pericolosi, quanto perchè c'è stato un periodo storico nel quale venivano preinstallati su determinati sistemi operativi senza imporre restrizione alcuna, consentendo ad utenti maliziosi di entrare nella vostra rete o di fare cose non proprio piacevoli.

Installando un socks server è quindi importante fare attenzione alle configurazioni imponendo delle regole il più possibile restrittive e cercando di evitare software notoriamente bacati. Ricordatevi infine che un socks server costituisce spesso l'unica alternativa per poter utilizzare alcuni programmi in rete, a meno di sviluppare un apposito modulo per il kernel.


Avanti Indietro Indice