6. La gestion des listes noires

Le choix de la source de listes noires d'URLs (et|ou) de noms de domaines a un impact très important sur la configuration de l'outil de filtrage squidGuard. Pour les besoins d'exploitation d'une infrastructure d'enseignement, le service offert par Centre de Ressources Informatiques de l'Université de Toulouse I convient parfaitement !.

La démarche suivie ici ne s'embarrasse pas du choix de tel ou tel service. On télécharge la totalité des listes en une opération unique et on utilise le script d'indexation fourni par le paquet squidguard pour construire la base de données en fonction de la configuration présentée dans Section 5, « La configuration du service de filtrage des URLs ».

L'adresse de la page de téléchargement des listes noires est : http://cri.univ-tlse1.fr/blacklists/. Voici un exemple de traitement manuel de ces listes.

$ cd /var/tmp/
$ wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
--2015-09-05 21:02:12--  http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
Résolution de dsi.ut-capitole.fr (dsi.ut-capitole.fr)… 193.49.48.249
Connexion à dsi.ut-capitole.fr (dsi.ut-capitole.fr)|193.49.48.249|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Taille : 9606794 (9,2M) [application/x-gzip]
Sauvegarde en : « blacklists.tar.gz »

blacklists.tar.gz  100%[=================>]   9,16M   346KB/s   ds 48s    

2015-09-05 21:03:00 (195 KB/s) — « blacklists.tar.gz » sauvegardé [9606794/9606794]

$ tar xf blacklists.tar.gz

À l'issue de ce téléchargement et de la décompression du fichier d'archive, le répertoire blacklist contient les répertoires qui correspondent aux différentes «catégories» de listes noires. Le choix entre les différentes catégories se fait dans le fichier de configuration du paquet squidguard.

# mv blacklists/* /var/lib/squidguard/db/

# update-squidguard
Double checking directory and file permissions...done!
Re-building SquidGuard db files...done!
Reloading Squid...done!

Une fois que l'on a validé le processus manuellement, il est préférable d'automatiser le traitement pour assurer une mise à jour périodique des enregistrements en liste noire. Voici un exemple de Shell script à déposer dans le répertoire /etc/cron.weekly/ pour qu'il soit exécuté toutes les semaines.

#!/bin/sh

cd /var/tmp
rm -rf blacklist* >/dev/null 2>&1
wget -q ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz

if [ -f /var/tmp/blacklists.tar.gz ]; then
        tar xf blacklists.tar.gz
        cp -au blacklists/* /var/lib/squidguard/db/ >/dev/null 2>&1
        /usr/sbin/update-squidguard >/dev/null 2>&1
fi

Ce script reprend simplement les étapes réalisées manuellement plus haut et fait appel au script update-squidguard fourni avec le paquet squidguard.

Il faut juste noter que ce dernier script à été modifié pour relancer squid3 en lieu et place de squid. Voici une copie dans laquelle les lignes 13 et 15 ont été modifiées.

#! /bin/sh
# db update script for Chastity
#

echo -n "Double checking directory and file permissions..."
chown -R proxy.proxy /var/lib/squidguard/db >/dev/null 2>&1
chmod 2770 /var/lib/squidguard/db >/dev/null 2>&1
echo "done!"
echo -n "Re-building SquidGuard db files..."
su - proxy -c "squidGuard -C all" >/dev/null 2>&1
su - proxy -c "squidGuard -u" >/dev/null 2>&1
echo "done!"
if [ -e /etc/init.d/squid3 ]; then
        echo -n "Reloading Squid..."
        /etc/init.d/squid3 reload >/dev/null 2>&1
        echo "done!"
fi