Différences
Ci-dessous, les différences entre deux révisions de la page.
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 a 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 a 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 a 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]] | ||
---- | ---- |