Table des matières

, , , ,

Contrôle parental avec DansGuardian

Il existe des méthodes plus simples: Comment mettre en place un contrôle parental ?

Ce document n'est pas réellement une documentation mais plutôt une description de ce que j'ai dû installer/configurer pour le faire fonctionner chez moi. Je n'ai pas cherché à être exhaustif sur tout ce que l'on peut faire avec ces applications. Je vais donc vous livrer ma config et tout ce que j'ai compris dessus.

Squid va être configuré en proxy transparent. Cela signifie que les postes qui seront sur le réseau local n'auront pas besoin de configuration particulière pour accéder à Internet : tous les accès Web qu'ils feront sur le port 80 seront automatiquement filtrés (en clair, ils n'auront pas besoin de configurer de proxy dans leur navigateur …).

Contexte

Installation

Le plus simple : dhcp3-server

installez le paquet dhcp3-server

Lors de l'installation il vous est demandé quelle est l'interface avec laquelle il doit travailler. Il faut bien entrer eth1, c'est à dire l'interface réseau connecté au réseau local et non eth0 qui est elle connecté à internet. Il ne faut pas non plus laisser ce champ vide car sinon votre serveur dhcp sera accessible depuis internet.

Après l'avoir installé, il n'y a que peu de configuration à faire dans /etc/dhcp3/dhcpd.conf :

Voilà. C'est fait pour le serveur dhcp. plus qu'à le démarrer :

sudo /etc/init.d/dhcp3-server start

(Pour ceux qui veulent aller plus loin, on pourrait améliorer un peu en configuration un cache DNS …)

dansguardian + squid

une fois les deux installés,

sudo apt-get install squid dansguardian

voici ce qu'il faut configurer :

squid

La configuration est entièrement dans le fichier /etc/squid/squid.conf. j'ai ajouté à la fin :

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on
http_access allow all

C'est la ligne httpd_accel_port 80 qui est particulièrement importante. Sans elle, squid ne peut pas fonctionner en tant que proxy transparent.

Sous Karmic Seul le paramètre http_access allow all est nécessaire.

j'ai également commenté :

#http_access deny all
DansGuardian

Il n'y a que trois lignes de /etc/dansguardian/dansguardian.conf à modifier :

filterport = 8080
proxyport = 3128
language = 'french'

La première indique le port sur lequel DansGuardian écoute. La seconde indique le port sur lequel Squid écoute (3128 est le port par défaut de Squid). Enfin, la troisième est utilisée pour indiquer dans quelle langue seront envoyés les messages d'erreur.

Bien s'assurer que Squid est démarré avant de démarrer DansGuardian car il fait un test de connexion.

Pour tester que ça fonctionne, il suffit de mettre http://localhost:8080 en proxy dans Firefox (Edition / Préférences / Général / Connexion / Configuration manuelle du proxy …) puis de naviguer. Essayez d'aller sur un site “peu recommandable” : L’accès devrait être interdit.

J'ai ensuite modifié /etc/dansguardian/languages/french/template.html afin de personnaliser le message que recevra mon fils.

Vous pourrez plus tard jouer avec les fichiers qui se trouvent dans /etc/shorewall. Ils vous permettent de personnaliser ce qui est interdit ou ce qui est autorisé.

Personnellement, je n'ai jamais eu besoin d'ajouter quoi que ce soit car les mots clés bannis semblent plutôt exhaustifs. Les seules opérations que j'ai dû faire sont d'ajouter certains sites.

Le firewall

Je ne vais pas refaire la doc de ce firewall : il y en a pas mal sur shorewall.net. En particulier, la configuration utilisée est “Linux avec deux interfaces”.

Lorsqu'on installe, il me semble qu'il n'y a pas de fichier de configuration (je ne sais plus, ça fait longtemps…) et qu'il faut les télécharger du site de shorewall.
J'ai pris celle-là : http://www1.shorewall.net/pub/shorewall/Samples/samples-2.2.4/two-interfaces.tgz
De plus, liée à cette config, il y a une documentation en français à l'adresse : http://www.shorewall.net/two-interface_fr.html.

Fonctionnement succinct de Shorewall :

Tout est organisé sous forme de zones. Ainsi, chez moi, j'ai
Internet ←→ passerelle ←→ clients
trois zones appelées net, fw et loc (local).

Tout le paramétrage du firewall consiste à mettre des règles sur les flux entre ces zones.
Pour cela, il faut :

Tous les fichiers de configuration sont dans /etc/shorewall.
En particulier, on a :

Or dans mon cas c'est l'inverse : je veux filtrer tout ce que va faire mon fils et je veux, moi (la passerelle est mon poste …) ne pas avoir de filtre. Ainsi, j'ai changé :

#SOURCE         DEST            POLICY          LOG LEVEL
loc             net             ACCEPT
net             all             DROP            info
all             all             REJECT          info


en

fw              all             ACCEPT
net             all             DROP
all             all             REJECT


Vous remarquerez que j'ai supprimé les logs des rejets (les deux dernières lignes). C'est pas bien, mais ça me polluait les logs système.
Vous pouvez aussi remarquer qu'il y a une fois DROP et une fois REJECT. Je vous laisse voir ce à quoi cela correspond sur le site de Shorewall … .

C'est fini. Plus qu'à démarrer Shorewall (/etc/init.d/shorewall start) et tester.

annexe

Liens externes

Contrôle parental simple avec DansGuardian Permet d'utiliser Dansguardian directement sur un PC client

Si utilisation de FireStarter