Software Open source: Dansguardian e Squid per filtrare il traffico web della rete


Come configurare un proxy di filtraggio della navigazione Web basato su due software open source: Dansguardian e Squid.

DansGuardian è un software opensource, molto veloce e scritto in C++, che, accoppiato ad un proxy, viene utilizzato per il filtraggio della navigazione Web.
Gira su tutti i sistemi *nix (Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX e Solaris).

Nella pratica, DansGuardian è un nodo ulteriore: si frappone tra tutti i browser di una rete locale ed il proxy Squid. I browser vengono impostati per utilizzare DansGuardian come proxy di navigazione; questo inoltra, quindi, il traffico tra browser e proxy Squid solo nel caso in cui la richiesta non violi alcuna regola interna imposta dall’amministratore del filtro.

Il filtraggio si attua a livello applicativo HTTP, tramite analisi dell’URL, del dominio, del formato di file delle risorse Web (estensione e descrizione MIME) e del contenuto testuale; per quest’ultimo controllo viene usata la corrispondenza dello stesso a determinati pattern (stringhe e/o espressioni regolari). È presente infine un controllo sui file spediti dai browser al webserver (in POST).

È possibile scaricare dalla rete e far utilizzare direttamente a DansGuardian delle blacklist di URL, domini e pattern da filtrare, aggiornate frequentemente, che annoverano migliaia di risorse considerate pericolose o semplicemente non adatte ad un pubblico non adulto oppure di advertisment online.
Sarà compito di chi amministra tale proxy di abilitare o meno le sue diverse peculiarità ed opzioni. La blacklist “ufficiale” del programma, aggiornata giornalmente, è reperibile su: http://urlblacklist.com/?sec=download. Per il suo utilizzo è richiesta una sottoscrizione mensile od annuale, sebbene essa sia liberamente scaricabile.

Una blacklist attua il concetto di “lasciar passare” solo ciò che non sia contenuto nella blacklist stessa; DansGuardian può tuttavia esser configurato anche con filosofia opposta, ovvero bloccare tutto tranne ciò che viene definito in determinate whitelist.

Se, infine, la vostra filosofia di vita è In medio stat virtus, allora DansGuardian fa anche al caso vostro, in quanto può utilizzare ambo le filosofie assieme!

Vorrei da ultimo precisare che DansGuardian e Squid formano un sistema di proxy trasparente, ovvero non nascondono al webserver destinazione l’esatta origine della connessione, come mostrano di seguito i log del server Apache stesso a fronte di connessioni di prova.

192.168.0.46 – – [30/Jul/2009:17:06:35 +0200] “GET / HTTP/1.1” 200 645 “-” “Opera/9.64 (X11; Linux i686; U; en) Presto/2.1.1”
192.168.0.46 – – [30/Jul/2009:17:12:36 +0200] “GET / HTTP/1.1” 200 645 “-” “Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.0.12) Gecko/2009072221 Iceweasel/3.0.6 (Debian-3.0.6-1)”

Sottolineo quindi come il compito del sistema di proxy in esame sia quello di filtro dei contenuti, per lo più in ingresso, ciò che ben si distanzia dallo scopo di altri sistemi di proxy quali TOR e Privoxy, che puntano l’accento sulla privacy ed il nascondimento delle tracce di chi naviga.

Per gli esempi pratici che seguono utilizzeremo Squid come proxy di “appoggio” a DansGuardian, ma non ci soffermeremo sulla sua descrizione e lo daremo come prerequisito essenziale; per far sì che la presente mini guida possa comunque essere seguita da tutti, daremo tuttavia a breve le istruzioni minime ed indispensabili per installare Squid di modo che possa esser usato da DansGuardian nella sua configurazione standard. Tratteremo per lo più l’approccio a blacklist.

