Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

controle parental sous linux

1 réponse
Avatar
Adrien
Bonjour,

J'essaie de configurer un semblant de contrôle parental sous linux, en
filtrant les sites web visités.

Contrairement aux nombreux exemples que j'ai pu trouver sur internet, il n'y
a qu'une seule machine qui doit faire tourner tous les services, navigateur
compris. On est dans le cas d'un ordinateur personnel à la maison, avec une
box d'un FAI branchée dessus en ethernet.

J'ai installé squid + squidguard et tout marche bien si j'utilise le port
3128 comme proxy sous firefox (iceweasel). Par bien marcher je veux dire que
les sites blacklistés sont bien rejetés et les autres passent.

Les choses se gatent quand j'essaie de modifier iptables pour forcer
l'utilisation du proxy. Je débute avec iptables donc je pense que c'est à ce
niveau là j'ai du faire une erreur...

J'aimerais que l'utilisation du proxy se fasse de façon transparente pour
les utilisateurs, sans configuration du navigateur.

J'ai donc entré les régles suivantes:

$ iptables -t nat -F
$ iptables -t nat -X

à ce niveau tous les sites sont accessibles si je demande à firefox une
connexion directe. Normal.

$ iptables -t nat -A OUTPUT -p tcp --dport 80 -m owner --uid-owner proxy -j
ACCEPT

cette commande est censée laisser passer le proxy sur internet.

et la commande suivante devrait tout rediriger vers le proxy:
$ iptables -t nat -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 3128

C'est là que les choses curieuses commencent et je n'arrive pas à trouver où
est le problème.
J'ai accès à google.fr par exemple, et je peux effectuer une recherche. Par
contre on dirait que je ne peux pas accéder à de nouveaux sites web, par
exemple le résultat de la recherche "toto" sur google, si je ne passe pas
par le cache google.


voilà ce qui se passe avec wget:
$ wget www.google.fr
--2009-11-23 10:06:13-- http://www.google.fr/
Résolution de www.google.fr... 2001:4860:a004::68, 209.85.229.104,
209.85.229.147, ...
Connexion vers www.google.fr|2001:4860:a004::68|:80...connecté.
requête HTTP transmise, en attente de la réponse...200 OK
Longueur: non spécifié [text/html]
Sauvegarde en : «index.html»


$ wget www.totoweb.org
--2009-11-23 10:08:06-- http://www.totoweb.org/
Résolution de www.totoweb.org... 88.191.253.137
Connexion vers www.totoweb.org|88.191.253.137|:80...connecté.
requête HTTP transmise, en attente de la réponse...403 Forbidden
2009-11-23 10:08:06 ERREUR 403: Forbidden.


dans /var/log/squid j'ai des messages du genre:
1258967140.073 0 192.168.0.10 TCP_DENIED/403 1513 GET http://toto.fr/ -
NONE/- text/html
1258967148.717 0 192.168.0.10 TCP_DENIED/403 1523 GET
http://wikipedia.fr/ - NONE/- text/html
1258967166.374 0 192.168.0.10 TCP_DENIED/403 1517 GET http://google.fr/
- NONE/- text/html
1258967188.848 0 192.168.0.10 TCP_DENIED/403 1531 GET
http://www.wikipedia.fr/ - NONE/- text/html
1258967286.781 3 192.168.0.10 TCP_DENIED/403 1529 GET
http://www.totoweb.org/ - NONE/- text/html


Je ne vois pas où est mon erreur et surtout comment ça se fait que la
navigation fonctionne partiellement.


Maintenant si je redemmande à firefox d'utiliser le proxy localhost:3128 je
peux à nouveau accéder au web:
1258967413.159 651 127.0.0.1 TCP_MISS/200 35102 GET
http://fr.wikipedia.org/wiki/Toto_(groupe) - DIRECT/91.198.174.2 text/html


Merci pour votre aide !

1 réponse

Avatar
Adrien
Adrien wrote:



Les choses se gatent quand j'essaie de modifier iptables pour forcer
l'utilisation du proxy. Je débute avec iptables donc je pense que c'est à
ce niveau là j'ai du faire une erreur...




J'ai fini par trouver le problème: la règle iptables réécrivait les paquets
en provenance de 127.0.0.1 et mettait comme adresse de provenance
192.168.0.10 (qui a été attribuée par dhcp à la machine en question). Du
coup squid rejetait les requetes car elles ne provenaient plus de localhost.