Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
dansguardian [Le 15/03/2007, 12:58]
ostaquet
dansguardian [Le 11/09/2022, 11:37] (Version actuelle)
moths-art Suppression des espaces en fin de ligne (détecté et corrigé via le bot wiki-corrector (https://forum.ubuntu-fr.org/viewtopic.php?id=2067892)
Ligne 1: Ligne 1:
-{{tag>breezy dapper edgy education securite web}}+{{tag>éducation sécurité internet À_RECYCLER}}
  
 ---- ----
 +
  
  
 ====== Contrôle parental avec DansGuardian ====== ====== Contrôle parental avec DansGuardian ======
 +<note warning>​Comme précisé sur la page [[wp>​DansGuardian|DansGuardian]],​ DansGuardian n'est plus maintenu et est remplacé par le fork **[[https://​github.com/​e2guardian/​e2guardian|e2Guardian]]**</​note>​
 +<note important>​Il existe des méthodes plus simples: [[tutoriel:​comment_mettre_en_place_un_controle_parental|Comment mettre en place un contrôle parental ?​]]</​note>​
  
-===== Préambule ===== +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.
- +
-En recherchant un peu comment configurer mon réseau chez moi (réseau est un bien grand mot : mon ordinateur et celui de mon fils ...), je n'ai pas réussi à trouver de doc vraiment complète : Tantôt une doc sur la configuration du firewall puis une autre sur squid puis une autre sur le contrôle parental puis ... +
- +
-Le contrôle parental est géré par [[http://​dansguardian.org/​|DansGuardian]]. +
-J'ai vu pas mal de post ou l'on se demandait s'il fallait filtrer le contenu de ce que voyait nos enfants ou leur apprendre à faire le tri. +
-Là, clairement, il s'agit de filtrer. +
- +
-Ce document n'est pas réellement une documentation mais plutot ​une description de ce que j'​ai ​du 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. 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 ...)+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 ===== ===== Contexte =====
  
   * Mon réseau   * Mon réseau
-    * un ordinateur avec 2 cartes réseau : La première carte (eth0) est connecté ​à une freebox ​et la seconde (eth1) à un hub ethernet. Cet ordinateur est "la passerelle"​. C'est par son intermédiaire que le "​client"​ sera connecté à internet+    * un ordinateur avec 2 cartes réseau : la première carte (eth0) est connectée ​à une Freebox ​et la seconde (eth1) à un hub ethernet. Cet ordinateur est "la passerelle"​. C'est par son intermédiaire que le "​client"​ sera connecté à Internet
-    * un ordinateur avec 1 carte réseau reliée au hub : C'est le "​client"​ que l'on veut relier à internet+    * un ordinateur avec 1 carte réseau reliée au hub : c'est le "​client"​ que l'on veut relier à Internet
-    * J'ai pris comme plage d'​adresses pour mon réseau interne 10.0.0.0/8 c'est à dire que toutes les adresses du réseau interne commencent par 10.+    * J'ai pris comme plage d'​adresses pour mon réseau interne 10.0.0.0/8 c'est-à-dire que toutes les adresses du réseau interne commencent par 10.
  
   * Pré-requis   * Pré-requis
Ligne 31: Ligne 26:
  
   * Logiciels utilisés :   * Logiciels utilisés :
-    * dhcp3-server : Serveur dhcp qui permet de ne pas avoir se soucier de la configuration réseau sur les postes clients. +    * dhcp3-server : Serveur dhcp qui permet de ne pas avoir à se soucier de la configuration réseau sur les postes clients. 
-    * shorewall : Un firewall. Les règles sont faciles à mettre. Bien sur il utilise iptables pour le filtrage. +    * shorewall : un firewall. Les règles sont faciles à mettre. Bien sûr il utilise iptables pour le filtrage. 
-    * dansguardian : C'est lui qui fait le filtrage de tout ce qui s'​affichera dans un navigateur sur les postes clients.+    * dansguardian : c'est lui qui fait le filtrage de tout ce qui s'​affichera dans un navigateur sur les postes clients.
     * squid : dansguardian fait le filtrage mais il a besoin de squid pour aller chercher les pages autorisées.     * squid : dansguardian fait le filtrage mais il a besoin de squid pour aller chercher les pages autorisées.
 +
  
  
Ligne 40: Ligne 36:
  
 === Le plus simple : dhcp3-server === === Le plus simple : dhcp3-server ===
 +FIXME peut-être peut-on s'en passer si les PC "​clients"​ sont connecter à la box internet !\\
 +<​del>​[[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt>​dhcp3-server]]**</​del>​ le paquet n'est plus dans les dépôts -> il se nomme depuis quelques années [[:​isc-dhcp-server]]
  
-Lors de l'​installation ​+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.
-<​code>​ +
-sudo apt-get install dhcp3-server +
-</​code>​ +
-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//​ :+Après ​l'​avoir installé, il n'y a que peu de configuration à faire dans ///​etc/​dhcp3/​dhcpd.conf//​ :
  
-  * En début de fichier, il y a deux lignes ​adapter : <​code>​option domain-name "​chezmoi.com";​+  * En début de fichier, il y a deux lignes ​à adapter : <​code>​option domain-name "​chezmoi.com";​
 option domain-name-servers 212.27.54.252,​ 212.27.39.135;​ option domain-name-servers 212.27.54.252,​ 212.27.39.135;​
-</​code>​\\ Bien sur, vous pouvez mettre ce que vous voulez pour domain-name à la place de "​chezmoi.com"​. Cette information ne sera pas vraiment utilisée.\\ Sur la deuxième ligne, vous devez mettre les adresses ​ip fournies par votre fournisseur d'​accès. On peu les trouver dans ///​etc/​resolv.conf//​ une fois que vous êtres ​connecté à Internet. Exemple, chez moi il y a<​code>​+</​code>​\\ Bien sûr, vous pouvez mettre ce que vous voulez pour domain-name à la place de "​chezmoi.com"​. Cette information ne sera pas vraiment utilisée.\\ Sur la deuxième ligne, vous devez mettre les adresses ​IP fournies par votre fournisseur d'​accès. On peut les trouver dans ///​etc/​resolv.conf//​ une fois que vous êtes connecté à Internet. Exemple, chez moi il y a<​code>​
 root@bozo:/ # cat /​etc/​resolv.conf root@bozo:/ # cat /​etc/​resolv.conf
 nameserver 212.27.54.252 nameserver 212.27.54.252
Ligne 60: Ligne 54:
   range 10.0.10.1 10.0.10.254;​   range 10.0.10.1 10.0.10.254;​
   option routers 10.0.0.1;   option routers 10.0.0.1;
-}</​code>​\\ La premiere ​ligne renseigne le serveur dhcp sur l'​ensemble du réseau : Là, les adresses ​irons de 10.0.0.0 ​ à 10.255.255.255.\\ La seconde ligne indique la plage d'​adresses qu'il peut utiliser. Arbitrairement,​ j'ai mis de 10.0.10.1 à 10.0.10.254.\\ La troisième ligne, enfin, est l'​adresse de la passerelle. C'est cette adresse ​ip là que vous devez donner à votre interface eth1.\\ Pour info, j'ai ajouté en plus :<​code>​host superkid {+}</​code>​\\ La première ​ligne renseigne le serveur dhcp sur l'​ensemble du réseau : Là, les adresses ​iront de 10.0.0.0 ​ à 10.255.255.255.\\ La seconde ligne indique la plage d'​adresses qu'il peut utiliser. Arbitrairement,​ j'ai mis de 10.0.10.1 à 10.0.10.254.\\ La troisième ligne, enfin, est l'​adresse de la passerelle. C'est cette adresse ​IP là que vous devez donner à votre interface eth1.\\ Pour info, j'ai ajouté en plus :<​code>​host superkid {
   hardware ethernet 00:​d0:​09:​e9:​ba:​8b;​   hardware ethernet 00:​d0:​09:​e9:​ba:​8b;​
   fixed-address 10.0.10.1;   fixed-address 10.0.10.1;
 } }
-</​code>​\\ ​aprés ​avoir récupéré l'​adresse ​mac de mon fils. Ainsi, je peux forcer son adresse ce qui me permet de mettre dans mon /​etc/​hosts<​code>​+</​code>​\\ ​après ​avoir récupéré l'​adresse ​MAC de mon fils. Ainsi, je peux forcer son adresse ce qui me permet de mettre dans mon /​etc/​hosts<​code>​
 10.0.10.1 superkid 10.0.10.1 superkid
-</​code>​\\ Sinon j'​aurais été incapable, à de savoir l'​adresse qu'il utilise à tout moment ...+</​code>​\\ Sinon j'​aurais été incapable de savoir l'​adresse qu'il utilise à tout moment ...
  
-voilà. C'est fait pour le serveur dhcp. plus qu'à le démarrer : +Voilà. C'est fait pour le serveur dhcp. plus qu'à le démarrer :
 <​code>​sudo /​etc/​init.d/​dhcp3-server start</​code>​ <​code>​sudo /​etc/​init.d/​dhcp3-server start</​code>​
  
-(Pour ceux qui veulent aller plus loin, on pourrait améliorer un peu en configuration un cache dns ...)+(Pour ceux qui veulent aller plus loin, on pourrait améliorer un peu en configuration un cache DNS ...)
  
 ===  dansguardian + squid === ===  dansguardian + squid ===
  
-une fois les deux installés, ​+une fois les deux installés,
 <​code>​ <​code>​
 sudo apt-get install squid dansguardian sudo apt-get install squid dansguardian
 </​code>​ </​code>​
-voici ce qu'il faut configurer+voici ce qu'il faut configurer ​:
  
 ==  squid == ==  squid ==
-La configuration est entiérement ​dans le fichier ///​etc/​squid/​squid.conf//​. +La configuration est entièrement ​dans le fichier ///​etc/​squid/​squid.conf//​. 
-j'ai ajoutéà la fin :+j'ai ajouté à la fin :
 <​code>​ <​code>​
 httpd_accel_host virtual httpd_accel_host virtual
Ligne 91: Ligne 85:
 http_access allow all http_access allow all
 </​code>​ </​code>​
-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.+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.
  
-j'ai également commenté+**Sous Karmic** 
 +Seul le paramètre ''​http_access allow all''​ est nécessaire. 
 + 
 +j'ai également commenté ​:
 <​code>​ <​code>​
 #​http_access deny all #​http_access deny all
 </​code>​ </​code>​
  
-== dansguardian ​==+== DansGuardian ​==
 Il n'y a que trois lignes de /​etc/​dansguardian/​dansguardian.conf à modifier : Il n'y a que trois lignes de /​etc/​dansguardian/​dansguardian.conf à modifier :
 <​code>​ <​code>​
Ligne 106: Ligne 103:
 </​code>​ </​code>​
  
-La premiére ​indique le port sur lequel ​dansquardian ​écoute. +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).+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. 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.+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 / Preferences ​/ Général / Connexion / Configuration manuelle du proxy ...) puis de naviguer.  +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.+Essayez d'​aller sur un site "peu recommandable"​ : L’accès ​devrait être interdit.
  
