Questa pagina è relativa all'impostazione di un sistema rudimentale di filtraggio web dei contenuti per mezzo di squidGuard e delle blacklist
Filtro web rudimentale con squidGuard
Quella che segue è la descrizione delle operazioni da compiere per impostare squidGuard in maniera semplice. Per configurazioni più avanzate guardare in fondo a questa pagina.
Installazione
da root:
apt-get install squidguard
Configurazione
download di una blacklist di base da:
http://squidguard.mesd.k12.or.us/blacklists.tgz
copia di quella blacklist nella directory di squid:
cp blacklist.tgz /var/lib/squidguard/db/
sempre come root, spostarsi nella directory dei database di squidGuard:
cd /var/lib/squidguard/db
scompattare la blacklists con:
tar xvzf blacklists.tgz
Adesso è possibile editare il proprio file di configurazione:
/etc/squid/squidGuard.conf
un esempio di squid.conf per la blacklist appena installata può essere trovato in SquidGuardConf
Si dovranno settare le ownership adeguate per il database di squidGuard:
chown proxy:proxy -R /var/lib/squidguard/db/*
e i permessi (tutti i files 644, tutte le directories 755):
find /var/lib/squidguard/db -type f | xargs chmod 644 find /var/lib/squidguard/db -type d | xargs chmod 755
Poi si inizializzerà il database:
sudo -u proxy squidGuard -C all
Se si guarda all'interno delle directories che contengono i files domains e urls si potrà vedere che sono stati creati files addizionali: domains.db e urls.db.
Adesso bisognerà dire a squid di usare squidGuard, per questo bisognerà inserire la seguente riga
redirect_program /usr/bin/squidGuard
al file di configurazione di squid
/etc/squid/squid.conf
preferibilmente dove dice:
# TAG: redirect_program
approssimativamente alla riga 1023
Impostare il messaggio che sarà restituito per gli URL bloccati
/var/www/block.html
Si può usare BlockHtml, che è una bella pagina in bianco e nero con un link a skolelinux.de.
Adesso riavviare squid con:
squid -k reconfigure
Verificare l'installazione
Il modo più semplice è quello di visitare qualche sito che dovrebbe risultare bloccato e anche qualche sito che non si trova nella blacklist per controllare che questo sia consentito. Sul sito di squidGuard c'è una maniera molto carina di controllare che funzioni: verifying squidGuard
Per debian-edu si può usare il seguente comando:
echo "http://www.rotten.com / - - GET" | squidGuard -d
Se si modificano le blacklist
Si dovrà aggiornare il database di squidGuard con:
sudo -u proxy squidGuard -C all
e riconfigurare squid con:
squid -k reconfigure
Links
Aggiornamenti automatici
Salvare il seguente script come /root/bin/squid_blacklists_updates.sh:
TARGET=/var/lib/squidguard/db/blacklists
cd $TARGET || exit
# only run if squidGuard is active!
[ "`ps auxw | grep squid[G]uard`" ] || exit
rsync -az squidguard.mesd.k12.or.us::filtering $TARGET
for DIR in `ls $TARGET`
do
if [ -f $DIR/domains.include ]
then
TMP=$RANDOM
cat $DIR/domains $DIR/domains.include | sort | uniq > $DIR/domains.$TMP
mv -f $DIR/domains.$TMP $DIR/domains
fi
if [ -f $DIR/urls.include ]
then
TMP=$RANDOM
cat $DIR/urls $DIR/urls.include | sort | uniq > $DIR/urls.$TMP
mv -f $DIR/urls.$TMP $DIR/urls
fi
done
/usr/bin/squidGuard -c /etc/squid/squidGuard.conf -C all
# /usr/sbin/squidGuard -c /etc/squid/squidGuard.conf -u
chown -R proxy:proxy $TARGET
chown -R proxy:proxy /var/log/squid/squidGuard.log
sleep 5s
/usr/bin/killall -HUP squide inserirlo nel crontab di root:
sudo crontab -e
aggiungere la seguente riga:
00 5 * * * sh /root/bin/squid_blacklist_update.sh
