Contrôle parental pour le pc debian de vos enfants :)

En regardant la doc afin de déterminer le meilleur moyen d’insérer mes extensions, je tombe sur:

[quote]-gcton => créer un group de privilégier ne subisent pas le filtrage.
mais ralenti les ouvertures de sessions, quant on passe d’un user restraint a un qui ne l’est pas
est inversement.[/quote]
Vu que je commence à apprécier iptables, je me dis qu’il y a moyen d’utiliser cet outil pour simplifier la gestion du groupe d’utilisateurs privilégiés, sans avoir à touiller dans la conf des gestionnaires de session pour démarrer / stopper CTparental à chaque bascule d’utilisateur.

Voici l’idée :

  • on ne touche plus à /etc/resolv.conf
  • dnsmasq écoute sur le port 54
  • règle iptables par défaut redirige les requêtes de 53 vers 54 pour forcer l’utilisation de dnsmasq
  • règles iptables complémentaire pour ne pas rediriger les utilisateurs privilégiés.

Voici ce que ça donne pour iptables:

/sbin/iptables -t nat -N ctparental /sbin/iptables -t nat -A OUTPUT -j ctparental if ctoff_entry=$(/bin/grep '^ctoff:' /etc/group); then priviledged_users=$(echo "$ctoff_entry" | /usr/bin/awk -F: '{print $4;}' | /bin/sed 's/,/ /g') for user in $priviledged_users; do /sbin/iptables -t nat -A ctparental -m owner --uid-owner "$user" -p tcp --dport 53 -j ACCEPT /sbin/iptables -t nat -A ctparental -m owner --uid-owner "$user" -p udp --dport 53 -j ACCEPT done fi /sbin/iptables -t nat -A ctparental -p tcp --dport 53 -j DNAT --to 127.0.0.1:54 /sbin/iptables -t nat -A ctparental -p udp --dport 53 -j DNAT --to 127.0.0.1:54

Et pour revenir en arrière :

/sbin/iptables -t nat -D OUTPUT -j ctparental /sbin/iptables -t nat -F ctparental /sbin/iptables -t nat -X ctparental

[quote=“pini”]

Sujet du message:  	Re: Contrôle parental pour le pc debian de vos enfants :slightly_smiling: 	 Répondre en citant le message

En regardant la doc afin de déterminer le meilleur moyen d’insérer mes extensions, je tombe sur:
Citation:
-gcton => créer un group de privilégier ne subisent pas le filtrage.
mais ralenti les ouvertures de sessions, quant on passe d’un user restraint a un qui ne l’est pas
est inversement.

Vu que je commence à apprécier iptables, je me dis qu’il y a moyen d’utiliser cet outil pour simplifier la gestion du groupe d’utilisateurs privilégiés, sans avoir à touiller dans la conf des gestionnaires de session pour démarrer / stopper CTparental à chaque bascule d’utilisateur.

Voici l’idée :

  • on ne touche plus à /etc/resolv.conf
  • dnsmasq écoute sur le port 54
  • règle iptables par défaut redirige les requêtes de 53 vers 54 pour forcer l’utilisation de dnsmasq
  • règles iptables complémentaire pour ne pas rediriger les utilisateurs privilégiés.[/quote]

Tous sa ma l’aire très bien , je savais pas qu’on pouvais associer des règles iptables a un uid , c’est très pratique :slightly_smiling:.
j’ajouterai que sa vas résoudre pas mal de problème de compatibilité sur les autres distributions.
car une grande partie d’entre eux provenaient de ces touillages dans la conf des gestionnaires de session.
en plus sa supprime une dépendance a “resolvconf” , et évite les magouille pour les distribution qui ne l’on pas.
pour le proxy on pourrais aussi le rendre transparent grasse a une règle iptables, dans le même esprit que pour dnsmasq
mais redirigent vers le port d’écoute du serveur proxy, mais je pense que la tu y arriveras mieux que moi.
pour le choix du serveur proxy je pence que tinyproxy + dansguardian et peut être plus adapter que squid car sur des petites configurations, l’ajout d’un serveur squid pourrais ralentir la connexion internet.
voici ce que je compter adapter quant j’avais étudier cette solution.
pilpi.net/journal/2006/03/se … ng-ubuntu/

[quote=“hulk”]
Tous sa ma l’aire très bien , je savais pas qu’on pouvais associer des règles iptables a un uid , c’est très pratique :slightly_smiling:.
j’ajouterai que sa vas résoudre pas mal de problème de compatibilité sur les autres distributions.
car une grande partie d’entre eux provenaient de ces touillages dans la conf des gestionnaires de session.
en plus sa supprime une dépendance a “resolvconf” , et évite les magouille pour les distribution qui ne l’on pas.
pour le proxy on pourrais aussi le rendre transparent grasse a une règle iptables, dans le même esprit que pour dnsmasq
mais redirigent vers le port d’écoute du serveur proxy, mais je pense que la tu y arriveras mieux que moi.
pour le choix du serveur proxy je pence que tinyproxy + dansguardian et peut être plus adapter que squid car sur des petites configurations, l’ajout d’un serveur squid pourrais ralentir la connexion internet.
voici ce que je compter adapter quant j’avais étudier cette solution.
pilpi.net/journal/2006/03/se … ng-ubuntu/[/quote]

Alors le proxy transparent c’est pas possible, car ça implique de faire le ‘man in the middle’ (avec certificat self signed et tout et tout) pour le https.

Pour ce qui est du proxy, je pensais à ‘polipo’. C’est un poil plus lourd que tinyproxy, mais ça me semble un bon compromis. En particulier polipo est compatible avec squidguard. Voici les tailles par outil :

$ apt-cache show tinyproxy polipo squid3 | grep -i size Installed-Size: 218 Size: 87510 Installed-Size: 725 Size: 179444 Installed-Size: 5869 Size: 1798366

Hum oups… J’ai pris trop de café. Je me rends compte que CTparental utilise déjà cette méthode. Désolé pour le bruit ! /o\

[quote]Il y a aussi une solution pour la gestion des créneaux horaires sans toucher aux sessions : pam_time. J’ai grapillé quelques liens qui correspondent à notre cas d’utilisation :
[] skindley.wordpress.com/2006/12/1 … s-by-time/
[
] askubuntu.com/questions/68918/ho … uting-time
[*] serverfault.com/questions/139789 … tain-users

Je me pencherai là-dessus après les vacances :slightly_smiling:[/quote]

oui CTparental utiliser pam_time pour les heure de connexion autorisé ,par contre, pour le temps max/24h , c’est une bidouille avec cron qui lance CTparental -uctl toute les minutes.
voir fonction updatetimelogin qui en gros regarde qui est connecter au pc et incrémente sont temp total de connexion. puis vérifie qu’il n’a pas dépasser son cota, verrouille sont compte et ferme sa session le cas échéant.
puis vérifie si on a changer de journée, pour déverrouiller les comptes et initialiser les compteurs.

Pour le calcul de la durée de connexion sur une période donnée ça vaudra peut-être le coup de regarder du côté de la commande [mono]last[/mono]:

$ last -F pini | grep ' tty[0-9]' | grep ' :[0-9]*' pini tty7 :0 Sun Mar 2 21:20:13 2014 still logged in pini tty7 :0 Sun Mar 2 20:22:27 2014 - Sun Mar 2 21:17:02 2014 (00:54) pini tty7 :0 Sun Mar 2 20:16:54 2014 - Sun Mar 2 20:19:55 2014 (00:03) pini tty7 :0 Sun Mar 2 19:15:40 2014 - Sun Mar 2 20:13:37 2014 (00:57)

je sais pas il faut dans tous les cas une commande toutes le minutes pour voir si l’utilisateur est toujours connecter, désactiver son compte , et le déconnecter le cas échéant.
who me parai plus facile a l’utilisation surtout pour le calcule du temps , un simple incrément de 1 suffit.
certes on est pas précis a la secondes avec cette méthode mais, on en a pas vraiment besoins .
le code qui résulterait de l’utilisation de last , serais trop compliquer a mon goût.

Bonjour à tous

J’ai un problème de connexion avec internet.

Alors récapitulatif: J’ai UBUNTU 12.04 depuis presque un an sur mon nouveau PC Portable.
Et depuis j’installe régulièrement des UBUNUTU et LINUX MINT autour de moi sur des PC ancien ou nouveau.

J’ai donc installé LINUX MINT MATE MAYA sur l’ordi des enfants en remplaçant WIN XP!!!

J’ai créé trois sessions: admin, ado et enfant
J’ai voulu mettre en place un filtrage car je n’ai pas trouvé de solution avec mon FAI (SFR) et son contrôle parental associé.

Je me suis donc tourné vers les forums et je pense avoir mal manipé avec CTparental et DNSMASQ.
J’ai réussi à installé CTparental et à le configurer. Mais je voulais changer la config de connexion heure/jour mais je n’arrive plus à me connecter sur la page internet.
Forcément car je ne suis plus dans la plage horaire même en étant superutilisateur!!!

J’ai donc décidé de le supprimer mais pas de retour à la normal et connexion internet aléatoire!!!

Pouvez vous m’aider?

J’espère avoir été assez clair!

Merci à tous.

Neutehouse

ps: J’ai malheureusement créé un autre sujet avec le même message.

pour les bugs c’est par la stp.
bug-ctparental-sh-t46554.html#p485523

bonjour
tout d’abord un grand merci pour ce script

sous Debian 8
j’ai installé la blacklist de Toulouse
ça fonctionne bien
toutefois je souhaite pouvoir accéder à un site bloqué
je l’ai ajouté sur 127.0.0.1:CTadmin
j’ai enregistré
je me suis déconnecté en tant qu’utilisateur
je me reconnecte et le site est toujours intedit d’accès
comment dois je m’y prendre ?
merci pour vos réponses

[quote=“coucou91700”]bonjour
tout d’abord un grand merci pour ce script

sous Debian 8

je me suis déconnecté en tant qu’utilisateur
je me reconnecte et le site est toujours intedit d’accès
comment dois je m’y prendre ?
merci pour vos réponses[/quote]

as-tu effacé le cache de ton navigateur cela peut venir de là, sinon :
1-dans un terminal en root lance cette commande.

2-cela ne marche toujours pas .
retourne le résultat de ces commandes en root

bonjour,

merci pour ta réponse je regarde ce soir

cdt

bonsoir

j’ai fait un CTparental.sh -rl
le site lecture-en-ligne reste bloqué
j’ai également fait un reboot au cas où…
rien à faire.

cat /usr/local/etc/CTparental/domaine-rehabiliter
www.google.com
www.google.fr
www.lecture-en-ligne

j’ai un PC où j’ai installé Dansguardian + Privoxy
le tout fonctionne très bien
ce qui me plaît dans CTparental c’est de pouvoir tout gérer avec une interface web
je vais regarder peut être regarder si une autre version du script fonctionne

je mets aussi en ligne les retours suivants

cat /etc/dnsmasq.conf

Configuration file for “dnsmasq with blackhole”

Inclusion de la blacklist de Toulouse dans la configuration

conf-dir=/usr/local/etc/CTparental/blacklist-enabled

conf-file=/alcasar-dns-name # zone de definition de noms DNS locaux

interface=lo
listen-address=127.0.0.1
no-dhcp-interface=wlan0
bind-interfaces
cache-size=1024
domain-needed
expand-hosts
bogus-priv
port=54
server=192.168.1.1
server=

cat /etc/lighttpd/lighttpd.conf
server.modules = (
“mod_access”,
“mod_alias”,
“mod_redirect”,
“mod_auth”, #pour interface admin
"mod_fastcgi", #pour interface admin (activation du php)
)
auth.debug = 0
auth.backend = "htdigest"
auth.backend.htdigest.userfile = “/etc/lighttpd/lighttpd-htdigest.user”

server.document-root = "/var/www"
server.upload-dirs = ( “/var/cache/lighttpd/uploads” )
#server.errorlog = “/var/log/lighttpd/error.log” # ne pas decommenter sur les eeepc qui on /var/log en tmpfs
server.pid-file = "/var/run/lighttpd.pid"
server.username = "www-data"
server.groupname = "www-data"
server.port = 80
server.bind = “127.0.0.1”

index-file.names = ( “index.php”, “index.html” )
url.access-deny = ( “~”, “.inc” )
static-file.exclude-extensions = (".php", “.pl”, “.fcgi” )

server.tag = “”

include_shell "/usr/share/lighttpd/create-mime.assign.pl"
include_shell “/usr/share/lighttpd/include-conf-enabled.pl”

cat /etc/resolv.conf

Generated by NetworkManager

nameserver 192.168.1.1


service lighttpd status

● lighttpd.service - Lighttpd Daemon
Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled)
Active: active (running) since mar. 2015-11-10 21:27:23 CET; 22s ago
Process: 31410 ExecStartPre=/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS)
Main PID: 31417 (lighttpd)
CGroup: /system.slice/lighttpd.service
├─31417 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
├─31423 /usr/bin/php-cgi
├─31424 /usr/bin/php-cgi
├─31425 /usr/bin/php-cgi
├─31426 /usr/bin/php-cgi
├─31427 /usr/bin/php-cgi
├─31428 /usr/bin/php-cgi
├─31429 /usr/bin/php-cgi
└─31430 /usr/bin/php-cgi

nov. 10 21:27:23 monpc lighttpd[31410]: Syntax OK
nov. 10 21:27:23 monpc lighttpd[31417]: 2015-11-10 21:27:23: (log.c.164) server started

service lighttpd status
● lighttpd.service - Lighttpd Daemon
Loaded: loaded (/lib/systemd/system/lighttpd.service; enabled)
Active: active (running) since mar. 2015-11-10 21:27:23 CET; 1min 3s ago
Process: 31410 ExecStartPre=/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf (code=exited, status=0/SUCCESS)
Main PID: 31417 (lighttpd)
CGroup: /system.slice/lighttpd.service
├─31417 /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
├─31423 /usr/bin/php-cgi
├─31424 /usr/bin/php-cgi
├─31425 /usr/bin/php-cgi
├─31426 /usr/bin/php-cgi
├─31427 /usr/bin/php-cgi
├─31428 /usr/bin/php-cgi
├─31429 /usr/bin/php-cgi
└─31430 /usr/bin/php-cgi

nov. 10 21:27:23 monpc lighttpd[31410]: Syntax OK
nov. 10 21:27:23 monpc lighttpd[31417]: 2015-11-10 21:27:23: (log.c.164) server started

ip route
default via 192.168.1.1 dev wlan0 proto static metric 1024
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.55

netstat -anlp | grep -w LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 444/rpcbind
tcp 0 0 127.0.0.10:80 0.0.0.0:* LISTEN 31417/lighttpd
tcp 0 0 127.0.0.1:80 0.0.0.0:* LISTEN 31417/lighttpd
tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN 10363/dansguardian
tcp 0 0 127.0.0.1:54 0.0.0.0:* LISTEN 10343/dnsmasq
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 525/cupsd
tcp 0 0 127.0.0.1:8888 0.0.0.0:* LISTEN 10382/privoxy
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 31417/lighttpd
tcp 0 0 0.0.0.0:46308 0.0.0.0:* LISTEN 453/rpc.statd
tcp6 0 0 :::111 :::* LISTEN 444/rpcbind
tcp6 0 0 :::52541 :::* LISTEN 453/rpc.statd

essayai avec .lecture-en-ligne.com au lieu de www.lecture-en-ligne
dans Noms de domaine réhabilités cela marche cher moi en version 3.94-2

d’une manière général pour débloquer un site il faut ajouter sont nom de domaine .

exemple: www.debian-fr.org/posting.php?mode=reply&f=8&t=42009&sid=41280501fd510cb084aadadef3a8eac8
on ne garde que ce qui est en gras le www n’est pas important.
ce qui nous donne
.debian-fr.org a ajouter dans la liste des domaine réhabilité.
ainsi tous debian-fr.org seras autoriser ainsi que tous ces sous domaine s’il en existent .
comme sousdomain.debian-fr.org ou sous.sousdomaine.debian-fr.org.
si l’on oubli le premier point dans la ligne debian-fr.org cela fonctionne aussi mais
cela donne accé aussi a des sites de domaine différent mais qui ce termine de la même manière
exemple grossecitrouilledebian-fr.org.

en espérant avoir étais assez clair.

merci pour ton aide

mais ça ne marche pas
le site lecture-en-ligne est toujours interdit

que retourne cet commande en root:
avant ajout dans Noms de domaine réhabilités et après.

Merci de répondre sur ce file http://www.debian-fr.org/bug-ctparental-sh-t46554.html

Juste pour infos du nouveaux dans le domaine du contrôle parental sous linux ,

En effet dansguardian n’étant pas mis a jour depuis 2012, voir ici .

e2guardian un fork de dansguardian a vue le jour et arrive en version dite stable, voir ici.

malheureusement les paquets ne sont pas encore disponible dans les depots debian mais seulement sur le dépôt git de e2guardian.

Je ferais des teste quant j’aurai du temps, en prévision d’un future migration de ctparental pour utiliser e2guardian en remplacement de dansguardian.

test effectuer avec succès , voir ici pour ceux qui veulent tenter l’aventure.

Bonsoir @hulk

Je regarde un peu à nouveau ton code et j’aimerais te proposer quelques corrections, dans un premier temps, dans ton script bash …
Comment je peux organiser ça ?
Faut que je clone normalement ton git, que je fasse mes modifs, les commit sur mon clone, et tu merges, c’est ca ?