Configuration de squidguard comme contrôle parental
Ayant de jeunes enfants à la maison, j'ai commencé à me poser la question de mettre en place un contrôle parental afin d'éviter d'amener mes enfants sur des pages que je n'aurais pas voulu qu'il voit (porno, jeux d'argent, violences etc.).
Bref, vous l'aurez compris, papa geek c'est posé la question de savoir qu'est ce qu'il pourrait bien mettre en oeuvre pour faire ce travail. J'ai rapidement trouvé une réponse au travers de l'outil squidguard. Nous allons donc voir ensemble comment rapidement le configurer afin de répondre à ce besoin.
Il va sans dire que papa geek utilise une distribution Linux (ici une Debian like) mais que ces instructions s'appliquent à n'importe quelle distribution Linux (voir à - j'ai du mal à le dire mais tant pis - à MacOS X - herk !).
url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
url_rewrite_children 10
http_port 3128 transparent
Bref, vous l'aurez compris, papa geek c'est posé la question de savoir qu'est ce qu'il pourrait bien mettre en oeuvre pour faire ce travail. J'ai rapidement trouvé une réponse au travers de l'outil squidguard. Nous allons donc voir ensemble comment rapidement le configurer afin de répondre à ce besoin.
Il va sans dire que papa geek utilise une distribution Linux (ici une Debian like) mais que ces instructions s'appliquent à n'importe quelle distribution Linux (voir à - j'ai du mal à le dire mais tant pis - à MacOS X - herk !).
Installation de squid et squidguard
La première phase est relativement rapide - pour peu que vous utilisiez une distribution Linux - et consiste à installer le package correspondant. Ceci se fait tout naturellement avec apt-get/aptitude/yum :
apt-get install squidguard
Il faut savoir qu'à ce moment, vous allez installer deux produits : squid et squidguard. Squid est un simple proxy HTTP mais qui a la particularité de pouvoir faire appel à des programmes externes pour procéder à des réécritures de contenu. Ici, le programme de réécriture externe est squidguard.
C'est très bien vous allez me dire mais squidguard vient sans aucune règle de configurer : le vilain ne filtre rien du tout ! Nous allons donc voir comment faire pour rajouter un filtrage dans squidguard avec les blacklists de l'université de Toulouse.
Configuration de squidguard
Récupération des blacklists
Rendons nous maintenant dans le répertoire /var/lib/squidguard/ et supprimons le répertoire db (en principe vide) :
rmdir /var/lib/squidguard/db
rmdir /var/lib/squidguard/db
Récupérons maintenant une archive de la dernière version des blacklists :
cd /tmp/
wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
Décompressons maintenant l'archive :
cd /var/lib/squidguard
tar xfv /tmp/blacklists.tar.gz
tar xfv /tmp/blacklists.tar.gz
Renommons tout ça et attribuons les bons droits :
mv blacklist db
chown -R proxy:proxy /var/lib/squidguard/db
Il faut maintenant modifier le contenu du fichier /etc/squid3/squid.conf avec le contenu suivant :
url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
url_rewrite_children 10
http_port 3128 transparent
Et faire suivre tout ceci d'un arrêt/relance :
/etc/init.d/squid3 restart
Voyons maintenant comment mettre en place les blacklists.
NAME: adult
DEFAULT_TYPE: black
SOURCE: http://squidguard.univ-tlse1.fr
DESC EN: Some adult site from erotic to hard pornography.
DESC FR: Des sites adultes allant de l'érotique à la pornographie dure.
NAME EN: Adult (X)
NAME FR: Adulte (X)
NAME IT: Siti per adulti (XXX)
NAME NL: 18+ (X)
NAME RU: Эротика
NAME DE: Porno
Charge à vous de sélectionner les catégories qui vous intéressent et de les ajouter sous cette forme dans le fichier /etc/squidguard/squidGuard.conf :
# Emplacement de la définition de la blacklist :
dbhome /var/lib/squidguard/db
logdir /var/log/squidguard
# Définition des différentes catégories
dest adult {
domainlist adult/domains
urllist adult/urls
}
Sauvegarder votre fichier et procéder maintenant à une mise à jour des bases de squidguard (soyez patient, c'est un peu long) :
/etc/init.d/squid3 restart
Voyons maintenant comment mettre en place les blacklists.
Mise en place des blacklists
Nous allons maintenant configurer notre squidguard afin qu'il prenne en compte les listes que nous venons de récupérer. Il faudra également choisir les listes que nous allons vouloir activer. Pour info, pour savoir à quoi correspond chacune des listes, il suffit d'ouvrir le fichier global_usage. Chaque catégorie y est présenté comme suit :NAME: adult
DEFAULT_TYPE: black
SOURCE: http://squidguard.univ-tlse1.fr
DESC EN: Some adult site from erotic to hard pornography.
DESC FR: Des sites adultes allant de l'érotique à la pornographie dure.
NAME EN: Adult (X)
NAME FR: Adulte (X)
NAME IT: Siti per adulti (XXX)
NAME NL: 18+ (X)
NAME RU: Эротика
NAME DE: Porno
Charge à vous de sélectionner les catégories qui vous intéressent et de les ajouter sous cette forme dans le fichier /etc/squidguard/squidGuard.conf :
# Emplacement de la définition de la blacklist :
dbhome /var/lib/squidguard/db
logdir /var/log/squidguard
# Définition des différentes catégories
dest adult {
domainlist adult/domains
urllist adult/urls
}
dest sect {
domainlist sect/domains
urllist sect/urls
}
dest malware {
domainlist malware/domains
urllist malware/urls
}
dest remote-control {
domainlist remote-control/domains
urllist remote-control/urls
}
# Règle à appliquer en fonction des catégories définies ci-dessus
acl {
default {
pass !adult !sect !malware !remote-control all
# Page de redirection. Changer là par ce que vous voulez
redirect http://localhost/block.html
}
}
Sauvegarder votre fichier et procéder maintenant à une mise à jour des bases de squidguard (soyez patient, c'est un peu long) :
update-squidguard
Attention ! Les espaces en début du fichier de configuration doivent être des tabulations ! Dans le cas où vous auriez fait une bêtise dans votre fichier, le script se bloquera sans aucun message et sans activité CPU. N'hésitez pas à consulter le contenu du fichier /var/log/squidguard/squidGuard.log ou lancer la commande suivante pour obtenir des informations complétementaires :
squidGuard -d -b -P -C all
Reste maintenant à configurer votre navigateur afin de pointer sur le proxy.
squidGuard -d -b -P -C all
Reste maintenant à configurer votre navigateur afin de pointer sur le proxy.
Configuration du navigateur
Ici, rien d'extraordinaire : se rendre dans les paramètres de votre navigateur, dans les paramètres réseaux, rentrer l'adresse de votre proxy (ip : 127.0.0.1 et port : 3128) et c'est parti.
Mutualisation du proxy
Dans le cas où vous voudriez mutualiser votre proxy, il faudra pour cela accepter les connexions depuis votre réseau local. Tout ceci se fait en rajoutant les directives suivantes dans votre fichier /etc/squid3/squid.conf :
acl localnet src 192.168.0.0/16
http_access allow localnet
Reste maintenant à relancer squid pour prendre en compte la modification (/etc/init.d/squid3 restart). Il faudra également renseigner l'adresse IP de la machine qui vous servira de proxy dans les différents navigateurs de vos différentes machines clientes.
A noter que si vous utilisez un serveur DHCP, il est possible de préciser l'adresse de votre proxy. La configuration se fera alors automatiquement.
Je n'ai donc plus qu'à vous souhaiter un bon surf sans trop de saleté pour vos gamins !