Arrivati a questo punto, un riavvio di Squid completerà l'opera di configurazione:
# /etc/init.d/squid restart
Ci troviamo adesso con un gateway e un proxy server - in ascolto all'indirizzo 192.168.1.1:8080 - perfettamente funzionanti e possiamo già agire sulla configurazione del browser dei nostri client per iniziare ad utilizzare Squid. Vogliamo però risparmiarci la fatica di entrare su ogni client e vogliamo rendere trasparente agli utenti la presenza del nostro proxy.
Per ottenere questo risultato dobbiamo scrivere una regola di iptables che intercetti le richieste uscenti verso il web (sulla porta 80 del nostro gateway) e le rediriga verso il nostro proxy server, in ascolto sulla porta 8080.
Torniamo quindi a modificare il file /etc/init.d/firewall creato in precedenza e aggiungiamo alla fine del file questa ulteriore regola:
# Transparent proxy iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT \ --to-port 8080
Riavviamo il nostro script e prepariamoci a verificarne il funzionamento. Se da un client della rete proviamo a navigare su internet, agendo sulla console del nostro gateway dovremmo vederne i log:
# tail -f /var/log/squid/access.log 1104854410.086 159 192.168.1.50 TCP_MISS/302 469 GET \ http://www.google.com/ - DIRECT/216.239.59.104 text/html 1104854410.217 128 192.168.1.50 TCP_MISS/200 1459 GET \ http://www.google.it/ - DIRECT/216.239.59.99 text/html 1104854410.397 180 192.168.1.50 TCP_MISS/200 9022 GET \ http://www.google.it/intl/it/images/logo.gif - DIRECT/216.239.59.99 image/gif 1104854415.196 200 192.168.1.50 TCP_MISS/200 1459 GET \ http://www.google.it/ - DIRECT/216.239.59.99 text/html 1104854415.271 74 192.168.1.50 TCP_REFRESH_HIT/304 235 GET \ http://www.google.it/intl/it/images/logo.gif - DIRECT/216.239.59.99 text/html
Perfetto! Il nostro proxy server è entrato correttamente in funzione.
Prime conclusioni
Abbiamo fino ad ora impostato una macchina Debian per funzionare come gateway di una rete LAN e per far girare un proxy server che sveltisca la navigazione dei client e ne registri i log.
Pur essendo questa una configurazione funzionante e completa, in alcune situazioni potrebbe essere conveniente espanderla e installare anche un sistema per filtrare i contenuti della navigazione. È in questi casi che torna utile una categoria di programmi chiamata URL rewriter.
DansGuardian: l'URL rewriter
Un URL rewriter è un software che si occupa di riscrivere un URL, sostituendolo con un'altro ritenuto più opportuno sulla base delle regole e dei filtri impostati. Il risultato è il dirottamento di certe richieste verso una o più pagine predefinite. Un caso tipico è quello in cui l'utente viene deviato su una pagina recante un messaggio standard del tipo "Spiacente, il sito che volevi raggiungere non sembra collegato agli interessi dell'Azienda" o qualcosa del genere.