Pour finir ce sujet, voici ce que j'ai mis en place !
1) Blocage horaire
Pour cela, je me suis basé sur TimeKpr et
cet article.
J'ai pour cela essayé les différents PPA présentés et seul celui lié à Ubuntu 14.04 a fonctionné.
En revanche, le fait d'installer plusieurs PPA a posé problème lorsque j'ai voulu installer d'autres packages issus d'autres PPA.
Info : toujours virer un PPA incorrect de la liste des sources de packages
Bref, voici ce qui fonctionne :
Code : Tout sélectionner
sudo add-apt-repository ppa:mjasnik/ppa
sudo apt-get update
sudo apt-get install timekpr
Autre chose de surprenant : il ne se passait rien quand je lançais TimeKpr via le menu Mint, ni via la ligne de commande.
Il a fallu redémarrer...
Peut-être que relancer la session était suffisant : vu que cet outil fonctionne en fonction de la session de l'utilisateur, ça peut être logique.
Bref, après redémarrage, j'ai pu lancer l'interface de paramétrage par le menu Mint (fonctionne aussi en ligne de commande).
Interface très simple d'utilisation :
Avec ça, mon fiston ne se connectera pas plus de 2h30 par jour dans le créneau horaire de 9h00 à 20h00.
C'est parfait pour moi !
Notez qu'en cas de punition, il est possible, dans l'onglet "état", de verrouiller le compte complètement...
Et ça fonctionne bien !
2) Blocage des sites douteux
Pour cela, j'ai choisi la méthode "OpenDNS" décrite
dans cet article ; plus précisément
ce chapitre, plus précisément encore dans le paragraphe "OpenDNS et session utilisateur".
Seulement, ce qui est décrit dans ce chapitre n'est valable que si on possède un compte OpenDNS ayant été paramétré pour bloquer certains contenus.
En dehors du fait que je n'ai pas pu trouver où me créer un compte OpenDNS, j'ai découvert sur le site ce qu'ils appellent "OpenDNS FamilyShield" (qui est cité dans l'article en question, sans plus d'explication...
Il s'agit d'un serveur de nom de domaine bloquant tous les domaines "non dignes de l'intérêt familial".
J'ai testé ce serveur de nom de domaine sur mon portable et sur la tablette que mon fiston utilise : ça fonctionne pas mal !!!
Bref !
C'était parti pour mettre en œuvre cette solution...
Parallèlement, j'aime bien que mon fournisseur d'accès à Internet n'en sache pas trop sur moi.
J'ai donc décidé d'utiliser aussi un serveur de nom de domaine OpenDNS pour la navigation non bloquée...
Voici maintenant la procédure !
Créer un fichier de résolution de noms de domaine pour les enfants :
qui contiendra les éléments suivants :
Code : Tout sélectionner
# generated by opendns - resolv.child
# /usr/sbin/opendns
# /etc/resolv.child
# /etc/resolv.adult
# link /etc/NetworkManager/dispatcher.d/opendns
# line opendns in crontab as root (sudo crontab -e)
# line ALL ALL=NOPASSWD:/usr/sbin/opendns in /etc/sudoers (sudo visudo)
nameserver 208.67.222.123
nameserver 208.67.220.123
Il faut le sauvegarder, en changer le propriétaire et en changer les droits :
Code : Tout sélectionner
sudo chown root:root /etc/resolv.child
sudo chmod 644 /etc/resolv.child
Ensuite, il faut créer le fichier de résolution de noms de domaine pour les adultes :
qui contiendra les éléments suivants :
Code : Tout sélectionner
# generated by opendns - resolv.adult
# /usr/sbin/opendns
# /etc/resolv.child
# /etc/resolv.adult
# link /etc/NetworkManager/dispatcher.d/opendns
# line opendns in crontab as root (sudo crontab -e)
# line ALL ALL=NOPASSWD:/usr/sbin/opendns in /etc/sudoers (sudo visudo)
nameserver 208.67.222.222
nameserver 208.67.220.220
Il faut le sauvegarder, en changer le propriétaire et en changer les droits :
Code : Tout sélectionner
sudo chown root:root /etc/resolv.adult
sudo chmod 644 /etc/resolv.adult
Ensuite, il faut créer le fichier qui mettra en place le bon fichier de résolution de noms de domaine en fonction de l'utilisateur qui se connecte :
qui contiendra les éléments suivants :
Code : Tout sélectionner
#!/bin/bash
# /usr/sbin/opendns
# /etc/resolv.child
# /etc/resolv.adult
# link /etc/NetworkManager/dispatcher.d/opendns
# line opendns in crontab as root (sudo crontab -e)
# line ALL ALL=NOPASSWD:/usr/sbin/opendns in /etc/sudoers (sudo visudo)
if users | grep -c "child" > /dev/null ; then
cp /etc/resolv.child /etc/resolv.conf
else
cp /etc/resolv.adult /etc/resolv.conf
fi
en remplaçant "child" par le nom d'utilisateur de l'enfant.
Il faut également le sauvegarder, en changer le propriétaire et en changer les droits :
Code : Tout sélectionner
sudo chown root:root /usr/sbin/opendns
sudo chmod 755 /usr/sbin/opendns
Il faut ensuite permettre aux utilisateurs de lancer ce script en tant que "root" sans avoir à taper de mot de passe.
Pour cela, il faut ouvrir un fichier spécial avec la commande :
et rajouter les lignes suivantes à la fin du fichier :
Code : Tout sélectionner
# Ajout pour la gestion des bloquages de sites par DNS
ALL All=NOPASSWD:/usr/sbin/opendns
Enfin, on rajoute un lien dynamique pour que le script s'exécute à chaque changement d'état du réseau :
Code : Tout sélectionner
sudo ln /usr/sbin/opendns /etc/NetworkManager/dispatcher.d/opendns
Enfin, ajouter une entre dans "cron" pour que le script s'exécute toutes les 10 minutes.
Pour entrer dans la table de "cron" :
et rajouter les lignes suivantes en fin de fichier :
Code : Tout sélectionner
# Ajout pour la gestion des bloquages de sites par DNS
/*10 * * * * /usr/sbin/opendns
Enregistrer et... C'est fini.
J'espère que ce résumé pourra servir à quelqu'un