« Contrôle Parental » : différence entre les versions
Ligne 166 : | Ligne 166 : | ||
55 20 * * * enfant1 DISPLAY=:0 notify-send "fin de session dans 5 minutes"# | 55 20 * * * enfant1 DISPLAY=:0 notify-send "fin de session dans 5 minutes"# | ||
</licode> | </licode> | ||
Pour limiter le temps de connexion, CTparental lance la commande who toutes les minutes. Cela lui permet de savoir qui est connecté et d'envoyer un message à l'utilisateur avant de tuer la session | |||
* ''export HOME=$HOMEPCUSER && export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER /usr/bin/notify-send -u critical "Alerte CTparental" "Votre temps de connexion res#tant est de $temprest minutes'' | |||
* ''/usr/bin/skill -KILL -u$PCUSER'' puis ''passwd -l $PCUSER'' | |||
=CTparental= | =CTparental= |
Version du 14 février 2016 à 10:58
http://doc.ubuntu-fr.org/tutoriel/comment_mettre_en_place_un_controle_parental
OpenDNS
Familyshield
Les serveurs DNS
208.67.222.123 208.67.220.123
Le plus simple est de les configurer sur la box familiale.
installation
https://doc.ubuntu-fr.org/squid
#sudo apt-get install squid #sudo service squid3 start
rendre squid transparent (et obligatoire)
http://wiki.squid-cache.org/ConfigExamples/Intercept/AtSource
Editer /etc/squid3/squid.conf avec les trois lignes suivantes
<licode file=/etc/squid3/squid.conf>
acl localnet src 192.168.0.0/24 http_access allow localnet http_port 3129 intercept
</licode>
Ce qui donne le fichier de conf suivant: <licode file=/etc/squid3/squid.conf> acl localnet src 192.168.0.0/24 acl SSL_ports port 443
acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT
http_access deny !Safe_ports http_access deny CONNECT !SSL_ports http_access allow localhost manager http_access deny manager http_access deny to_localhost http_access allow localhost http_access allow localnet
http_access deny all
http_port 3129 intercept
coredump_dir /var/spool/squid3
refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/|\?) 0 0% 0 refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880 refresh_pattern . 0 20% 4320 </licode>
Relancer squid
#sudo squid3 -k reconfigure
Configurer le firewall pour :
- laisser un accès au serveur web local pour les interfaces d'admin et de logs
- laisser passer les requêtes de squid vers le port 80
- et rediriger les autres vers squid
#sudo iptables -t nat -I OUTPUT -d 127.0.0.1 -j ACCEPT #sudo iptables -t nat -A OUTPUT --match owner --uid-owner proxy -p tcp --dport 80 -j ACCEPT #sudo iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3129
Installer le paquet iptables-persistent pour garder en mémoire les règles du firewall.
Pour sauver les règles dans le fichier /etc/iptables/rules.v4, il faut lancer la commande:
#sudo service netfilter-persistent save
analyse des logs
http://www.squid-cache.org/Misc/log-analysis.html
Le fichier de log est /var/log/squid3/access.log
lightsquid
http://lightsquid.sourceforge.net/Installs.html
#sudo apt-get install lightsquid
configurer apache
#sudo ln -s /etc/apache2/conf-available/lightsquid.conf /etc/apache2/conf-enabled/ #sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/
<licode file=/etc/apache2/conf-available/lightsquid.conf>
Alias /lightsquid/ /usr/lib/cgi-bin/lightsquid/
<Location "/lightsquid/">
Require local AddHandler cgi-script .cgi AllowOverride All
</Location> </licode>
#sudo service apache2 reload
Mettre à jour le parser
#sudo /usr/share/lightsquid/lightparser.pl access.log #sudo /usr/share/lightsquid/lightparser.pl access.1.log
crontab -e <licode file=/etc/crontab>
- /20 * * * * /usr/share/lightsquid/lightparser.pl today
</licode>
sarg
http://www.tecmint.com/sarg-squid-analysis-report-generator-and-internet-bandwidth-monitoring-tool/
# sudo apt-get install sarg
Editer sarg.conf <licode file=$ sudo apt-get install sarg> access_log /var/log/squid3/access.log output_dir /var/www/html/squid-reports </licode>
# sudo sarg -x
lancé quotidiennement dans cron.daily
Accès à l'IHM http://ip-address/squid-reports
Gestion des horaires d'accès
https://doc.ubuntu-fr.org/tutoriel/restrictions_horaires
Vérifier la présence de
<licode file=/etc/pam.d/common-auth>
account required pam_time.so
</licode>
Editer /etc/security/time.conf pour gérer les périodes d'accès <licode file=/etc/security/time.conf>
- chris;Al0000-2400
- enfant1;Mo0700-2100|Tu0700-2100|We0700-2100|Th0700-2100|Fr0700-2100|Sa0700-2100|Su0700-2100
</licode>
Editer le crontab pour couper les sessions et prévenir les utilisateurs 5mn avant. <licode file=/etc/crontab>
- Deconnexion
21 00 * * * root skill -KILL -u enfant1
- Prévenir de la déconnexion
55 20 * * * enfant1 DISPLAY=:0 notify-send "fin de session dans 5 minutes"# </licode>
Pour limiter le temps de connexion, CTparental lance la commande who toutes les minutes. Cela lui permet de savoir qui est connecté et d'envoyer un message à l'utilisateur avant de tuer la session
- export HOME=$HOMEPCUSER && export DISPLAY=:0.0 && export XAUTHORITY=$HOMEPCUSER/.Xauthority && sudo -u $PCUSER /usr/bin/notify-send -u critical "Alerte CTparental" "Votre temps de connexion res#tant est de $temprest minutes
- /usr/bin/skill -KILL -u$PCUSER puis passwd -l $PCUSER
CTparental
https://doc.ubuntu-fr.org/tutoriel/comment_mettre_en_place_un_controle_parental
http://www.debian-fr.org/controle-parental-pour-le-pc-debian-de-vos-enfants-t42009.html
les fonctionnalités
- Filtrage par Blacklist ou par Whitelist, utilisation de la liste de "Toulouse" http://dsi.ut-capitole.fr/blacklists/
- Filtre par Catégories (addiction, games, porn, etc..).
- Filtre personnalisé de sites (whitelist et blacklist).
- Réglages des heures de connexions autorisées par utilisateur. https://doc.ubuntu-fr.org/tutoriel/restrictions_horaires
- Nombres de minutes de connexions max par jours autorisées.
- Groupe de personnes privilégiées ne subissant pas de filtrage web.
- Notifications des Utilisateurs toutes les minutes durant les 5 dernières minutes avant déconnexion.
- Dansguardian + Privoxy (paramètre non disponible via l'interface.)
- Force SafeSearch google
- Force SafeSearch duckduckgo
- Force SafeSearch bing (en http seulement)
- Blocage de moteurs de recherches jugés non sûr comme bing en https et search.yahoo.com.
- Gestion de règles personnalisées pour iptables. Activé avec CTparental.sh -ipton
S'appuie sur
- Squid http://www.squid-cache.org/
- Dansguardian http://dansguardian.org/
- dnsmasq http://www.thekelleys.org.uk/dnsmasq/doc.html
- privoxy
- lighttpd pour l'interface web de paramétrage
installation
# sudo apt-get install gdebi
Pour Ubuntu 15.10, il faussi installer gamin (cf https://bugs.launchpad.net/ubuntu/+source/lighttpd/+bug/1453463)
# wget -O - https://www.debian-fr.org/ressources/v-3-94-5/3758 1> CTparental.sh.tar.gz # tar -xvzf CTparental.sh.tar.gz
# gdebi ctparental_debian_3.94-5_all.deb
Pour tester si ça fonctionne
# ping youporn.com
Le retour doit être du type:
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'IP affichée n'est pas 127.0.0.10, c'est que le script ne fonctionne pas.
L'interface d'administration est accessible sur http://127.0.0.1/CTadmin/