-J'ai ensuite modifié /etc/shorewall/​languages/​french/​template.html afin de personnaliser le message que recevra mon fils.+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é. 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'ajoute ​quoi que ce soit car les mots clés bannis ​semble ​plutôt ​exhasutifs+Personnellement,​ je n'ai jamais eu besoin d'ajouter ​quoi que ce soit car les mots clés bannis ​semblent ​plutôt ​exhaustifs
-Le seules ​opération ​que j'​ai ​du faire sont d'​ajouter certains sites.+Les seules ​opérations ​que j'​ai ​dû faire sont d'​ajouter certains sites.
  
  
Ligne 126: Ligne 123:
  
 Je ne vais pas refaire la doc de ce firewall : il y en a pas mal sur shorewall.net. 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"​.+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 sais plus, ca fait longtemps) et qu'il faut les télécharger du site de shorewall.\\ +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\\ +J'ai pris celle-là : http://​www1.shorewall.net/​pub/​shorewall/​Samples/​samples-2.2.4/​two-interfaces.tgz\\ 
-De plus, lié à cette config, il y a une documentation en français à l'​adresse http://​www.shorewall.net/​two-interface_fr.html.\\+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 ​:+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 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.\\ Tout le paramétrage du firewall consiste à mettre des règles sur les flux entre ces zones.\\
-Pour cela, il faut +Pour cela, il faut : 
-  * donner des règles "par défaut"​ entre les zones. Par exemple, tout ce qui vient d'internet ​est, par défaut, rejeté. +  * donner des règles "par défaut"​ entre les zones. Par exemple, tout ce qui vient d'Internet ​est, par défaut, rejeté. 
-  * donner des exceptions à ces regles ​par défaut.+  * donner des exceptions à ces règles ​par défaut.
  
