Contrôle parental

De Le Wiki du Forum-Debian.fr
Aller à la navigation Aller à la recherche

Petit rappel : Le contrôle parental ne doit pas se substituer aux coups d’œil et dialogues avec vos enfants de temps en temps mais apporte un plus.

Je vous propose donc de mettre en place un filtrage directement sur le pc a protéger, à l'aide de :

iptables+dnsmasq+dansguardian+privoxy (Pour le filtrage)

lighttpd (Pour la page de redirection et l'interface d'administration)


Les sources.

Toutes les sources sont sur le site officiel

Installation par le deb :

Téléchargez la dernière version deb correspondant à votre distribution sur https://gitlab.com/marsat/CTparental/-/releases .

il y a 2 branches encore actives du logiciel en fonction des paquets utilisés pour effectuer le filtrages, ce qui permet d’être plus modulable en fonction des machines et distributions utilisées. (à partir des versions versions 5.x.x)

- master = nftables (successeur d'iptables), dnscrypt-proxy (remplaçant dnsmasq), lighttpd ou nginx, privoxy et e2guardian ( successeur de dansguardian ).

- min = nftables = nftables (successeur d'iptables), dnscrypt-proxy (remplaçant dnsmasq), lighttpd ou nginx.

et 5 branches historique, non maintenu qui ce basé sur dnsmasq, dansguardian , iptables .(jusqu'aux versions 4.x.x)

- dnsmasq = nftables (successeur d'iptables), dnsmasq, lighttpd ou nginx, privoxy et e2guardian ( successeur de dansguardian ).

- dnsmasq_min = nftables = nftables (successeur d'iptables), dnsmasq, lighttpd ou nginx.

- iptables = iptables, ipset, dnsmasq, lighttpd ou nginx, privoxy et e2guardian ( successeur de dansguardian ).

- dansguardian = iptables, ipset, dnsmasq, lighttpd, privoxy et dansguardian.

- iptables_min = iptables, ipset,dnsmasq, lighttpd ou nginx.

exemple pour debian9 il y a 4 paquet possible. 2 paquet dérivé de la branche iptables avec lighttpd ou nginx et 2 autres dérivé de la branche iptables_min si l'on veut utiliser moins de ressources.

Pour ceux qui veulent tester en ipv6

c'est possible avec la dernière les version 4.20.x sous debian testing/sid ,
il faudra au préalable s’assurer que son fournisseur d'accès accepte bien l'ipv6 , ce qui n'est malheureusement pas mon cas.

l'ipv6 n'étant pas encore implémentée dans e2guardian , ctparental ne force pas le passage par celui-ci mais attaque directement privoxy.

Une désinstallation avec purge est nécessaire en cas de mise à jour d'une version antérieure.

 # apt-get remove --purge ctparental privoxy e2guardian dansguardian dnsmasq lighttpd
 $ wget -c https://gitlab.com/marsat/CTparental/uploads/d5567eb1a43ffde679193bce87be5f69/ctparental_debian10_lighttpd_4.44.18-1.0_all.deb

Pour tester le filtrage avec un utilisateur non filtré il suffit que celui-ci ajoute le proxy http et https suivant dans son navigateur.
http et https ::1 port 8888

Pour les utilisateurs filtrés c'est automatique, il n'y a rien à faire.

Nettoyage des versions précédentes :

si vous utilisé l'instance dnscrypt-proxy du deb pour vos connexions système il faut installer celui-ci de manière autonome via la commande ci dessous:

 # apt-get install dnscrypt-proxy

cela éviteras la surpression de dnscrypt-proxy durant la procédure de dés-installation de ctparental, et ainsi une perte de connexion système.

 # apt-get autoremove --purge  ctparental clamav-* privoxy lighttpd dansguardian dnsmasq nginx e2guardian
 # rm -rf /etc/CTparental

Installez le deb :

 # gdebi ctparental_*_all.deb

(J'utilise gdebit car cela évite le téléchargement et l'installation manuelle des dépendances.)

Important : Depuis la version 3.92 les paramètres proxy changent automatiquement au premier démarrage de la session, ce qui fait que c'est transparent pour l'utilisateur.
Si après avoir redémarré votre session vous avez encore des problèmes de connexion aux sites https tels que google.com, testez avant tout l'ajout du proxy suivant.
proxy http 127.0.0.1 sur port 8080
proxy https 127.0.0.1 sur port 8080

Pour les versions avant la 3.95-3

Il est conseillé d'ajouter tous les domaines de vos dépôts dans les domaines réhabilités cela peut éviter certaines erreurs quand on utilise su au lieu de su - avant des commandes apt-get aptitude …

Lancez cette ligne de commandes pour les connaître.

  $ cat /etc/apt/sources.list /etc/apt/sources.list.d/* 2>/dev/null | awk -F/ '/^deb/ {print $3}' | sort -u

Pour la version 3.95-3 et supérieure, après l'ajout d'un nouveau dépôt, il faut juste penser à lancer la commande suivante :

  # CTparental -ubl

Pour tester si ça fonctionne faire un ping à partir d'un compte filtré.

  $ su child -c "ping youporn.com"

child est à remplacer par le compte pour lequel vous voulez tester.

doit retourner quelque chose comme ça :

 PING youporn.com (127.0.0.10) 56(84) bytes of data.
 bytes from 127.0.0.10: icmp_req=1 ttl=64 time=0.026 ms

Si l'adresse IP est différente de 127.0.0.10 c'est que le filtrage ne fonctionne pas.

Pour l'aide tapez :

 # CTparental

sans aucun paramètre.

Configuration

Pour les versions 4.20.27 et supérieures on accède à l'interface d'administration par le lien web suivant: https://admin.ct.local

Pour les versions 4.20.26 on accède à l'interface d'administration par le lien web suivant: https://admin.ct.localhost

Pour les versions inférieure à 4.20.26 on accède à l'interface d'administration par le lien web suivant: http://127.0.0.1/CTadmin

Pour les versions 4.20.9 et supérieures dans le Choix des catégories à filtrer ajouter la catégorie ctparental
Pour les versions inférieures ajouter la liste ci dessous dans les Noms de domaine filtrés

Pour les utilisateurs des applications winehq et playonelinux en ctparental versions 4.20.11 et inférieures,
si le proxy système n'est pas pris en compte il faut le paramétrer via la base de registre de votre disque dur virtuel ou par le menu configuration de l’application qui a besoin d'accéder à internet.
Les versions 4.20.12 et supérieures ne sont pas affectées par ce problème.

Par exemple, pour Internet Explorer :

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]

"ProxyEnable"=dword:00000001

"ProxyServer"="http=127.0.0.1:8080;https=127.0.0.1:8080"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap]

"AutoDetect"=dword:00000000

"IntranetName"=dword:00000001

"ProxyByPass"=dword:00000001