Re,
Alors voilà, j’ai pas mal grenouillé, mais j’ai trouvé une config satisfaisante, qui a le mérite d’être complémentaire à CTparental. En résumé :
[ol]
[li]Forcer l’utilisation d’un proxy via des règles iptables[/li]
[li]Configurer le proxy avec squid + squidGuard pour forcer le mode SafeSearch des moteurs de recherches en ré-écrivant les URL concernés[/li]
[li]Ajout d’un fichier google.conf à la configuration dnsmasq de CTparental pour empêcher les recherches Google via SSL qui contourneraient la protection précédente[/li][/ol]
Forcer l’utilisation d’un proxy via des règles iptables
J’utilise les règles iptables suivantes pour chacun des comptes concernés :
iptables -A OUTPUT -m owner --uid-owner "$user" -d localhost -j ACCEPT
iptables -A OUTPUT -m owner --uid-owner "$user" -j DROP
De cette façon, si l’utilisateur veut surfer sur le Net il n’a pas d’autre choix que de configurer l’usage du proxy dans son navigateur.
squid + squidGuard
[ol]
[li]Installation de squid avec la configuration minimale suivante:
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # 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 631 # cups
acl Safe_ports port 777 # multiling http
acl PURGE method PURGE
acl CONNECT method CONNECT
http_access allow all
http_port localhost:3128
coredump_dir /var/spool/squid3
url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
url_rewrite_children 10 startup=0 idle=1 concurrency=0
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern . 0 20% 4320
cache_effective_user proxy
cache_effective_group proxy
Je ne connais pas grand’chose à cet outil. Pour ce que j’en comprends, on peut probablement conserver la config par défaut proposée par Debian, et ne s’attacher qu’au paramétrage [mono]http_port[/mono] et [mono]url_rewrite_*[/mono].
[/li]
[li]Installation de squidGuard avec la config suivante :
dbhome /var/lib/squidguard/db
logdir /var/log/squidguard
rewrite search_engine {
s@(.*\.google\..*/(custom|search|images|groups|news)?.*q=.*)@\1\&safe=strict@i
s@(.*\..*/yandsearch?.*text=.*)@\1\&fyandex=1@i
s@(.*\.yahoo\..*/search.*p=.*)@\1\&vm=r@i
s@(.*\.live\..*/.*q=.*)@\1\&adlt=strict@i
s@(.*\.msn\..*/.*q=.*)@\1\&adlt=strict@i
s@(.*\.bing\..*/search.*q=.*)@\1\&adlt=strict@i
}
acl {
default {
pass all
rewrite search_engine
}
}
J’ai récupéré les snippets rewrite sur ce post.[/li][/ol]
Empêcher le coutournemant de SafeSearch par SSL
En gros ça consiste à ajouter une conf dnsmasq pour rediriger [mono]www.google.com[/mono] vers [mono]nosslsearch.google.com[/mono]. Facile, mais là où ça se complique c’est qu’il faut le faire pour tous les pays
Heureusement, Google nous donne tous ses TLD sur cette page. Je n’ai donc eu qu’à faire :
wget -q -O - http://www.google.com/supported_domains | sed 's:^:address=/www:;s:$:/216.239.32.20:' >/usr/local/etc/CTparental/google-tld.conf
Où [mono]216.239.32.20[/mono] correspond à [mono]nosslsearch.google.com[/mono].
Puis j’ai ajouté les lignes ci-dessous à la configuration dnsmasq :
address=/encrypted.google.com/127.0.0.10
conf-file=/usr/local/etc/CTparental/google-tld.conf
Voili voilà, ça a l’air de marcher. Mais je suis preneur de tout complément ou simplification !
Hope this helps…