Squid e DansGuardian: come costruire un proxy con filtro dei contenuti web
Introduzione
In diversi contesti di rete, si pensi ad esempio ad una rete LAN aziendale o ai laboratori informatici di scuole medie inferiori, può essere importante implementare un sistema il più possibile automatico per il controllo e il filtraggio di alcuni contenuti web considerati dall'amministratore inappropriati al contesto. Si considerino a titolo di esempio le seguenti necessità:
- proteggere i minori dal rischio di imbattersi in siti dedicati alla pornografia, alla violenza, al gioco d'azzardo e altro (il cosiddetto parental control);
- impedire al personale di un'azienda o di un ente di perdere tempo frequentando siti non connessi con l'attività lavorativa;
- migliorare l'utilizzo della banda disponibile, bloccando l'accesso a siti non connessi con l'attività lavorativa o la visione di filmati in streaming
Gli ingredienti che permettono di raggiungere gli obiettivi sopra elencati in una macchina Debian sono:
- un insieme di blacklist che elenchino sia i siti e le URL da bloccare o meno, sia frasi che, trovate in una pagina, facciano sì che essa sia bloccata;
- un software di filtraggio, o url rewriter, che, servendosi delle blacklist, possa dirottare una richiesta verso una pagina prestabilita, oppure lasciarla passare;
- un software proxy, che si occupi essenzialmente di ricevere le richieste dal url rewriter e ad inoltrarle verso l'esterno;
- le utility iptables, utilizzate per definire le regole che, in maniera trasparente, dirottano tutto il traffico web attraverso il proxy o il software di filtraggio, indipendentemente dalla volontà degli utenti;
- il supporto Netfilter nel kernel, necessario alle utility iptables.
Per raggiungere tutti questi obiettivi è anche necessario che la macchina Debian che configureremo sia impostata come gateway predefinito della rete LAN che vogliamo sottoporre a filtraggio.
Lo schema logico di questa struttura di rete sarà quindi come il seguente:
Rete Default URL Proxy locale <--> Gateway <--> Rewriter <--> Server <--> Internet LAN Debian DansGuardian Squid \ / \___________________________________/ | Tutti questi servizi risiederanno su una singola macchina Debian
Nei capitoli seguenti analizzeremo uno per uno tutti i punti della struttura da implementare.