Squid LDAP authentification

Forum d'assistance et d'échange sur l'installation, la configuration, et l'utilisation des système Linux et BSD. Vous pouvez y poster vos questions concernant ces systèmes d'exploitation en faisant l'effort préalable de rechercher dans le forum, dans les manuels et les documentations que la réponse n'y figure pas.

Modérateur: modos Ixus

Messagepar bufo_72 » 27 Jan 2004 11:24

Bonjour. <BR>J'ai parcouru qques pages du forum et je n'ai pas trouvé de réponse à mon problème. <BR>Je vous explique. <BR>Je fais tourner Squid 2.5 sur une Redhat 9, jusque là, ça marche... heureusement d'ailleurs. <BR>Je souhaite maintenant faire une authentification dans un annuaire LDAP pour voir si le User connecté appartient à un groupe (qui lui autorise l'accès au web). <BR>Dans mon fichier Squid.conf, j'ai les lignes suivantes (entre autres) : <BR> - auth_param basic program .../squid_ldap_auth ..... <BR> - auth_param basic children 5 <BR> - auth param realm ... <BR> - external_acl_type internetok %LOGIN .../squid_ldap_auth ..... <BR> - acl group_internet external internetok <BR> - http_access_allow group_internet <BR> - http_access deny all <BR> <BR>Je ne sais pas si ces lignes suffisent, s'il en manque, s'il y en a trop, je ne comprends rien quand je lis les mailing lists chez Squid et j'en ai marre. <BR>Si quelqu'un a déjà fait une telle config, merci de me venir en aide <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>PS : si vous avez besoin de plus d'infos concernant les paramètres passés à squid_ldap_auth, je peux vous les donner <IMG SRC="images/smiles/icon_wink.gif"> <BR> <BR>
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Messagepar moktar » 27 Jan 2004 11:50

Si il y a une chose qu'on ne peut retirer a Squid, c'est l'excellence de sa documentation ..... <!-- BBCode auto-link start --><a href="http://www.squid-cache.org" target="_blank">www.squid-cache.org</a><!-- BBCode auto-link end --> <BR> <BR>
All unix is love (moktar - 2004)
Avatar de l’utilisateur
moktar
Aspirant
Aspirant
 
Messages: 119
Inscrit le: 04 Déc 2003 01:00
Localisation: france

Messagepar bufo_72 » 27 Jan 2004 14:47

Merci pour le lien, ça fait une semaine que je lis cette ##*%ùù¿¿¿¿ $£ de doc et je ne trouve toujours pas l'info que je cherche <IMG SRC="images/smiles/icon_frown.gif"> <BR> <BR>A tout hasard, si tu connais un peu, je te poste une commande qui ne fonctionne pas comme je le souhaite, sans que je comprenne pourquoi ... <BR>En fait, je veux faire une authentification sur un user et vérifier dans ses attributs (ceux du suer), qu'il fait partie d'un groupe donné. <BR>J'utilise donc la cde Squid_Ldap_auth comme suit : <BR> <BR>./squid_ldap_auth -b "ou=users,o=Monarbre" -u cn -f groupmembership=cn=internetgroup,ou=groups,o=Monarbre -h 127.0.0.1 -p 389 <BR> <BR>Quand je m'identifie avec un compte qui fait partie de InternetGroup, la cde me retourne "ERR". Si je fais la même chose sans le filtre, la cde me retourne "OK". <BR> <BR>Où c'est-y que j'ma gourré ?? <IMG SRC="images/smiles/icon_biggrin.gif">
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Messagepar fraedhrim » 27 Jan 2004 15:27

Salut ! <BR> <BR>Je pense qu'il faut que tu fasses un genre de jointure entre un utilisateur et son appartenance à un groupe. Essaie avec : <BR>./squid_ldap_auth -b "ou=users,o=Monarbre" -u cn -f "(&(cn=%s)(groupMembership=cn=internetgroup,ou=groups,o=Monarbre)) -h 127.0.0.1 <BR> <BR>A voir aussi si tu n'as pas besoin de t'authentifier pour t'authentifier <IMG SRC="images/smiles/icon_biggrin.gif"> (ie : si tu ne dois pas te connecter à ta base LDAP avec un utilisateur qui a le droit de parcourir ton arbre pour pouvoir faire tes requètes). Dans ce cas ajoute : <BR>-D "cn=utilisateur,ou=Mesutilisateurs,o=Monarbre" -w mot-de-passe <BR> <BR> <BR>Bonne chance.
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar moktar » 27 Jan 2004 16:17

http_access_allow group_internet <BR> <BR>essaye un peu ca : <BR>http_access allow group_internet <BR>-------------^ <BR> <BR>pour plus d'infos <!-- BBCode auto-link start --><a href="http://group-ldap-auth.sourceforge.net/" target="_blank">http://group-ldap-auth.sourceforge.net/</a><!-- BBCode auto-link end --> <BR> <BR>a+ <BR>
All unix is love (moktar - 2004)
Avatar de l’utilisateur
moktar
Aspirant
Aspirant
 
