Page 1 sur 1

Compte "limité"

Posté : lun. 7 déc. 2015 10:07
par thekod
Bonjour à tous,

Le PC que je viens d'installer en Mint 17.2 Maté devra être utilisé par ma femme et mon fils aîné.
Pour ce dernier, je souhaiterais limiter les heures d'accès au compte en fonction du jour de la semaine.
Avez-vous un truc à me proposer pour cela ?

Par ailleurs, je souhaiterais bloquer l'accès aux sites Internet aux contenus... pas de son âge.
Avez-vous également un truc à me proposer ?

Merci à l'avance !

Re: Compte "limité"

Posté : lun. 7 déc. 2015 10:40
par mpat

Re: Compte "limité"

Posté : lun. 7 déc. 2015 14:31
par thekod
OK, merci.

J'ai un peu potassé la documentation et les liens vers d'autres informations...

Pour ce qui concerne le filtrage de navigation, il est question de se créer un compte OpenDNS.
Est-ce indispensable ?
Pourquoi le faire ?

Si j'ai bien tout suivi, ce n'est que pour télécharger un fichier "update"...
Or, dans le script, les adresses du DNS "libre" et "qui ne traduit que les sites publiables à un enfant" sont en dur.

Ah ! Il s'agit de cette documentation ; chapitre "3.6 - OpenDNS", partie "openDNS et session utilisateur"

Re: Compte "limité"

Posté : lun. 7 déc. 2015 15:05
par mpat
Salut j'ai pas tout lu, vu que je n'ai plus d'enfants ici, mais pour ton filtrage tu devrais regarder chez firefox, ils ont pas mal de filtres.
http://kb.mozillazine.org/Parental_controls

Re: Compte "limité"

Posté : mar. 8 déc. 2015 17:18
par thekod
qwant junior, c'était prévu.

C'est quoi, un compte FireFox ?

Re: Compte "limité"

Posté : lun. 14 déc. 2015 11:34
par thekod
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 :
Image

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 :

Code : Tout sélectionner

sudo nano /etc/resolv.child
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 :

Code : Tout sélectionner

sudo nano /etc/resolv.adult
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 :

Code : Tout sélectionner

sudo nano /usr/sbin/opendns
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 :

Code : Tout sélectionner

sudo visudo
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" :

Code : Tout sélectionner

sudo crontab -e
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

Re: Compte "limité"

Posté : lun. 14 déc. 2015 11:49
par lacktchou
Au moins, cela t'aura beaucoup aidé toi-même en compréhension!

Re: Compte "limité"

Posté : lun. 14 déc. 2015 13:08
par DIIID-Simulation
TheKod,

super restitution, bien détaillée et documentée !

il y a plein d'astuces intéressantes. C'est le genre de restitution que j'essaie de faire pour mes questions posées sur ce forum de façon à ce qu'un visiteur ait en détail la/les solution(s) et la marche à suivre.
Très bon travail, merci pour nous.

Re: Compte "limité"

Posté : lun. 14 déc. 2015 17:54
par zeb
Merci TheKod