Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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).

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.

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 smile

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...

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.

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.

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.

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)

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 smile

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é.

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

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