Skip to Content

Contrôle parental avec DansGuardian et TinyProxy

Ce document me sert de mémo pour installer DansGuardian et TinyProxy dans le but de mettre en place un contrôle parental pour l’accès Web.

Cela est particulièrement utile (voire indispensable) si vous avez des jeunes enfants désirant utiliser régulièrement un accès Web.

But de ce document

Ce document me sert de mémo pour installer DansGuardian et TinyProxy dans le but de mettre en place un contrôle parental pour l’accès web.

Cela est particulièrement utile (voire indispensable) si vous avez des jeunes enfants désirant utiliser régulièrement un accès web.

Cette installation a été effectuée sur Debian Testing mais elle doit fonctionner sans problème sur d’autres distributions.

Différences entre DansGuardian et SquidGuard

Pour filtrer les URL, SquidGuard utilise une base de données des sites interdits. Pour fonctionner correctement, il est donc nécessaire de maintenir cette base de données à jour en permanence.

De son coté, DansGuardian analyse le contenu des pages pour savoir si elle doit être bloquée ou pas. Il est possible également d’ajouter une liste de sites ou de mots interdits et il est même possible d’utiliser les listes noires de SquidGuard comme nous le verrons à la fin de ce document.

Si vous souhaitez installer SquidGuard, vous pouvez lire cet article :

  •  http://www.coagul.org/article.php3 ?id_article=184

    Installation de TinyProxy

    Pour faire fonctionner DansGuardian, il faut commercer par installer un serveur proxy. Il est possible d’installer par exemple «  Squid  », mais nous allons dans ce document utiliser «  TinyProxy  » qui est plus léger mais suffisant pour notre besoin :

    # aptitude install tinyproxy

    Remarque  : Par défaut, «  TinyProxy  » utilise le port 8888. Pour le changer, il faut éditer son fichier de configuration « /etc/tinyproxy/tinyproxy.conf ».

    Configuration de TinyProxy

    La configuration de TinyProxy s’effectue dans le fichier « /etc/tinyproxy/tinyproxy.conf ».

    Par exemple, pour changer le port en écoute, il faut modifier cette ligne :

    Port 8888

    Pour des raisons de sécurité et pour faciliter le filtrage avec «  iptables  » je conseille de créer un compte utilisateur spécifique pour le démon de TinyProxy :

    # useradd -s /bin/false tiny

    Ensuite, il faut éditer le fichier de configuration « /etc/tinyproxy/tinyproxy.conf » et modifier ces lignes :

    User tiny
    Group tiny

    Pour finir, il faut démarrer ou redémarrer TinyProxy :

    # /etc/init.d/tinyproxy restart

    Et vérifier que le démon tourne bien sous le compte « tiny » :

    # ps aux | grep tiny
    tiny      7706  0.0  0.1   2216   560 ?        S    13:17   0:00 /usr/sbin/tinyproxy

    Test de TinyProxy

    Pour tester TinyProxy, il suffit de configurer un navigateur web pour qu’il l’utilise. Par exemple, pour Firefox, il faut faire :

  •  Menu « Éditions / Préférences » onglet « Avancé », bouton « Paramètres ».
  •  Mettre «  localhost  » dans le champ « Proxy HTTP »
  •  Mettre «  8888  » dans le champ « Port »
  •  Cocher « Utiliser ce serveur proxy pour tous les protocoles »

    Si après ce réglage, l’accès web fonctionne toujours c’est que le proxy est opérationnel.

    Et normalement en arrêtant le proxy, cela doit bloquer l’accès web :

    # /etc/init.d/tinyproxy stop

    Ensuite, il faut le démarrer pour refaire fonctionner l’accès web :

    # /etc/init.d/tinyproxy start

    Installation de DansGuardian

    # aptitude install dansguardian

    L’installation de « DansGuardian entraîne l’installation de l’antivirus «  Clamav  ». Dans ce document, nous n’activerons pas cet antivirus car il n’est pas indispensable sous Linux et consomme pas mal de ressources.

    Configuration de DansGuardian

    DansGuardian utilise plusieurs fichiers de configuration enregistrés dans « /etc/dansguardian ».

    Configuration de « /etc/dansguardian/dansguardian.conf »

    Pour activer la configuration, il faut commenter ou supprimer cette ligne en début de fichier :

    #UNCONFIGURED

    Cette ligne permet d’indiquer le port utilisé par le proxy :

    proxyport = 8888

    Cette ligne permet d’avoir les messages en français en cas de blocage des sites :

    language = 'french'

    Cette ligne permet de désactiver l’antivirus :

    virusscan = off

    Configuration de « /etc/dansguardian/dansguardianf1.conf »

    La ligne suivante permet de paramétrer le filtrage en fonction de l’âge des personnes concernées :

    naughtynesslimit = 80

    La valeur par défaut de « 50 » donne un filtrage très dur et peu de sites sont accessibles. Plus cette valeur est élevée et plus le filtrage est faible. Personnellement, j’ai fait quelques tests et j’ai passé cette valeur à « 80 ».

    Cette ligne permet de désactiver l’antivirus :

    virusscan = off

    Configuration du fichier « /etc/dansguardian/bannedextensionlist »

    Ce fichier permet de définir des types de fichiers qui seront interdits de télécharger. Par défaut, la liste est très restrictive. il faut donc commenter les types de fichiers autorisés :

    #.gz   # Gziped file
    #.tar  # Tape ARchive file
    #.tgz  # Unix compressed file
    #.bz2  # Unix compressed file

    Configuration du fichier « /etc/dansguardian/bannedmimetypelist »

    Là encore il s’agit de restreindre des types de fichiers.

    #application/gzip
    #application/x-gzip
    #application/zip

    Configuration du fichier « /etc/dansguardian/bannedregexpurllist »

    L’ajout de cette ligne à la fin du fichier permet de bloquer la plupart des sites français de rencontres en ligne :

    (webcam|tchat|t'chat|rencontre|meetic|amour)

    Configuration du fichier /etc/dansguardian/phraselists/pornography/weighted_french »

    Il est possible d’ajouter des mots ou des listes de mots dans ce fichier, avec des coefficients positifs (mauvais mot) ou négatifs (bons mots) :

    < tchat ><20>
    < t'chat ><20>
    < partouze ><70>

    Prise en compte des modifications dans la configuration de DansGuardian

    Pour prendre en compte les modifications, il faut exécuter cette commande :

    # /etc/init.d/dansguardian restart

    Remarque : Un simple «  reload  » ne semble pas être suffisant.

    Configuration du navigateur

    Pour tester «  DansGuardian  », il suffit de configurer un navigateur web pour qu’il l’utilise. Par exemple, pour Firefox, il faut faire :

  •  Menu « Éditions / Préférences » onglet « Avancé », bouton « Paramètres ».
  •  Mettre «  localhost  » dans le champ « Proxy HTTP »
  •  Mettre «  8080  » dans le champ « Port » (et non plus « 8888 » qui est le port utilisé par le proxy mais pas par DansGuardian)
  •  Cocher « Utiliser ce serveur proxy pour tous les protocoles »

    Test de filtrage

    Dans Firefox ,allez sur www.google.fr et faites une recherche sur le mot « chatte ». Normalement la page résultante de cette recherche devrait être bloquée et une page d’avertissements s’affiche à la place.

    Pour modifier cette page, il suffit de modifier le fichier html suivant :

    /etc/dansguardian/languages/french/template.html

    Ensuite, faites une recherche dans « google » sur le mot « chat ». La page résultante n’est pas bloquée mais offre des liens vers des sites de rencontres. Si vous suivez les liens donnés, vous constaterez que certains sont immédiatement bloqués car ils contiennent un contenu sensible. Pour d’autres sites, vous accédez à la page d’accueil ne contenant rien de compromettant.

    Configuration d’iptables pour forcer les navigateurs à passer par le proxy

    Avec cette configuration, il suffit de supprimer la configuration du proxy dans le navigateur pour accéder à tout le web sans filtrage. Pour remédier à ce problème, il faut configurer iptables pour bloquer l’accès direct au web à tous les utilisateurs (sauf root et tiny). Pour cela il suffit d’ajouter ces lignes à la configuration de votre parefeu ou dans un script qui se lancera automatiquement au démarrage :

    # iptables -A OUTPUT -o eth0 -p tcp --dport http -j REJECT --reject-with tcp-reset
    # iptables -I OUTPUT -o eth0 -p tcp --dport http -m owner --uid-owner root -j ACCEPT
    # iptables -I OUTPUT -o eth0 -p tcp --dport http -m owner --uid-owner tiny -j ACCEPT

    Pour plus d’informations sur la configuration d’iptables et la mise en place d’un parefeu, vous pouvez lire cet article :

  •  http://www.coagul.org/article.php3 ?id_article=485

    ATTENTION : Avec cette configuration, aucun programme ne pourra avoir un accès http sans passer par le proxy. Par exemple, il faudra configurer Thunderbird pour pouvoir recevoir les fils RSS.

    Utilisation des listes noires de SquidGuard

    Vous trouverez sur ce site, des listes noires régulièrement actualisées pour SquidGuard :

  •  http://cri.univ-tlse1.fr/documentations/cache/squidguard.html

    Le script suivant que vous pouvez placer dans la crontab de root, permet de récupérer et décompresser automatiquement la liste noire «  adult  » :

    #!/bin/bash

    mkdir /etc/dansguardian/blacklists

    cd /etc/dansguardian/blacklists

    wget ftp://ftp.univ-tlse1.fr/pub/reseau/cache/squidguard_contrib/adult.tar.gz                        

    tar -xvzf adult.tar.gz

    Ensuite, il suffit de décommenter la ligne suivante du fichier « /etc/dansguardian/bannedsitelist » :

    .Include

    Et de redémarrer DansGuardian :

    # /etc/init.d/dansguardian restart

    Pour tester que la liste est bien opérationnelle, il faut tester l’un des sites proposés dans le fichier « domain » et regarder les logs :

    2007.2.17 11:49:44 - 127.0.0.1 http://votresite.com *DENIED* Site interdit: votresite.com GET 0

    Liens pour avoir plus d’informations

    Cet article est fortement inspiré des informations provenant de ce mail et de cet article :

  •  http://lists.debian.org/debian-user-french/2006/04/msg01654.html
  •  http://easy.open.and.free.fr/TinyDansguard/

    Historique des modifications

    Version Date Commentaire
    0.4 17/02/07 Création par Tony GALMICHE
    0.41 14/08/07 Petite correction
  • Commentaires

    Contrôle parental avec DansGuardian et TinyProxy

    Dans mon cas, la création de l’utilisateur crée automatiquement le groupe et fait l’affectation. Sinon en effet, il faut le faire manuellement.

    Contrôle parental avec DansGuardian et TinyProxy

    il manque à la création de l’utilisateur tiny la cration du groupe tiny.
    Il faut donc le créer puis attribuer ce groupe tiny à tiny commme groupe principal sinon, cela le proxy ne marche pas.

    D. Pailler

    > Contrôle parental avec DansGuardian et TinyProxy

    dansguard utilise (utilisait ?) les fichiers squidguard.

    Concernant les logiciels de """"control parental"""", malheureusement il n’y a pas d’autre terme. Comme les véhicules propres.

    > Contrôle parental avec DansGuardian et TinyProxy

    Pour SquidGuard, j’ai trouvé et j’ai complèté l’article.

    > Contrôle parental avec DansGuardian et TinyProxy

    J’ai éssayé également de configurer un proxy transparent mais sans succès. Je crois q’il faut obligatoirement utiliser Squid pour y arriver.

    Concernant l’ajout des listes de Squidgard, tu pourrais me donner le lien pour télécharger celles d’eole et comment les configurer car je n’ai trouvé aucune info à ce sujet pour Dansgardian.

    Pour le controle parental, je veux bien le remplacer par autre chose, mais tu proposes quoi ?

    > Contrôle parental avec DansGuardian et TinyProxy

    Merci pour tes remarques. C’est corrigé.

    > Contrôle parental avec DansGuardian et TinyProxy

    A l’époque (2002-2003 peut etre) j’avais couplé dansguardian avec privoxy et j’utilisais la possibilité de faire un proxy transparent dans squid (pas besoin de configurer les logiciels.

    Cela fonctionnait bien (sauf pour le SSL evidement).

    Par contre, il y avait une limitation dans la licence : pas de possibilité d’utilisation commerciale.

    On peut également interdire une liste d’url définit "à la squidguard". Perso je récupérais la base de connaissance de éole pour cela.

    J’vais faire une remarque général. Le mot "contrôle parental" est encore un terme commercial débile. C’est justement pour ne pas faire de "contrôle parental" qu’on utilise ce genre de logiciel. Ce terme me fait pensé aux "voitures propres". Si nos appartements étaient aussi propres que ces véhicules ... Bref.

    > Contrôle parental avec DansGuardian et TinyProxy

    Article très intéressant que je garderai précieusement en mémoire en attendant que mon petit bonhomme de 22 mois atteigne l’âge de cliquer :o)

    Sinon, voici quelques suggestions de changements concernant des coquilles, la terminologie ou bien le style.

    Coquilles

  •  "...Pour faire fonctionner DansGuardian, il faut commercer par installer..."
  •  "anti-virus" ou "antivirus" ? Tu utilises les deux orthographes, laquelle est la bonne ?
    Terminologie
  •  "... navigateur Internet..." (vu deux fois). Je dirais plutôt "navigateur web" afin de ne pas faire de confusion entre l’application (web) et le réseau qui la transporte (internet).
  •  "...la connexion à Internet..." (vu trois fois). En l’occurrence, il s’agirait plutôt "d’accès aux sites web" ou "d’accès au web" (cf. point précédent).
    Style
  •  "...des sites de rencontres en ligne français..." je te propose : "des sites français de rencontres en ligne". C’est plus lisible de mettre l’adjectif au plus près du nom auquel il se rapporte.