#1 Le 24/12/2012, à 14:48
- lorrinux
Contrôle parental avec squid et squidguard
Bonjour,
Je souhaite mettre en place un contrôle parental avec squid et squidguard. J'ai lu l'article consacré au sujet sur la doc Ubuntu ainsi qu'une discussion consacrée à la configuration des deux logiciels sur le forum, mais je n'arrive pas à faire fonctionner ces deux logiciels et j'ai du mal à comprendre les explications.
J'ai donc tout désinstallé pour repartir depuis le début.
Si j'ai bien compris, squid est un serveur proxy et squidguard permet (mais n'est pas indispensable) de configurer les filtres de squid.
Je commence par squid tout seul.
Déjà, je voudrais être sûr de comprendre le principe.
Si je comprends bien : squid est un serveur proxy, donc il intercepte les requêtes de mon navigateur et les redirige vers le réseau. Donc en théorie, si je ne configure pas le navigateur pour passer par le proxy, toutes mes requêtes doivent être rejetées.
J'ai donc installé squid sur ma machine, j'ai déclaré le serveur proxy à l'adresse 127.0.0.1 (puisqu'il est sur ma machine), port 3128.
Je n'ai rien touché dans Firefox et pourtant la navigation se passe sans problème.
Qu'est-ce que je n'ai pas compris ?
Hors ligne
#2 Le 24/12/2012, à 19:04
- tiramiseb
Re : Contrôle parental avec squid et squidguard
squid est un serveur proxy, donc il intercepte les requêtes de mon navigateur et les redirige vers le réseau.
Il n'"intercepte" pas les requêtes : c'est le navigateur qui lui transmet les requêtes que lui-même doit retransmettre.
Donc en théorie, si je ne configure pas le navigateur pour passer par le proxy, toutes mes requêtes doivent être rejetées.
Squid n'effectue aucun blocage sur d'autres manières d'accéder au web. Pour que les requêtes soient rejetées, il faut que tu bloques les paquets sortants (notamment vers les ports TCP 80 et 443).
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#3 Le 24/12/2012, à 21:20
- lorrinux
Re : Contrôle parental avec squid et squidguard
Merci pour ta réponse.
Donc, pour forcer les requêtes à passer par squid, il faut que je bloque les paquets sortants vers les ports 80 et 443 et que je les redirige vers le port 3128 ?
La commande suivante est-elle bien adaptée (trouvée sur le net) ?
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128
PS : bon Noël
Hors ligne
#4 Le 24/12/2012, à 22:32
- tiramiseb
Re : Contrôle parental avec squid et squidguard
Il ne faut pas les rediriger : les requêtes vers un proxy et directement vers un serveur ne sont pas identiques. Il fait configurer le client Web pour utiliser le proxy.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#5 Le 25/12/2012, à 19:41
- lorrinux
Re : Contrôle parental avec squid et squidguard
Ok, j'ai compris.
J'ai donc bloqué le trafic sortant vers le port 80 de la façon suivante :
sudo iptables -A OUTPUT -p tcp --dport 80 -j DROP
Je ne peux logiquement pas accéder à Internet.
Seulement, j'ai configuré le navigateur pour passer par le proxy et j'ai déclaré le proxy dans les paramètres réseau, et malgré cela, l'accès à Internet est toujours bloqué.
L'adresse du proxy, c'est bien 127.0.0.1:3128 (il est installé sur ma machine) ?
J'ai l'impression que squid est démarré, en tout cas d'après ce que je vois dans la log.
Hors ligne
#6 Le 25/12/2012, à 20:41
- tiramiseb
Re : Contrôle parental avec squid et squidguard
Ah oui, suis-je bête :-)
En interdisant toute sortie vers le port 80, tu interdis aussi à Squid de sortir
Il faut d'abord autoriser les paquets sortants appartenant à l'utilisateur de squid ("proxy" je crois), avec l'argument --uid-owner d'iptables.
Cela étant dit, pour être sûr qu'on se comprend bien, il serait préférable de détailler ce que tu entends par "l'accès à Internet est toujours bloqué", parce que s'il existe différents messages d'erreurs c'est bien pour identifier le problème...
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#7 Le 25/12/2012, à 20:56
- lorrinux
Re : Contrôle parental avec squid et squidguard
FF affiche le message habituel "adresse introuvable ..."
Hors ligne
#8 Le 25/12/2012, à 21:07
- tiramiseb
Re : Contrôle parental avec squid et squidguard
je ne connais pas "le message habituel de FF". Je n'utilise pas Firefox.
Il faut également tester avec d'autres outils, par exemple wget...
Il faut vérifier que le navigateur interroge bien le proxy, par exemple avec tcpdump.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#9 Le 25/12/2012, à 21:56
- lorrinux
Re : Contrôle parental avec squid et squidguard
Yes ! ça marche !
Voici la liste des commandes que j'ai passées :
#revenir éventuellement à la configuration de base
sudo iptables -F
#bloquer le trafic sortant par les ports 80 (HTTP) et 443 (HTTPS)
sudo iptables -A OUTPUT -p tcp --dport 80 -j DROP
sudo iptables -A OUTPUT -p tcp --dport 443 -j DROP
#sauf pour root et le proxy
sudo iptables -A OUTPUT -m owner --uid-owner root -j ACCEPT
sudo iptables -A OUTPUT -m owner --uid-owner proxy -j ACCEPT
J'espère que je n'ai rien oublié.
Maintenant, il me reste à configurer squidguard pour les filtres.
Je ne marque pas le sujet comme résolu pour l'instant.
Déjà, merci beaucoup pour l'aide apportée dans la résolution de cette première étape.
Hors ligne
#10 Le 25/12/2012, à 21:58
- tiramiseb
Re : Contrôle parental avec squid et squidguard
Les commandes me semblent bien.
Pour ma part j'aurais mis les "ACCEPT" avant les "DROP" (donc iptables -I au lieu de iptables -A), ça m'étonne que de cette manière ça marche : il me semble que les "DROP" seront rencontrés avant les "ACCEPT" et que les paquets seront droppés sans aller plus loin.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#11 Le 25/12/2012, à 22:02
- lorrinux
Re : Contrôle parental avec squid et squidguard
Je pensais au contraire que les règles rencontrées en dernier surchargeaient celles rencontrées en premier. C'est pour ça que j'ai mis les DROP après les ACCEPT. Je vais tester l'inverse.
Hors ligne
#12 Le 25/12/2012, à 22:07
- tiramiseb
Re : Contrôle parental avec squid et squidguard
netfilter lit et interprète les règles une à une dans l'ordre dans lequel elles sont stockées.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#13 Le 25/12/2012, à 22:07
- lorrinux
Re : Contrôle parental avec squid et squidguard
Ca marche aussi comme tu dis.
Hors ligne
#14 Le 25/12/2012, à 22:08
- lorrinux
Re : Contrôle parental avec squid et squidguard
Pardon, j'ai posté avant de lire ta réponse.
Hors ligne
#15 Le 25/12/2012, à 22:12
- lorrinux
Re : Contrôle parental avec squid et squidguard
Par contre j'ai du mal à exploiter le résultat de
sudo tcpdump -i eth0
Je ne vois rien qui ressemble au proxy, ou bien je ne cherche pas ce qu'il faut. Ca m'intrigue un peu.
Hors ligne
#16 Le 25/12/2012, à 22:16
- tiramiseb
Re : Contrôle parental avec squid et squidguard
Vu que tu fais des requêtes au proxy sur localhost, il faut "lo" au lieu de "eth0" si tu veux voir le port 3128.
Sur "eth0" tu ne verras que les paquets sortants ou entrants (donc les paquets de squid vers le net sur le port 80, etc)
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#17 Le 25/12/2012, à 22:19
- lorrinux
Re : Contrôle parental avec squid et squidguard
Mais bon, dans la log de squid, je vois bien les sites que je visite.
Hors ligne
#18 Le 25/12/2012, à 22:20
- tiramiseb
Re : Contrôle parental avec squid et squidguard
C'est l'essentiel
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#19 Le 25/12/2012, à 22:21
- lorrinux
Re : Contrôle parental avec squid et squidguard
Zut, j'ai encore posté avant de voir que tu avais répondu !
Hors ligne
#20 Le 27/12/2012, à 12:16
- lorrinux
Re : Contrôle parental avec squid et squidguard
Bon alors, me revoici pour la suite de mes aventures avec suid et squidguard.
squid marche très bien et démarre bien squidguard.
Mais je n'arrive pas à configurer squidguard :
Pour tester, j'ai fait un fichier de configuration très simple dont voici un extrait :
src admin {
user root parent
}
acl {
admin {
pass all
}
default {
pass local none
redirect http://admin.foo.bar.de/cgi-bin/blocked.cgi?clientaddr=%a&clientname=%n&clientuser=%i&clientgroup=%s&targetgroup=%t&url=%u
}
}
Je déclare parent (c'est mon compte) et root dans la source admin et je dis ensuite que la source admin a le droit d'aller partout et que les autres sources ne vont nulle part.
Lorsque je redémarre squid avec cette règle, je suis redirigé sur la page prévue dans default.:(
Hors ligne
#21 Le 27/12/2012, à 14:03
- tiramiseb
Re : Contrôle parental avec squid et squidguard
La règle "user" de SquidGuard nécessite que l'authentification soit activée sur Squid. Il ne prend pas le compte sur lequel tu es connecté.
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#22 Le 27/12/2012, à 15:56
- lorrinux
Re : Contrôle parental avec squid et squidguard
Je n'y arrive pas.
Je ne comprends pas bien ce que tu entends par "Il ne prend pas le compte sur lequel tu es connecté." User désigne-t-il des comptes utilisateurs ou bien ça n'a rien à voir ?
Dans tous les cas, je ne sais pas quoi mettre dans le fichier squid.conf.
J'ai essayé ça
acl parent ident parent
Et ça
acl admin ident parent
Sans succès
Hors ligne
#23 Le 27/12/2012, à 18:44
- tiramiseb
Re : Contrôle parental avec squid et squidguard
Sébastien Maccagnoni - https://www.maccagnoni.eu - https://www.domotego.com
Hors ligne
#24 Le 27/12/2012, à 22:57
- lorrinux
Re : Contrôle parental avec squid et squidguard
Désolé d'être lourd mais je ne m'en sors pas.
Dès que je rajoute autre chose que
http_access allow all
dans squid.conf, le navigateur m'envoie le message d'erreur suivant : "Firefox est configuré pour utiliser un proxy mais celui-ci refuse les connexions".
Hors ligne
#25 Le 27/12/2012, à 23:09
- lorrinux
Re : Contrôle parental avec squid et squidguard
Et je précise quand-même que j'ai lu le lien que tu m'as conseillé:)
Hors ligne