Messages: 119
Inscrit le: 04 Déc 2003 01:00
Localisation: france

Messagepar bufo_72 » 27 Jan 2004 16:17

Bingo, merci beaucoup Fraedhrim, t'es un chef. <BR>Bon d'accord, ça doit faire 5000000 tests qu'on fait, d'habitude on pensait bien à mettre ces paramètres (-D et -w) mais je sais pas pourquoi, aujourd'hui, c'était relache et on a complètement oublié. <BR>Donc, ce coup-ci, la commande passe et nous retourne bien OK !!!! <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>Par contre <IMG SRC="images/smiles/icon_biggrin.gif"> , l'accès n'est toujours pas autorisé pour un compte qui remplit les conditions requises par le filtre (c'est clair ??) => ACCESS DENIED <BR>Si tu veux, quand on veut accéder au web, on chope bien une fenêtre d'authentification pour Squid&Ldap, on saisit le nom et le mot de passe du user et on récupère Access Denied. Donc, le user est bien reconnu dans l'annuaire (si on met n'importe quoi comme cpte, on récupère un message qui dit qu'on n'est pas Authentifié dans l'arbre). Que l'on choisisse un user existant qui fait partie du group Internet ou non, on a à chaque Access Denied. <BR> <BR>Si je reprends mon squid.conf, voila ce que j'ai : <BR>- auth_param basic program .../squid_ldap_auth -b ou=users,o=Monarbre -u cn -h 127.0.0.1 -p 389 -D cn=admin,o=Monarbre -w password <!-- BBCode Start --><B> <== cette commande fonctionne en shell (je lui donne le nom et le pwd d'un user ok et elle me dit OK) </B><!-- BBCode End --> <BR>- auth_param basic children 5 <!-- BBCode Start --><B> <== ligne reprise d'exemple sur le net </B><!-- BBCode End --> <BR>- auth param realm Verif dans l'annuaire LDAP <!-- BBCode Start --><B> <== baratin dans la fenêtre de login </B><!-- BBCode End --> <BR>- external_acl_type internetok %LOGIN .../squid_ldap_auth -b ou=users,o=Monarbre - f groupmembership=cn=internetgroup,o=Monarbre -u cn -h 127.0.0.1 -p 389 -D cn=admin,o=Monarbre -w password <!-- BBCode Start --><B> <== cette commande fonctionne en shell (je lui donne le nom et le pwd d'un user ok et elle me dit OK) </B><!-- BBCode End --> <BR>- acl group_internet external internetok <!-- BBCode Start --><B> <== déclaration d'un acl en rapport avec la cde juste au dessus </B><!-- BBCode End --> <BR>- http_access_allow group_internet <!-- BBCode Start --><B> <== autorisation pour les users du groupe </B><!-- BBCode End --> <BR>- http_access deny all <!-- BBCode Start --><B> <== refus pour tous les autres </B><!-- BBCode End --> <BR> <BR>Voila, si t'as une autre idée de génie, n'hésite pas <IMG SRC="images/smiles/icon_help.gif"> <BR> <BR> <BR>PS : merci de t'être inscrit pour me répondre, très sympa <IMG SRC="images/smiles/icon_smile.gif">
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Messagepar bufo_72 » 27 Jan 2004 16:19

Bingo, merci beaucoup Fraedhrim, t'es un chef. <BR>Bon d'accord, ça doit faire 5000000 tests qu'on fait, d'habitude on pensait bien à mettre ces paramètres (-D et -w) mais je sais pas pourquoi, aujourd'hui, c'était relache et on a complètement oublié. <BR>Donc, ce coup-ci, la commande passe et nous retourne bien OK !!!! <IMG SRC="images/smiles/icon_smile.gif"> <BR> <BR>Par contre <IMG SRC="images/smiles/icon_biggrin.gif"> , l'accès n'est toujours pas autorisé pour un compte qui remplit les conditions requises par le filtre (c'est clair ??) => ACCESS DENIED <BR>Si tu veux, quand on veut accéder au web, on chope bien une fenêtre d'authentification pour Squid&Ldap, on saisit le nom et le mot de passe du user et on récupère Access Denied. Donc, le user est bien reconnu dans l'annuaire (si on met n'importe quoi comme cpte, on récupère un message qui dit qu'on n'est pas Authentifié dans l'arbre). Que l'on choisisse un user existant qui fait partie du group Internet ou non, on a à chaque Access Denied. <BR> <BR>Si je reprends mon squid.conf, voila ce que j'ai : <BR>- auth_param basic program .../squid_ldap_auth -b ou=users,o=Monarbre -u cn -h 127.0.0.1 -p 389 -D cn=admin,o=Monarbre -w password <!-- BBCode Start --><B> <== cette commande fonctionne en shell (je lui donne le nom et le pwd d'un user ok et elle me dit OK) </B><!-- BBCode End --> <BR>- auth_param basic children 5 <!-- BBCode Start --><B> <== ligne reprise d'exemple sur le net </B><!-- BBCode End --> <BR>- auth param realm Verif dans l'annuaire LDAP <!-- BBCode Start --><B> <== baratin dans la fenêtre de login </B><!-- BBCode End --> <BR>- external_acl_type internetok %LOGIN .../squid_ldap_auth -b ou=users,o=Monarbre - f groupmembership=cn=internetgroup,o=Monarbre -u cn -h 127.0.0.1 -p 389 -D cn=admin,o=Monarbre -w password <!-- BBCode Start --><B> <== cette commande fonctionne en shell (je lui donne le nom et le pwd d'un user ok et elle me dit OK) </B><!-- BBCode End --> <BR>- acl group_internet external internetok <!-- BBCode Start --><B> <== déclaration d'un acl en rapport avec la cde juste au dessus </B><!-- BBCode End --> <BR>- http_access_allow group_internet <!-- BBCode Start --><B> <== autorisation pour les users du groupe </B><!-- BBCode End --> <BR>- http_access deny all <!-- BBCode Start --><B> <== refus pour tous les autres </B><!-- BBCode End --> <BR> <BR>Voila, si t'as une autre idée de génie, n'hésite pas <IMG SRC="images/smiles/icon_help.gif"> <BR> <BR> <BR>PS : merci de t'être inscrit pour me répondre, très sympa <IMG SRC="images/smiles/icon_smile.gif">
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Messagepar moktar » 27 Jan 2004 16:20

http_access_allow group_internet <BR> <BR>essaye un peu ca : <BR>http_access allow group_internet <BR>-------------^ <BR> <BR>pour plus d'infos <!-- BBCode auto-link start --><a href="http://group-ldap-auth.sourceforge.net/" target="_blank">http://group-ldap-auth.sourceforge.net/</a><!-- BBCode auto-link end --> <BR> <BR>a+ <BR>
All unix is love (moktar - 2004)
Avatar de l’utilisateur
moktar
Aspirant
Aspirant
 
Messages: 119
Inscrit le: 04 Déc 2003 01:00
Localisation: france

Messagepar bufo_72 » 27 Jan 2004 16:26

Pardon Moktar, j'ai bien écrit comme tu dis dans le fichier, c'est juste mon post qui est mal écrit, désolé. <BR>Concernant LDAP_AUTH_GROUP, on a compris que l'on pouvait s'en passer en faisant un filtre directement sur les attributs du user. D'ailleurs, ça fonctionne depuis le shell. <BR>En plus, on ne peut pas se baser sur les infos du groupe car pour des raisons de volumétrie, de synchro et de facilité de mise à jour, les groupes ne sont pas mis à jour pour les memberships. Si tu veux, on a des groupes de 8000 users et le temps de traitement de ces groupes provoquent des asynchro... si si, je te jure. <BR> <BR> <BR>Donc, on ne peut se baser que sur les users.
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Messagepar fraedhrim » 27 Jan 2004 17:03

Hop ! <BR> <BR>A ta place je n'utiliserais pas d'external ACL pour la gestion du groupe. Ca te fait deux instance de squid_ldap_auth à tourner alors que tu peux le faire en un coup simplement avec le filtre que je te mettais plus haut (qui matche ton user et ton groupe d'un coup). <BR> <BR>auth_param basic program /usr/lib/squid/squid_ldap_auth -b "ou=users,o=Monarbre" -u cn -f "(&(cn=%s)(groupMembership=cn=internetgroup,ou=groups,o=Monarbre)) -h 127.0.0.1 -D cn=admin,o=Monarbre -w password <BR> <BR>Tu ajoutes l'ACL : <BR>acl LOGIN proxy_auth REQUIRED <BR> <BR>Et les autorisations : <BR>http_access allow LOGIN <BR>http_access deny all <BR> <BR>Et exit l'external... <BR> <BR>Enfin chez nous ça marche <IMG SRC="images/smiles/icon_biggrin.gif"> <BR> <BR>Bon courage.
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar moktar » 27 Jan 2004 17:03

Si tu y arrives avec un shell, alors pourquoi ne fais tu pas un shell qui renvoi OK ou ERR en fonction du cas ? <BR>
All unix is love (moktar - 2004)
Avatar de l’utilisateur
moktar
Aspirant
Aspirant
 
Messages: 119
Inscrit le: 04 Déc 2003 01:00
Localisation: france

Messagepar fraedhrim » 27 Jan 2004 17:23

Zoup ! <BR> <BR>En passant le "auth_param basic children 5" est assez important. C'est le nombre d'instances de "squid_ldap_auth" à tourner consécutivement. Arrête moi si tu le sais déjà mais en fait les 5 (dans ton cas) "squid_ldap_auth" sont chargés au démarrage de squid et attendent des demandes d'authentification. Elles ne sont pas connectées à la base (elles s'y connectent à chaque demande) mais sont quand même lancées pour plus d'efficacité. Donc si tu dois avoir beaucoup d'authentifications au même moment tu peux monter la valeur. Chez nous par exemple pour 2000 users on table sur 20 instances mais c'est assez approximatif sur ce plan là par contre. <BR> <BR>A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar bufo_72 » 27 Jan 2004 17:38

Re re re merci Fraedhrim. <BR>Décidément, je crois qu'on avait tous les bouts d'info et de codes, même trop d'ailleurs <IMG SRC="images/smiles/icon_biggrin.gif"> , et qu'on avait du mal à comprendre comment les arranger. <IMG SRC="images/smiles/icon_biggrin.gif"> <BR> <BR>Pour le basic Children, c'est ce qu'on avait compris, merci quand même. <BR> <BR>Puisque tu as l'air de maitriser cet outil, j'en profite pour te poser 3 autres questions : <BR>- dans cette config, je lui indique dans quelle partie de l'arbre se trouve le compte utilisé. Or, nous avons un arbre avec 8000 comptes répartis dans pleins de branches et il n'est donc pas possible de donner la même config pour tous les users. Sais-tu si la verison 2.5 Stable 1 permet de "browser" l'arbre depuis la racine pour chercher un compte ? Bien entendu, tous nos cptes sont uniques. <BR>- à la connexion, si j'utilise un compte existant qui n'appartient pas au groupe, je récupère le même message que si je mets un compte inexistant après 3 essais (à savoir que je ne suis pas authentifié dans l'arbre). Ce n'est pas très grave en soi puisque ça marche quand ça doit marcher <IMG SRC="images/smiles/icon_smile.gif"> mais j'aurais aimé trouver un beau message me disant Access Denied dans ce cas précis. <BR>- as-tu aussi eu du mal à trouver cette config, si oui, où as-tu trouvé les infos correctes (je ne trouve pas que les mailings list de Squid soient géniales...) <BR> <BR>En tout cas, merci beaucoup, j'ai plus avancé en 1 journée qu'en une semaine <IMG SRC="images/smiles/icon_bawling.gif"> <IMG SRC="images/smiles/icon_lol.gif">
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Messagepar fraedhrim » 29 Jan 2004 11:28

Salut ! <BR> <BR>Je suis bien loin de maitriser l'outil je me suis juste puissamment pris la tête sur l'authentification d'un user dans un groupe sans recourir à des filtres de la mort. <IMG SRC="images/smiles/icon_biggrin.gif"> <BR> <BR>Pour ce qui est des groupes dans des branches différentes j'ai le même soucis et malheureusement je n'ai pas trouvé la solution donc je browse tout l'arbre (pas top optimisé car il s'agit d'une eDirectory Novell donc on a aussi tous les jobs d'install, les imprimantes etc...). <BR>Tu peux donc browser tout ton arbre en stipulant la base de ton arbre au lieu de ton groupe d'users : <BR> <BR>-b "o=Monarbre" <BR> <BR>Pour le DENIED que ce soit un user inexistant ou nom du groupe j'ai le même phénomène chez nous. Donc pas de soluce non plus. <BR> <BR>Enfin c'est vrai que pour trouver la bonne config il faut ramer. Il y a plein de documents avec des bribes de solutions mais pas un vrai tutoriel bien documenté. <BR>C'est un peu le côté pénible de squid. <BR> <BR>A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar bufo_72 » 29 Jan 2004 16:25

Merci Fraedhrim !! <BR>Effectivement, pour le parcours de l'arbre, j'ai vu que ça fonctionnait très bien. Etonnament, on m'avait dit que ça ne marchait pas, peut-être un pb de version. <BR>En tout cas, ça marche pile-poil chez nous, à l'exception de la page Access Denied, pas trop grave en soi. <BR>En tout cas, je te remercie une nouvelle fois. <BR>On aura peut--etre l'occasion de redialoguer, on bosse actuellement sur le module proxy cache Apache avec une authentification SSo (SiteMinder). <IMG SRC="images/smiles/icon_biggrin.gif"> <BR>J'espère que ce sera moins torturé que Squid
Avatar de l’utilisateur
bufo_72
Quartier Maître
Quartier Maître
 
Messages: 12
Inscrit le: 27 Jan 2004 01:00
Localisation: Metz

Suivant

Retour vers Linux et BSD (forum généraliste)

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité