Double Squid en série

Bonsoir à tous.

Soit un réseau A relié vers un serveur proxy de type squid équipé deux deux cartes ethernet, avec une authentification de type pam (utilise les users unix déclarés dans le serveur). Le serveur squid est configuré avec un N.A.T.
Le réseau A est connecté sur eth0 sur le serveur proxy.

Le réseau B eth1 est le lien qui va sur internet. Dans ce cas tout est ok pas de pb.

Maintenant on corse un peu l’architecture.

Je débranche le serveur proxy du lien internet (réseau B) eth1 du proxy n°1 et je le branche sur un deuxième proxy (eth0) de même type. C’est à dire une machine équipé de 2 cartes ethernet avec un N.A.T et une authentification de type pam. La carte eth1 est brancheée sur internet

L’utilisateur qui est connecté sur le 1er proxy reçoit une invite du type Login, Password, et lance par exemple google.fr.

Le premier serveur proxy fait son travail et donc s’adresse au deuxième proxy.

C’est maintenant que les choses deviennent un peu plus compliquées.
Le deuxième proxy demande une authentification.
Comment puis faire pour que le premier proxy réponde à la demande d’authentification du deuxième proxy ???
(Oui je sais c’est un peu zarb, peu importe c’est dans un but purement pédagogique)

j’imagine que ce que tu appelles un serveur squid configuré en NAT correspond à une redirection transparente du flot sur port 80 vers le port squid (3128 ou 8080) ?
Alors si j’ai bien compris ton shema, et si je ne me trompe pas, ça ne peut pas marcher: on ne peut pas faire d’authentification automatique avec une redirection transparente (jamais trop compris pourquoi, mais c’est comme ça).
Par contre, si tu déclare ton proxy vers internet comme relai au niveau du squid qui sert les clients, ça doit fonctionner.

[quote=“mattotop”]j’imagine que ce que tu appelles un serveur squid configuré en NAT correspond à une redirection transparente du flot sur port 80 vers le port squid (3128 ou 8080) ?
[/quote]

Tout d’abord merci mattotop.

Non pas du tout ce que j’apelle Network Address.Translation ===> masquerade au niveau ip (Partage de connexion).

Je vois mieux le pb, mais je ne vois pas trop comment le solutionner, à part peut être en faisant du squid interne un relai du squid externe en utilisant une directive genre cache_peer, et les fonctonnalités de couplages des protocole htcp et icp (si je me souviens bien):
squid-cache.org/Versions/v3/ … _peer.html
en.wikipedia.org/wiki/HTCP
en.wikipedia.org/wiki/Internet_Cache_Protocol
mais précisément quoi faire… :confused:

Je suis content parce que mon petit souci t’interpelles.

Effectivement les pistes que tu me proposes vont bien en ce sens.

Je me présente un peu: je suis formateur en Réseaux et TELECOM dans un centre de Réeducation Professionnel pour personnes Handicapées.

Mon réseau est sauvegardé via un serveur SQUID sur ETCH accompagné d’un Firewall basé sur IPTABLE le tout se connecte sur le NET via un Firewall CISCO.

Dans le cadre de la formation je fais une initiation à Linux en utilisant UBUNTU en poste de travail et DEBIAN ETCH en serveur.

Un de mes stagiaires m’a demandé de bosser sur SQUID sur une ETCH il s’est vraiment bien débrouillé bien sur avec un peu d’aide. Sa configuration était hors de mon Réseaux sécurisé.

Alors lui est venu l’idée de connecter son architecture derrière la mienne. Bien sur ce qui à conduit à deux Squid’s en série.

Ce matin nous avons bossé un peu dessus et effectivement nous avons trouvé que cache_peer devrait peut être solutionner notre problème.

En fait ça le solutionne en partie. Depuis la machine cliente qui se connecte sur le net via les deux SQUID’s si on tape dans la barre d’addresse google.fr —> ok.

Par contre si l’on fait une recherche de par exemple “webmin” dans la page de garde de google ----> ça ne fonctionne pas.

Nous en déduisons (peut être trop rapidement) que le premier SQUID récupère les renseignements de notre requête dans le cache du deuxième SQUID.
Au moment ou je te parle Dans firefox seul une requête bien écrite dans la barre d’addresse passe. Exemple webmin.com

Ligne rajoutée dans squid.conf

Voilà.

Nous continuons notre travail là dessus et si je trouve quelque chose, je ne manquerais pas de l’annoncer.

yep yep yep !!!

Voici donc que l’un des stagiaires en question a trouvé la réponse après de longues recherche grace au best friend "Google"
En fait pour que ça marche il suffit de rajouter cette ligne dans squid.conf (selon les recommendations à la fin du fichier, pour ma part j’ai fais une recherche sur le fichier avec gedit et je l’ai “dédiésé” pour valider la variable)

	never_direct allow all

si j’ai bien tout compris, de ce fait j’empêche ma requête de faire la recherche directement au lieu de laisser faire le proxy parent… enfin bon j’me comprend :smiley:

du coup tout marche très bien : mon poste distant va sur internet via mon proxy et un proxy parent avec authentification

si besoin je peux montrer le contenu de squid.conf (bien entendu sans les adresses ip et les logins :wink:

[quote=“cotonbud”]
never_direct allow all

si j’ai bien tout compris, de ce fait j’empêche ma requête de faire la recherche directement au lieu de laisser faire le proxy parent… enfin bon j’me comprend :smiley: [/quote]

Non pas tout a fait regardes ça:

http://www.squid-cache.org/Versions/v2/2.6/cfgman/never_direct.html

Je pense qu’il faut mettre plutôt:

http://www.squid-cache.org/Versions/v2/2.6/cfgman/always_direct.html

Dans tous les cas bien joué Maître cotonbud
:bulb:

Content que mes pistes ait servi. :wink: