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
Prochaine révision Les deux révisions suivantes
tutoriel:comment_mettre_en_place_un_controle_parental [Le 17/09/2021, 07:37]
82.64.139.120 [ctparental]
tutoriel:comment_mettre_en_place_un_controle_parental [Le 18/10/2022, 10:46]
88.126.127.44 suppression d'une virgule en plein milieu d'un mot :o)
Ligne 1: Ligne 1:
- {{tag> éducation sécurité internet tutoriel contrôle_parental}}+{{tag> éducation sécurité internet tutoriel contrôle_parental}}
 ---- ----
  
Ligne 12: Ligne 12:
   - accès à l'​internet.   - accès à l'​internet.
  
-Les solutions évoquées ci-après peuvent concerner ces deux aspects ou seulement l'un des deux. +Les solutions évoquées ci-après peuvent concerner ces deux aspects ou seulement l'un des deux.
  
 =====Session et internet===== =====Session et internet=====
Ligne 25: Ligne 25:
 ==== ctparental ​ ==== ==== ctparental ​ ====
  
-CTparental est un Contrôle parental ​permettant à des utilisateurs ayant juste assimilé les bases des lignes de commandes ​ .+CTparental est un Contrôle parental ​qui peut être mis en place par des utilisateurs ayant juste assimilé les bases des lignes de commandes.
  
-Basé sur dnsmasq ,  [[http://​e2guardian.org/​cms/​|e2guardian]] , privoxy , iptables-persistent ​et la [[http://​dsi.ut-capitole.fr/​blacklists/​|blackliste de l’université de Toulouse]].+Il est basé sur dnsmasq ​ou [[https://​dnscrypt.info/​|dnscrypt-proxy]] a partir de la 5.0.0 ,  [[http://​e2guardian.org/​cms/​|e2guardian]] , privoxy , nftable ​et la [[http://​dsi.ut-capitole.fr/​blacklists/​|blackliste de l’université de Toulouse]].
  
 Bien sûr il faut créer des comptes sans droit d'​administration pour vos enfants. Bien sûr il faut créer des comptes sans droit d'​administration pour vos enfants.
  
-Si vos enfants ont passé les 10 ans il est conseillé de mettre un mot de passe bios et de désactiver le boot sur support USB ou CDROM et un mot de passe sur grub aussi.+Si vos enfants ont passé les 10 ans il est conseillé de mettre un mot de passe biosde désactiver le boot sur support USB ou CDROMet de mettre en place un mot de passe sur grub aussi.
  
 Mais ne comptez pas les arrêter au-delà de 16 ans, ils sauront comment passer outre tout ça, bien que ça les ennuiera un petit moment donc autant les faire réfléchir un peu. Mais ne comptez pas les arrêter au-delà de 16 ans, ils sauront comment passer outre tout ça, bien que ça les ennuiera un petit moment donc autant les faire réfléchir un peu.
Ligne 38: Ligne 38:
  
 === Installation === === Installation ===
- 
 Il est maintenant disponible sous forme de fichier deb. Il est maintenant disponible sous forme de fichier deb.
  
-il faut **installer** avec  [[/​gdebi|gdebi]] en ligne de commande !! ,seul la méthode avec gdebi fonctionne ​ [[/​software-center|software-center]] ​ plante la plupart du temps . +il faut **installer** avec  [[/​gdebi|gdebi]] en ligne de commande !!.
- +
-[[https://​gitlab.com/​marsat/​CTparental/​uploads/​381a8cc7bb638e3ca3f3100fb89f6659/​ctparental_ubuntu14.04_4.22.08-1.0_all.deb|v-4.22.08-1.0 pour ubuntu 14.04]] ​  +
- +
-[[https://​gitlab.com/​marsat/​CTparental/​uploads/​ee6ed0f511429db4cb4bac9f294d5abb/​ctparental_ubuntu16.04_lighttpd_4.45.09-1.0_all.deb|v-4.45.09-1.0 pour ubuntu 16.04]]  ​+
  
-[[https://​gitlab.com/​marsat/​CTparental/​uploads/​6fe05d78f6daab865f6cece30b060091/​ctparental_ubuntu18.04_lighttpd_4.45.09-1.0_all.deb|v-4.45.09-1.0 pour ubuntu ​17.xx et 18.04]] ​+[[https://​gitlab.com/​ctparentalgroup/​CTparental/​uploads/​6fe05d78f6daab865f6cece30b060091/​ctparental_ubuntu18.04_lighttpd_4.45.09-1.0_all.deb|v-4.45.09-1.0 pour ubuntu 18.04]]
  
-[[https://​gitlab.com/​marsat/​CTparental/​uploads/​01ee82bd998215b5ffb00ecc0905f884/ctparental_mxlinux19.04_lighttpd_4.45.09-1.0_all.deb|v-4.45.09-1.0 pour ubuntu ​18.10 et 19.04]] +[[https://​gitlab.com/​ctparentalgroup/​CTparental/​uploads/​db3568664ea2be3b5af6fe9b4ce52fac/ctparental-a-lt_debian10_ubuntu20.04_5.1.03-1.0_all.deb|v-5.1.03-1.0 pour ubuntu ​20.04]]
  
-[[https://​gitlab.com/​marsat/​CTparental/​uploads/​cb727f1ee73a728668b0b5b0530166d2/ctparental_ubuntu20.04_lighttpd_4.45.09-1.0_all.deb|v-4.45.09-1.0 pour ubuntu ​20.04]] +[[https://​gitlab.com/​ctparentalgroup/​CTparental/​uploads/​5e5b99b9b23521719b7bc65c188f1dde/ctparental-a-lt_debian11_ubuntu21.10_5.1.03-1.0_all.deb|v-5.1.03-1.0 pour ubuntu ​22.04]]
  
-les identifiants et mots de passe seront définis pendant cette procédure sauf pour l’installe par [[/software-center|software-center]]  ​(fortement déconseillé) et pour ubuntu14.04 ou ceux ci sont réciproquement **admin** et **admin**.+les identifiants et mots de passe seront définis pendant cette procédure sauf pour l’installe par [[:gnome-software|GNOME Logiciels]]   ​ceux ci sont réciproquement **admin** et **admin**.
  
 <note important>​ <note important>​
Ligne 61: Ligne 56:
 </​note>​ </​note>​
  
-<​note>​Par la suite on pourra les redéfinir en lançant la commande** sudo CTparental -uhtml** dans un terminal. On pourra aussi activer le mot de passe grub2 pour les menus sensibles avec la commande ** sudo CTparental -grubPon** ​+<​note>​Par la suite on pourra les redéfinir en lançant la commande** sudo CTparental -uhtml** dans un terminal. On pourra aussi activer le mot de passe grub2 pour les menus sensibles avec la commande ** sudo CTparental -grubPon**
 </​note>​ </​note>​
 <note important>​Il faut désinstaller les versions précédentes avant installation de nouvelle versions , <note important>​Il faut désinstaller les versions précédentes avant installation de nouvelle versions ,
Ligne 82: Ligne 77:
 </​note>​ </​note>​
  
-<note important>​Pour UBUNTU 16.04 : Dans le cas ou lighttpd n'​arrive pas à démarrer en fin d'​installation et où la commande ​+<note important>​Pour UBUNTU 16.04 : Dans le cas ou lighttpd n'​arrive pas à démarrer en fin d'​installation et où la commande
    ​journalctl -xe    ​journalctl -xe
 renvoie: renvoie:
Ligne 132: Ligne 127:
 <​note>​ [[https://​wiki.nftables.org/​wiki-nftables/​index.php/​Main_Page|nftables]] le remplacent d'​iptables est utilisé a partir de ubuntu18.10</​note>​ <​note>​ [[https://​wiki.nftables.org/​wiki-nftables/​index.php/​Main_Page|nftables]] le remplacent d'​iptables est utilisé a partir de ubuntu18.10</​note>​
  
-Pour l'​installer manuellement et les dernières infos c'est par [[https://​gitlab.com/​marsat/​CTparental/​wikis/​installation-fr|ici]]+Pour l'​installer manuellement et les dernières infos c'est par [[https://​gitlab.com/​ctparentalgroup/​CTparental/​wikis/​installation-fr|ici]]
  
-Dépôt GIT : [[https://​gitlab.com/​marsat/​CTparental]]+Dépôt GIT : [[https://​gitlab.com/​ctparentalgroup/​CTparental]]
  
 **Explication des différents paramètres pour une utilisation en ligne de commandes. ** **Explication des différents paramètres pour une utilisation en ligne de commandes. **
Ligne 153: Ligne 148:
  
 ==== Solution radicale ==== ==== Solution radicale ====
-Soit une machine sur laquelle sont existants un compte disposant des droits d'​administration,​ d'​autres comptes sans droits d'​administration et parmi ceux-ci au moins un pour lequel l'​accès à internet n'a pas lieu d'​être contrôlé. Pour fixer les idées, mettons Adulte00, Adulte01, Progeniture00 et Progeniture01. Mettons que Adulte00 et 01 décident d'un commun accord que le contrôle le plus simple et le plus efficace tout en étant le moins demandeur en ressource humaine consiste en la solution radicale d'​absence d'​accès au net tout court pour Progéniture00 et 01. Dans ce cas, l'​administrateur peut aller dans les propriétés de la connexion, qu'​elle soit filaire ou wifi, et décocher la case en bas à gauche "​Disponible pour tous les utilisateurs"​. Problème : le compte non-admin pour lequel l'​accès à internet n'a pas lieu d'​être contrôlé (//i.e.// Adulte00 ou (//i.e.// xor) 01) se retrouve lui aussi sans connexion. Il faut alors se connecter avec ce compte et activer la connexion, ce qui devrait demander le mot de passe admin. A partir de ce moment, ce compte devrait avoir accès au réseau à chaque login. Mais là encore, tous les autres comptes auront accès à la connexion ... Comme précédemment,​ il suffit de modifier les propriétés de la connexion en décochant la case en bas à gauche "​Disponible pour tous les utilisateurs"​. ​+Soit une machine sur laquelle sont existants un compte disposant des droits d'​administration,​ d'​autres comptes sans droits d'​administration et parmi ceux-ci au moins un pour lequel l'​accès à internet n'a pas lieu d'​être contrôlé. Pour fixer les idées, mettons Adulte00, Adulte01, Progeniture00 et Progeniture01. Mettons que Adulte00 et 01 décident d'un commun accord que le contrôle le plus simple et le plus efficace tout en étant le moins demandeur en ressource humaine consiste en la solution radicale d'​absence d'​accès au net tout court pour Progéniture00 et 01. Dans ce cas, l'​administrateur peut aller dans les propriétés de la connexion, qu'​elle soit filaire ou wifi, et décocher la case en bas à gauche "​Disponible pour tous les utilisateurs"​. Problème : le compte non-admin pour lequel l'​accès à internet n'a pas lieu d'​être contrôlé (//i.e.// Adulte00 ou (//i.e.// xor) 01) se retrouve lui aussi sans connexion. Il faut alors se connecter avec ce compte et activer la connexion, ce qui devrait demander le mot de passe admin. A partir de ce moment, ce compte devrait avoir accès au réseau à chaque login. Mais là encore, tous les autres comptes auront accès à la connexion ... Comme précédemment,​ il suffit de modifier les propriétés de la connexion en décochant la case en bas à gauche "​Disponible pour tous les utilisateurs"​.
  
 **En résumé** : activation de la connexion pour chacun des adultes et modification en décochant la case "​Disponible pour tous les utilisateurs"​. Rien du tout pour la progéniture. **En résumé** : activation de la connexion pour chacun des adultes et modification en décochant la case "​Disponible pour tous les utilisateurs"​. Rien du tout pour la progéniture.
 ==== OpenDNS FamilyShield ==== ==== OpenDNS FamilyShield ====
  
-Cette méthode est la plus simple de toutes ! +Cette méthode est la plus simple de toutes !
  
 Avec OpenDNS FamilyShield,​ les filtres appliqués sont les mêmes pour tous (pas de paramétrage possible). Il suffit d'​utiliser comme serveurs DNS 208.67.222.123 et 208.67.220.123 et le tour est joué. Ces DNS filtrent automatiquement les sites adultes. Il suffit donc de mettre cette connexion par défaut pour tout le monde, et rajouter éventuellement des connexions avec d'​autres serveurs DNS pour chacun des utilisateurs qui n'ont pas besoin de filtrage; Avec OpenDNS FamilyShield,​ les filtres appliqués sont les mêmes pour tous (pas de paramétrage possible). Il suffit d'​utiliser comme serveurs DNS 208.67.222.123 et 208.67.220.123 et le tour est joué. Ces DNS filtrent automatiquement les sites adultes. Il suffit donc de mettre cette connexion par défaut pour tout le monde, et rajouter éventuellement des connexions avec d'​autres serveurs DNS pour chacun des utilisateurs qui n'ont pas besoin de filtrage;
Ligne 187: Ligne 182:
   - cocher toutes les options des paramètres principaux, et notamment l'​option "​empêcher la désactivation ou la désinstallation"​   - cocher toutes les options des paramètres principaux, et notamment l'​option "​empêcher la désactivation ou la désinstallation"​
  
-__Deux remarques :__ +__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"​. 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"​.
Ligne 262: Ligne 257:
  
 Dans le cas qui nous intéresse, le contrôle parental, on peut utiliser les filtres suivants : Dans le cas qui nous intéresse, le contrôle parental, on peut utiliser les filtres suivants :
-  * Autoriser l'​accès uniquement à une liste de sites (liste blanche). ​ +  * Autoriser l'​accès uniquement à une liste de sites (liste blanche).
   * Bloquer l'​accès à une série de domaines (liste noire).   * Bloquer l'​accès à une série de domaines (liste noire).
   * Bloquer les pages dont l'URL contient un mot interdit.   * Bloquer les pages dont l'URL contient un mot interdit.
  
-La configuration a lieu en deux temps. On crée d'​abord les ACL correspondants : +La configuration a lieu en deux temps. On crée d'​abord les ACL correspondants :
  
   acl whitelist dstdomain "/​etc/​squid3/​whitelist"​   acl whitelist dstdomain "/​etc/​squid3/​whitelist"​
Ligne 278: Ligne 273:
   http_access deny filtre_reg   http_access deny filtre_reg
  
-Squid applique les filtres dans l'​ordre. Le premier filtre vérifié s'​applique et pas les suivants. ​+Squid applique les filtres dans l'​ordre. Le premier filtre vérifié s'​applique et pas les suivants.
 Il faut donc prendre garde à l'​ordre dans lequel on les écrit. Il faut donc prendre garde à l'​ordre dans lequel on les écrit.
  
 Ici, le filtrage pour la whitelist est placé avant celui de la blacklist. Ici, le filtrage pour la whitelist est placé avant celui de la blacklist.
-Ainsi, si un domaine se trouve dans les deux listes, le site ne sera pas bloqué ​+Ainsi, si un domaine se trouve dans les deux listes, le site ne sera pas bloqué
 car Squid appliquera le premier filtre. car Squid appliquera le premier filtre.
  
  
-Pour finir, si aucune des règles n'est vérifiée on autorise l'​accès : +Pour finir, si aucune des règles n'est vérifiée on autorise l'​accès :
   http_access allow localhost   http_access allow localhost
 (avec localhost un ACL du type acl localhost src 127.0.0.1/​32) (avec localhost un ACL du type acl localhost src 127.0.0.1/​32)
Ligne 318: Ligne 313:
 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 : 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 :
  
-<​code>​sudo ​gedit /​etc/​cron.weekly/​squidguard_blacklists</​code>​+<​code>​sudo ​nano /​etc/​cron.weekly/​squidguard_blacklists</​code>​
 et inscrivez-y les lignes suivantes : et inscrivez-y les lignes suivantes :
 <​code>​ <​code>​
Ligne 417: Ligne 412:
 <note important>​Si Squid ne démarre pas, et que /​var/​log/​squid3/​cache.log signale le problème "The url_rewriter helpers are crashing too rapidly",​ c'est que SquidGuard ne répond pas assez vite. Ceci est probablement dû à un thème contenant des expressions régulières (par exemple la base redirectors). Dans ce cas, essayer de mettre moins de thèmes dans l'​ACL</​note>​ <note important>​Si Squid ne démarre pas, et que /​var/​log/​squid3/​cache.log signale le problème "The url_rewriter helpers are crashing too rapidly",​ c'est que SquidGuard ne répond pas assez vite. Ceci est probablement dû à un thème contenant des expressions régulières (par exemple la base redirectors). Dans ce cas, essayer de mettre moins de thèmes dans l'​ACL</​note>​
  
-Maintenant il faut générer la base de données avec la commande suivante : +Maintenant il faut générer la base de données avec la commande suivante :
  
   sudo squidGuard -C all   sudo squidGuard -C all
Ligne 458: Ligne 453:
 === Démarrage de Squid === === 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 : +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   sudo chown -R proxy:proxy /etc/squid /​var/​log/​squid /​var/​spool/​squid /​usr/​lib/​squid /​usr/​sbin/​squid /​var/​lib/​squidguard
Ligne 503: Ligne 498:
 <code bash> <code bash>
 $ sudo cp /​etc/​resolv.conf /​etc/​resolv.conf.auto $ sudo cp /​etc/​resolv.conf /​etc/​resolv.conf.auto
-$ gksudo ​gedit /​etc/​dhcp3/​dhclient.conf+$ gksudo ​nano /​etc/​dhcp3/​dhclient.conf
 # Ajoutez la ligne suivante au document # Ajoutez la ligne suivante au document
 prepend domain-name-servers 208.67.222.222,​208.67.220.220;​ prepend domain-name-servers 208.67.222.222,​208.67.220.220;​
Ligne 526: Ligne 521:
 « opendnslogin » est à remplacer par le login de votre compte OpenDNS « opendnslogin » est à remplacer par le login de votre compte OpenDNS
  
-« opendnspassword » est à remplacer par le mot de passe de votre compte OpenDNS ​+« opendnspassword » est à remplacer par le mot de passe de votre compte OpenDNS
  
 == avec ddclient == == avec ddclient ==
Ligne 545: Ligne 540:
 </​file>​ </​file>​
 « opendnslogin » est à remplacer par le login de votre compte OpenDNS « opendnslogin » est à remplacer par le login de votre compte OpenDNS
-« opendnspassword » est à remplacer par le mot de passe de votre compte OpenDNS ​+« opendnspassword » est à remplacer par le mot de passe de votre compte OpenDNS
  
  
Ligne 569: Ligne 564:
 Vérifiez que run_daemon est bien sur true Vérifiez que run_daemon est bien sur true
  
-vous pouvez tester le client avec +vous pouvez tester le client avec
 <code bash> <code bash>
 sudo ddclient -v sudo ddclient -v
 </​code>​ </​code>​
  
-et relancer le daemon ​+et relancer le daemon
 <code bash> <code bash>
 sudo /​etc/​init.d/​ddclient restart sudo /​etc/​init.d/​ddclient restart
Ligne 580: Ligne 575:
  
 === OpenDNS et session utilisateur === === OpenDNS et session utilisateur ===
-Il est possible de faire en sorte que le filtrage ne s'​applique que si la session d'un utilisateur bien défini est ouverte. ​+Il est possible de faire en sorte que le filtrage ne s'​applique que si la session d'un utilisateur bien défini est ouverte.
  
 Pour cela il faut créer un script bash et deux fichiers DNS (resolv), un pour les utilisateurs non restreints et un pour l'​utilisateur à restreindre. Pour cela il faut créer un script bash et deux fichiers DNS (resolv), un pour les utilisateurs non restreints et un pour l'​utilisateur à restreindre.
Ligne 588: Ligne 583:
 Créer le fichier /​etc/​resolv.child : Créer le fichier /​etc/​resolv.child :
 <code bash> <code bash>
-$ sudo gedit /​etc/​resolv.child+$ sudo nano /​etc/​resolv.child
 </​code>​ </​code>​
 avec les lignes suivantes : avec les lignes suivantes :
Ligne 612: Ligne 607:
 Créer le fichier /​etc/​resolv.adult : Créer le fichier /​etc/​resolv.adult :
 <code bash> <code bash>
-$ sudo gedit /​etc/​resolv.adult+$ sudo nano /​etc/​resolv.adult
 </​code>​ </​code>​
 Avec les lignes suivantes : Avec les lignes suivantes :
Ligne 636: Ligne 631:
 $ sudo chmod 644 /​etc/​resolv.adult $ sudo chmod 644 /​etc/​resolv.adult
 </​code>​ </​code>​
-Créer le fichier /​usr/​sbin/​opendns : +Créer le fichier /​usr/​sbin/​opendns :
 <code bash> <code bash>
-$ sudo gedit /​usr/​sbin/​opendns+$ sudo nano /​usr/​sbin/​opendns
 </​code>​ </​code>​
 avec les lignes suivantes : avec les lignes suivantes :
Ligne 658: Ligne 653:
 fi fi
 </​file>​ </​file>​
-A la ligne +A la ligne
  
 if users | grep -c "​child"​ > /dev/null ; then if users | grep -c "​child"​ > /dev/null ; then
Ligne 701: Ligne 696:
   * [[https://​addons.mozilla.org/​fr/​firefox/​addon/​11595|eXtension broozi]]   * [[https://​addons.mozilla.org/​fr/​firefox/​addon/​11595|eXtension broozi]]
  
-  * [[http://​forum.ubuntu-fr.org/​viewtopic.php?​id=167998|Discussion "​Contròle parental et IPtables"​ sur le forum ubuntu-fr]]+  * [[https://​forum.ubuntu-fr.org/​viewtopic.php?​id=167998|Discussion "​Contròle parental et IPtables"​ sur le forum ubuntu-fr]]
   * [[:​tutoriel:​restrictions_horaires|Restreindre les plages horaires autorisées pour chaque utilisateur]]   * [[:​tutoriel:​restrictions_horaires|Restreindre les plages horaires autorisées pour chaque utilisateur]]
   * [[https://​github.com/​raf64flo/​parental_control|Scripts shell sur Github pour installer et supprimer le contrôle parental (à adapter, il n'y a pas de paramètres à ce jour)]]   * [[https://​github.com/​raf64flo/​parental_control|Scripts shell sur Github pour installer et supprimer le contrôle parental (à adapter, il n'y a pas de paramètres à ce jour)]]
  • tutoriel/comment_mettre_en_place_un_controle_parental.txt
  • Dernière modification: Le 13/01/2024, 21:50
  • par 82.64.139.120