Dopo qualche bega mai risolta utilizzando dansguardian per il filtraggio web (lentezza esasperante, perlopiù), ho provato con squidguard che, pur avendo funzionalità minori (solo blacklist, niente parole pesate per pagina), promette di essere veloce.
Vi assicuro che manterrà quanto promesso, almeno fin quando non avrete qualche diverse centinaia di postazioni che fanno arrivare richieste al vostro proxy.
Installazione:
# apt-get install squidguard
Scarichiamoci le liste da http://urlblacklist.com/?sec=download e scompattiamole in /var/lib/squidguard/db/
Il file di configurazione è molto intuitiva, questo è il mio conf:
#
# CONFIG FILE FOR SQUIDGUARD
#
dbhome /var/lib/squidguard/db
logdir /var/log/squid3
# classe di ip privilegiati es: reparto IT, manager, fratelli maggiori
src admin {
ip 192.168.66.2
}
# classe di ip non privilegiati es: impiegati, fratelli minori
src clients {
ip 192.168.66.3-192.168.66.254
}
#
# DESTINATION CLASSES:
#
# whitelist personalizzata, inserisco in questa i domini che
# voglio comunque siano visitabili nonostante siano presenti
# in qualche altra blacklist
dest good {
domainlist good/domains
}
# seguono tutte le blacklist che voglio vengano caricate
# tenere presente che *non* per tutte le categorie sono
# disponibili 3 file distinti (domini, url, regexp).
# la direttiva redirect è la pagina che viene restituita quando
# un sito della lista viene matchato.
dest adult {
domainlist adult/domains
urllist adult/urls
redirect http://obluraschi/squidGuard/adult.php
}
dest porn {
domainlist porn/domains
urllist porn/urls
expressionlist porn/expressions
redirect http://obluraschi/squidGuard/adult.php
}
dest malware {
domainlist malware/domains
urllist malware/urls
redirect http://obluraschi/squidGuard/bad.php
}
dest spyware {
domainlist spyware/domains
redirect http://obluraschi/squidGuard/bad.php
}
dest ads {
domainlist ads/domains
urllist ads/urls
expressionlist ads/expressions
redirect http://obluraschi/squidGuard/ads.php
}
acl {
# assegniamo le liste ad ogni classe di clients definita precedentemente:
# per admin blocco ads, malware, spyware, il resto passa tutto.
admin {
pass !ads !malware !spyware any
}
# per i clients, passano i siti buoni, vengono bloccati ads, adult, porn,
# malware e spyware, il resto passa tutto
clients {
pass good !ads !adult !porn !malware !spyware any
}
# i clients che si collegano che non fanno parte delle classi di IP
# definite in precedenza, non possono navigare
default {
pass none
redirect http://obluraschi/squidGuard/
}
}
A questo punto manca solo di integrare squidGuard nell’installazione di squid, aggiungendo in squid.conf la seguente riga:
redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf
HINT: ad ogni avvio di squid, le liste vengono ricaricate, generando parecchia attività su disco per una 30ina di secondi (molto dipendente dall’hardware e dalle liste che abilitiamo).
Per velocizzare l’avvio, è possibile lanciare il comando:
# sudo -u proxy squidGuard -c /etc/squid/squidGuard.conf -C all
il quale genera, nella stessa cartella delle liste in formato testo, degli archivi in formato binario contenenti i siti ottimizzati per il caricamento in squidguard. Sarà necessario rieseguire il comando ogni volta che facciamo una modifica alla lista.
