Proxy Server con filtraggio dei contenuti della navigazione
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.
Prerequisiti
- Il PC che utilizzeremo come proxy dovrà avere due schede di rete installate e configurate
- Un ambiente LAMP: Installare un ambiente LAMP: Linux, Apache2, SSL, MySQL, PHP5
- Un server DNS e un server DHCP attivi: Un server DNS e DHCP su Debian
Nel resto della guida supporremo che le due schede di rete siano così configurate:
# ETHO - Connessa a LAN allow-hotplug eth0 iface eth0 inet static address 192.168.10.254 netmask 255.255.255.0 network 192.168.10.0 broadcast 192.168.10.255 dns-nameservers 8.8.4.4 8.8.8.8 # ETH1 - Connessa a INTERNET allow-hotplug eth1 iface eth1 inet dhcp
In questa configurazione, la scheda di rete collegata ad internet è impostata con il DHCP, ma ovviamente può essere utilizzato un IP statico a seconda delle esigenze. Per modificare la configurazione di rete di Debian si segua ad esempio questa guida: Come impostare indirizzi IP fissi su Debian