Filtraggio rudimentale con squidGuard

Recentemente abbiamo avuto delle lamentele nella nostra scuola riguardanti l'assenza di filtri internet. Così ho configurato squidGuard. Mi ci sono volute un paio di ore dal momento di venire a sapere dell'esistenza di squidGuard al farlo funzionare in maniera semplice. Per settaggi più avanzati guardare in fondo a questa pagina.

"Nota: i listati presenti sono stati realizzati usando un server Sarge."

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

Io ho usato ?/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

TODO

Commenti su questa pagina

Aggiungi i commenti qui, grazie.

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 squid

e inserirlo nel crontab di root:

sudo crontab -e

aggiungere la seguente riga:

00 5 * * * sh /root/bin/squid_blacklist_update.sh

Traduzione: -- PaoloAlberti 2010-10-28 09:11:58