-tous les fichiers de configuration sont dans /​etc/​shorewall.\\ +Tous les fichiers de configuration sont dans /​etc/​shorewall.\\ 
-En particulier,​ on a +En particulier,​ on a : 
-  * interface, zones : permettent de définir les zones. Je n'ai absolument pas modifié ​ceux fournis ​dans les fichiers trouvés à l'​adresse indiquée plus haut. Au pire, il vous faudra peut-être modifier "​interfaces"​ si vous avez inversé eth0 et eth1 ... +  * interface, zones : permettent de définir les zones. Je n'ai absolument pas modifié ​celles fournies ​dans les fichiers trouvés à l'​adresse indiquée plus haut. Au pire, il vous faudra peut-être modifier "​interfaces"​ si vous avez inversé eth0 et eth1 ... 
-  * policy : celui là, je l'ai un peu modifié. Par défaut, il permet au réseau local de tout faire sur internet et ne permet pas à la passerelle d'​accéder à intenet+  * policy : celui-là, je l'ai un peu modifié. Par défaut, il permet au réseau local de tout faire sur internet et ne permet pas à la passerelle d'​accéder à Internet
-Hors, 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.+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é :<​code>​ Ainsi, j'ai changé :<​code>​
 #​SOURCE ​        ​DEST ​           POLICY ​         LOG LEVEL #​SOURCE ​        ​DEST ​           POLICY ​         LOG LEVEL
Ligne 155: Ligne 152:
 net             ​all ​            DROP net             ​all ​            DROP
 all             ​all ​            ​REJECT all             ​all ​            ​REJECT
-</​code>​\\ Vous remarquerez que j'ai supprimé les logs des rejets (deux dernieres ligne). C'est pas bien, mais ça me polluait les logs systeme.\\ 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 ​... .+</​code>​\\ 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 ​... .
   * rules : c'est là qu'on dit, au cas par cas, ce qui est autorisé (puisque tout le reste est interdit ...). \\ Par rapport à ce qu'il y a par défaut, j'ai juste :<​code>​   * rules : c'est là qu'on dit, au cas par cas, ce qui est autorisé (puisque tout le reste est interdit ...). \\ Par rapport à ce qu'il y a par défaut, j'ai juste :<​code>​
-Fait en sorte que les clients qui accedent ​au port 80 (pour aller vers internet) soient redirigés vers dansguardian ​:+fait en sorte que les clients qui accèdent ​au port 80 (pour aller vers Internet) soient redirigés vers DansGuardian ​:
 REDIRECT ​       loc             ​8080 ​           tcp     80 REDIRECT ​       loc             ​8080 ​           tcp     80
-Fait en sorte que les clients puissent faire des résolutions de nom (Ce serait un peu différent si on avait un cache DNS ...):+fait en sorte que les clients puissent faire des résolutions de nom (Ce serait un peu différent si on avait un cache DNS ...):
 ACCEPT ​         loc             ​net ​            ​udp ​    53 ACCEPT ​         loc             ​net ​            ​udp ​    53
 </​code>​ </​code>​
  
-C'est fini. Plus qu'à démarrer ​shorewall ​(/​etc/​init.d/​shorewall start) et tester.+C'est fini. Plus qu'à démarrer ​Shorewall ​(/​etc/​init.d/​shorewall start) et tester. 
 + 
 +==== annexe ==== 
 + 
 +===== Liens externes ===== 
 + 
 +[[:​dansguardian_sans_serveur|Contrôle parental simple avec DansGuardian]] 
 +Permet d'​utiliser Dansguardian directement sur un PC client 
 + 
 +[[https://​ubuntuforums.org/​showpost.php?​p=4686738&​postcount=3|Si utilisation de FireStarter]]
  
 ---- ----
  • dansguardian.1173959902.txt.gz
  • Dernière modification: Le 20/02/2008, 00:24
  • (modification externe)