[[tutoriel:comment_mettre_en_place_un_controle_parental]]
Piste: » comment_mettre_en_place_un_controle_parental
Comment mettre en place un contrôle parental ?
Cette page vous explique comment mettre relativement simplement un contrôle parental pour les accès WEB pour un PC seul connecté à Internet (pas de réseau local)
Objectifs
- Restreindre l'accès au WEB pour certains thèmes
Procon latte
Sous ce nom horrible se cache un contrôle parental sous forme d'extension pour Firefox.
Cette extension est plutôt efficace et surtout très simple d'installation. Bien sûr, elle ne convient qu'aux utilisateurs de Firefox !
Installation
Rien de plus simple, il suffit de se rendre à cette adresse avec Firefox et de cliquer sur Installer.
Afin de d'empêcher la désactivation facile de Procon latte via le menu des modules complémentaires :
1- cliquer sur le bouton "Choisir un mot de passe" pour protéger l'accès à la modification des Préférences
2- cocher toutes les options des paramètres principaux, et notamment l'option "empêcher la désactivation ou la désinstallation"
Deux remarques :
Le blocage d'accès via la liste blanche ne marche pas pour certains sites, par ex. fr.youtube.com. Dans ce cas, ajouter le nom du site (youtube) à la liste des données explicites du Filtre principal dans la colonne "sites bloqués"
L'extension Public Fox disponible cette adresse permet d'aller plus loin en bloquant l'accès aux modules complémentaires, mais elle ne fonctionne pas avec l'occurence "Modules complémentaires" du menu Options de Firefox 3.0, ce qui oblige à installer un autre module de paramétrage du menu Options, comme par ex. Tools Menu Organiser disponible à cette adresse
Configuration
Inconvénients
- Simple à contourner.
- Ne protège que Firefox.
Squidguard
Pré-requis
Les logiciels utilisés pour mettre en œuvre ce contrôle parental sont :
- squidguard (Il faut activer le depot universe):

Configuration de Squid
Le fichier de configuration est : /etc/squid/squid.conf
Tout d'abord, sauvegardez ce fichier avec la commande :
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.orig
Maintenant, éditez ce fichier avec l'éditeur de votre choix en ayant les droits administrateurs. Insérez-y les lignes suivantes :
# ----------------------------------------------------------- cache_effective_user proxy cache_effective_group proxy # ----------------------------------------------------------- visible_hostname none # ----------------------------------------------------------- # ----------------------------------------------------------- acl all src 0.0.0.0/0.0.0.0 acl localhost src 127.0.0.1/255.255.255.255 acl manager proto cache_object acl serveur src 192.168.0.1 acl poste src 192.168.0.50 acl multipostes src 192.168.0.100-192.168.0.125 acl SSL_ports port 443 563 acl Safe_ports port 80 # http acl Safe_ports port 20 # ftp-data acl Safe_ports port 21 # ftp acl Safe_ports port 443 563 # ssl acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl Safe_ports port 631 # cups acl Safe_ports port 873 # rsync acl Safe_ports port 901 # SWAT acl purge method PURGE acl CONNECT method CONNECT http_access allow all redirect_program /usr/bin/squidGuard -c /etc/squid/squidGuard.conf redirect_children 10 http_port 3128 transparent
Configuration de SquidGuard
SquidGuard est une sorte de greffon à Squid qui joue le rôle de redirecteur. En fait si une requête du navigateur n'est pas conforme à ce qui a été défini dans sa configuration il affiche une autre page web que celle demandée.
Les listes noires
Pour ce qui est du filtrage des sites, on ne va bien sur pas entrer les adresses à la main, des listes noires existent sur le net. Voici une adresse de blacklist : ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz
Voici les commandes à faire pour les installer :
wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz sudo tar zxvf blacklists.tar.gz -C /var/lib/squidguard/db/ sudo su cd /var/lib/squidguard/db mv blacklists/* . rm -rf blacklists
C'est à partir de cette liste noire que la base de données va être crée pour Squidguard. Si vous regarder le répertoire /var/lib/squidguard/db, vous verrez pleins de sous répertoires de thèmes pour les listes noires (gambling, radio, webmail, porn, adult, etc.). Ce sont ces thèmes qu'il faudra définir dans le fichier de configuration de Squidguard
Mise à jour hebdomadaire automatique des listes noires
Pour mettre automatiquement à jour, chaque semaine, les listes noires de squidGuard, il suffit de créer une tâche cron. Créez le fichier /etc/cron.weekly/squidguard_blacklists :
sudo gedit /etc/cron.weekly/squidguard_blacklists
et inscrivez-y les lignes suivantes :
#!/bin/sh # # Fichier /etc/cron.weekly/squidguard_blacklists # # Telecharge chaque semaine les listes noires pour squidguard # et met à jour les bases de ce dernier. if [ -d /var/lib/squidguard ]; then wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/blacklists.tar.gz -O /var/lib/squidguard/blacklists.tar.gz tar zxvf /var/lib/squidguard/blacklists.tar.gz -C /var/lib/squidguard/ rm -rf /var/lib/squidguard/db mkdir /var/lib/squidguard/db || true mv -f /var/lib/squidguard/blacklists/* /var/lib/squidguard/db/ chmod 2770 /var/lib/squidguard/db rm -rf /var/lib/squidguard/blacklists /var/lib/squidguard/blacklists.tar.gz /usr/bin/squidGuard -C all chown -R proxy:proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard /etc/init.d/squid restart fi
Rendez ce fichier exécutable :
sudo chmod +x /etc/cron.weekly/squidguard_blacklists
Si vous désirez, vous pouvez le tester (attention, il est long à rendre la main, à cause de la mise à jour des bases de squidGuard) :
sudo /etc/cron.weekly/squidguard_blacklists
Le fichier de configuration
Le fichier de configuration est : /etc/squid/squidGuard.conf
De même sauvegardez ce fichier avec la commande :
sudo cp /etc/squid/squidGuard.conf /etc/squid/squidGuard.conf.orig
Maintenant, éditez ce fichier avec l'éditeur de votre choix en ayant les droits administrateurs.
remplacer le ficher avec les lignes suivantes :
#
# CONFIG FILE FOR SQUIDGUARD
#
dbhome /var/lib/squidguard/db
logdir /var/log/squid
# ------------------------------------------------------------
# Definition de la base de données de filtrage utilisée
# ------------------------------------------------------------
dest adult {
domainlist adult/domains
urllist adult/urls
}
dest publicite {
domainlist publicite/domains
urllist publicite/urls
}
dest warez {
domainlist warez/domains
urllist warez/urls
}
dest porn {
domainlist porn/domains
urllist porn/urls
}
dest violence {
domainlist violence/domains
urllist violence/urls
}
# ajoutez ici les thèmes supplémentaires de votre choix présents dans la blacklist de la façon suivante
# dest <nom du thème> {
# domainlist <nom du thème>/domains
# urllist <nom du thème>/urls
# }
# ------------------------------------------------------------
# Definition des ACL
# ------------------------------------------------------------
acl {
default {
# les thèmes supplémentaires sont à ajouter avant le mot-clé all par !<nom du thème>
pass !porn !adult !publicite !warez !violence all
redirect http://roozeec.free.fr/interdiction.html
}
}
# ------------------------------------------------------------
Maintenant il faut générer la base de données avec la commande suivante :
sudo squidGuard -C all
Patientez un peu car ça peut être long.
Vous aurez compris ici que SquidGuard va rediriger toutes les pages qui sont non conformes à la règle pass vers la page web : http://www.louviaux.com/interdiction.png
Configuration de IPTABLES
Maintenant que tous est fait pour ce qui est du proxy, il faut aussi que les requêtes du navigateur soit redirigées vers le proxy squid que nous venons de configurer. Pour celà, il faut d'abord trouver l'identifiant de l'utilisateur proxy (UID) avec la commande :
grep proxy /etc/passwd proxy:x:13:13:proxy:/bin:/bin/sh
Ici la réponse est 13, donc nous allons créer la règle iptables suivante (13 est ici la valeur donnée précédemment) :
sudo iptables -t nat -A OUTPUT -m owner ! --uid-owner 13 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
De façon à lancer cette commande au démarrage du PC, il suffit de la mettre dans le fichier /etc/rc.local, juste avant la commande exit 0 (13 est ici la valeur donnée précédemment) :
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. iptables -t nat -A OUTPUT -m owner ! --uid-owner 13 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128 exit 0
Démarrage de Squid
Maintenant que tout est prêt, il suffit de lancer Squid, mais avant tout il va falloir lancer quelques commandes pour bien définir les droits des fichiers :
sudo chown -R proxy:proxy /etc/squid /var/log/squid /var/spool/squid /usr/lib/squid /usr/sbin/squid /var/lib/squidguard
Lancer maintenant la commande :
sudo squid -z
Maintenant le démarrage proprement dit :
sudo /etc/init.d/squid start
Et la réponse doit être : Starting Squid HTTP proxy squid [ok]
DansGuardian
Une autre solution est d'utiliser DansGuardian tel qu'expliqué sur cette page.