Come detto più volte, utilizzeremo Squid come proxy di appoggio; DansGuardian è già di default configurato per connettersi a Squid (porta 3128). Squid e DansGuardian verranno per questo articolo installati sul medesimo host, ma, con evidenza, nulla vieta che girino su macchine differenti in rete. Nel caso Squid non fosse già presente, per la sua installazione su Linux Debian / Ubuntu è sufficiente dare il comando:

apt-get install squid

da shell in qualità dell’utente root (sudo apt-get install squid). L’operazione reperirà il programma e le dipendenze dal repository della distribuzione in uso, lo installerà e lo configurerà per ascoltare connessioni di rete alla porta TCP 3128. Per appurare ciò, diamo:

netstat -ap | grep -i squid

tcp 0 0 *:3128 *:* LISTEN 3194/(squid)
udp 0 0 *:icpv2 *:* 3194/(squid)
udp 0 0 *:42833 *:* 3194/(squid)

Nel caso in cui la porta TCP non fosse quella menzionata – probabilmente a causa di una precedente installazione o di esigenze particolari – sarà sufficiente modificare il file di configurazione di DansGuardian per il corretto interfacciamento, come in seguito indicato nella descrizione dello stesso file. Per ulteriori informazioni su Squid si veda la sua documentazione.
Installazione di DansGuardian

Una volta soddisfatti i prerequisiti, al fine di installare il programma in oggetto, DansGuardian, sui sistemi Debian-based utilizziamo il consueto comando (come root):

apt-get install dansguardian

Ad installazione completata si viene avvertiti che è necessario, prima di tutto, modificare il file di configurazione principale (Please edit /etc/dansguardian/dansguardian.conf manually then rerun this script). Per permettere a DansGuardian di partire, dev’esser sicuramente eliminata la riga “UNCONFIGURED – Please remove this line after configuration” dal file /etc/dansguardian/dansguardian.conf.

Una volta terminata la configurazione, della quale parleremo diffusamente a breve, avviamo il servizio:

/etc/init.d/dansguardian start

DansGuardian ascolterà quindi di default sulla porta 8080. IP (l’IP dell’host su cui gira) e porta di DansGuardian saranno i parametri fondamentali al fine di configurarlo come proxy di navigazione nei browser in uso

Tutti i browser della rete locale dovranno essere configurati per uscire sull’Internet per mezzo di DansGuardian.

Per una corretta politica di sicurezza dev’esser nel contempo evitato che i client possano scavalcare la protezione offerta da DansGuardian ed evitare loro la connessione diretta sia a Squid sia al router di frontiera; oppure, meglio, definire a livello di firewall che solo il proxy Squid possa comunicare coi webserver dell’Internet, posto che solo DansGuardian possa comunicare a sua volta con Squid. Oppure, ancor meglio, è necessario che le regole di instradamento dei pacchetti siano eseguite tutte al di fuori dei browser degli utenti, con un’adeguata infrastruttura di rete.

Ciò non vieta ovviamente che l’utente possa però collegarsi ad altri proxy Internet al fine di scavalcare le protezioni. Credo di dire cosa sensata nell’affermare che bloccare siti di interesse comune in un’organizzazione possa spingere i dipendenti malcontenti a cercare – e, molto più spesso di quanto gli amministratori di rete pensino, trovare – strade alternative al fine di scavalcare il filtro di contenuti, ciò che può portare spesso a gravi ricadute sulla sicurezza della LAN stessa.

Di seguito sono esemplificati i passi per configurare rispettivamente Firefox ed Opera (optiamo per il metodo più semplice); non ha ovviamente alcuna importanza il sistema operativo sul quale i client girano, che può spaziare da Windows ad Android – al contrario del sistema su cui gira il proxy che, come abbiamo inteso, dev’essere un Linux o Unix-derivato.
Firefox

Su Firefox è sufficiente portarsi su Strumenti > Opzioni > Avanzate > Rete e quindi su Impostazioni, inserendo poi come coppia host e porta del proxy i valori dell’IP dell’host su cui gira DansGuardian (es.:192.168.0.254) e 8080 rispettivamente.

Lascia un commento