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

aide squid_ldap_auth

Messagepar VerMan » 01 Avr 2004 21:45

Salut, pouvez vous m'indiquer comme fonctione le commande
squid_ldap_auth dans le shell?

j'ai prouvé avec le suivant:
squid_ldap_auth -b "dc=domain,dc=gob" -f "uid=%s" -h <ip_ici>
et après il me demande un input... je lui donne usr/pass separées par un space: user password <enter>
mais toujours le même message "ERR"

merci pour votre aide
Hector
VerMan
Matelot
Matelot
 
Messages: 1
Inscrit le: 01 Avr 2004 21:37

Messagepar fraedhrim » 02 Avr 2004 13:48

Humm....

La syntaxe "user password" est bonne mais la commande me parait légère :
- pas d'authentification pour interroger l'annuaire

Essaie :
squid_ldap_auth -b "dc=domain,dc=gob" -f "uid=%s" -D "cn=ton_administrateur,ou=Mesutilisateurs,o=Monarbre" -w son_motdepasse -h <ip_ici>

Sinon es-tu sûr que ton uid est renseigné ? J'ai vu des cas où seul le cn est présent (genre Novell NDS administrée par NWadmin) ?

Dans ce cas spécifie que tu veux lire le cn :
squid_ldap_auth -b "dc=domain,dc=gob" -u cn -f "cn=%s" -D "cn=ton_administrateur,ou=Mesutilisateurs,o=Monarbre" -w son_motdepasse -h <ip_ici>

Enfin es-tu sûr de ton "dc=domain,dc=gob" ? En général on voit des trucs du genre "ou=domain,o=gob" ou linverse si domain est ta racine "ou=gob,o=domain".

Tu peux parcourir ton arbre avec un LDAP browser pour vérifier les attribut uid, cn,...
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar SecureMan » 19 Juil 2004 17:59

la commande suivante ne me retourne toujours que ERR :
./squid_ldap_auth -b 'ou=mon_ou,ou=deuxieme_ou,dc=mon_domaine,dc=net' -f 'uid=%s' -D 'cn=compte_admin,ou=mon_ou,ou=deuxieme_ou,dc=mon_domaine,dc=net' -w pass_admin ip_domaine
j'ai essaye les solutions indiquees dans les autres posts, sans succes...

pour info, je tente une authentification sur un 2003 serveur.

Plus d'infos, je viens de sniffer le trafic :
MsgId 1 : Bind request :

MsgId 1 : Bind result :
Result Code: Success (0x00)
Matched DN : null
Error message : null


MsgId=2 Search Request

MsgId=2 Search Result
Result Code : Success (0x00)
Matched DN: null
Error Message : null

MsgId=3 Unbind request
Avatar de l’utilisateur
SecureMan
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 271
Inscrit le: 08 Mars 2004 01:00

Messagepar SecureMan » 20 Juil 2004 11:20

apparemment, c'est un probleme de filtre, si je mets -f 'CN=Prenom Nom' et que je cherche le user correspondant ca fonctionne, le probleme c que lorsque je mets mon ou dans le filtre, ca ne marche plus..'
Avatar de l’utilisateur
SecureMan
Capitaine de vaisseau
Capitaine de vaisseau
 
Messages: 271
Inscrit le: 08 Mars 2004 01:00

Messagepar fraedhrim » 21 Juil 2004 09:18

Salut !

Chez moi le filtre tel quel -f "uid=%s" fonctionne sur une eDirectory Novell.
Question bête : as-tu browsé ton annuaire et vérifié que le champ UID est positionné ?

Autre question : que veux-tu dire par "lorsque je mets mon ou dans le filtre, ca ne marche plus" ?

Sinon je ne suis pas sûr que la ligne de commande supporte les logins avec un espace (si tes logins sont comme ça), genre si tu fais :

./squid_ldap_auth .....
nom prenom password


Enfin dernière question bête : pourquoi tu ne fais pas plutôt de l'authentification transparente avec winbind et samba si tu t'appuies sur un annuaire Microsoft ? Tes postes ne sont pas Microsoft ? Pas dans le domaine ?

A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

AD et Squid

Messagepar nobpn » 25 Juil 2005 10:26

Bonjour,

Tout d'abord je voudrais préciser que je suis un grand débutant en AD et Squid.

Je voulais savoir si il étatit possible de coupler l'AD et squid afin de créer une authentification automatique lors du passage par le proxy.

Je m'explique. Actuellement un script d'authentification permet de se connecter en vérifiant les droits de l'utilisateurs sur l'AD du groupe. Mais il est actuellement nécessaire de rtaper ses logins et mdp.

Une de mes missions cet été est de créer un script de connexion qui devra vérifié directement dans l'AD si l'utilisateur peut accéder à internet sans a voir à taper login et mdp.

En espérant avopir été assez clair.

D'avance merci.
nobpn
Matelot
Matelot
 
Messages: 8
Inscrit le: 22 Juil 2005 12:29

Messagepar fraedhrim » 25 Juil 2005 14:29

C'est possible !

Pour cela il faut utiliser Samba et Winbind. En gros tu installes Samba sur la machine Squid. Tu intègres ta machine au domaine AD. Tu crées un groupe dans ton AD dans lequel tu mets tes utilisateurs autorisés à aller sur Internet. Tu configures ton Squid pour s'authentifier sur l'AD avec le protocole NTLM (authentification transparente par challenges) et en vérifiant l'appartenance au groupe (dernières versions de Samba et Squid). Et zou !

Liens utiles :

http://www.squid-cache.org/Doc/FAQ/FAQ-23.html
http://lists.samba.org/archive/samba-nt ... 20636.html (Samba 2 seulement)
http://samba.org/samba/docs/man/Samba3- ... #id2552178 (Samba 3)


Un bout de conf de Squid qui montre l'essentiel pour authentifier en NTLM :

Code: Tout sélectionner

[...]
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="TON_DOMAINE+TON_GROUPE"
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate off
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="TON_DOMAINE+TON_GROUPE"
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

acl all src 0.0.0.0/0.0.0.0
acl pass proxy_auth REQUIRED

http_access allow all pass
http_access deny all
[...]



Remarques :
- L'option de la mort qui tue --require-membership n'est dispo que dans les dernières version de Samba avant il fallait bidouiller un truc pas élégant
- Le programme "ntlm_auth" utilisé est bien celui qui vient avec Samba pas celui qui vient avec Squid
- Le "+" entre le domaine et le groupe dans la commande vient du fait que j'ai défini le "+" comme séparateur dans la conf de Samba (par défaut le "/" est un peu pénible à manipuler du fait de sa signification dans Linux)
- Avec une AD sur système 2003 SP1 il faut absolument une des dernières build de Samba car un bug est apparu qui empèche l'authentification (https://bugzilla.redhat.com/bugzilla/sh ... ?id=154558)

A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Merci !

Messagepar nobpn » 10 Août 2005 15:45

Bonjour,

Et merci de cette réponse.

Mais elle me servira à rien car la mission a été mise au oubliette...
C'est toujours urgent et finalement on abandonne...

Bref merci de cette longue réponse que je garde sous le coude !

++
nobpn
Matelot
Matelot
 
Messages: 8
Inscrit le: 22 Juil 2005 12:29

Messagepar Glam » 19 Jan 2006 11:43

Bonjour a tous,

Je up ce vieux topic afin de ne pas en ouvrir un inutilement.

Je doit mettre en place un proxy squid/squidguard avec authentification par l'active directory.

L'installation de squid/squidGuard est bonne,
l'installation de squid_ldap_auth est bonne aussi, et la commande dans le shell qui ce connecte a l'active directory :

./squid_ldap_auth......

fonctionne tres bien, elle me renvoie un jolie OK quand je rentre le login password d'un utilisteur.

Par contre lorsque je passe a la config de squid (squid.conf) la ca ne va plus, quand j'essaye d'authentifier un utilisateur je me retrouve avec "could not bind to bindDN....." dans le fichier de log.
J'en ai deduit que cela venait de la ligne de squid_ldap_auth :

Voici les lignes de mon fichier de config (ce n'est pas une authentification par groupe mais par compte loggin/password) :

auth_param basic program /usr/local/squid/libexec/squid_ldap_auth -R -D "CN=ADMIN_loggin,CN=USER_loggin,DC=Mon,DC=Domain,DC=fr" -w "ADMIN_password" -b "dc=Mon,dc=domain,dc=fr" -f sAMAccountName=%s -h 192.168.X.X

auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off


Est-ce qu'il faut specifié une "OU" ?
Quelqu'un aurait-il une idée sur ce qui cloche ^^ ?

Questions subsidiaire :

- La commande /usr/local/squid/sbin/squid (restart, stop, start) ne fonctionne pas je suis obligé d'aller killer le process et comme par magie il se relance tout seul :/. Comment cela ce fait-il ? Est-ce que le auth_param realm Squid proxy-caching web server a quelque choses a voir ?

D'avance merci pour votre aide.
Glam
Matelot
Matelot
 
Messages: 3
Inscrit le: 19 Jan 2006 11:17

Messagepar fraedhrim » 19 Jan 2006 13:19

Salut !

Quelle distribution Linux utilises-tu ?
As-tu webmin d'installé ?
Quelle est ta commande qui marche en ligne de commande ?
Peux-tu vérifier que cette commande en ligne utilise bien le même squid_ldap_auth que tu utilises dans la conf de squid (même chemin ?) ?

Pour relancer squid utilise "service squid restart" l'exécutable squid n'est pas faire pour être lancé comme ça. Sinon juste pour appliquer une conf le mieux est "service squid reload". Plus rapide.

A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar Glam » 19 Jan 2006 13:45

Salut Fraed,

La distribution que j'utilise est une Debian Stable,
Webmin n'est pas installer cela a etait fait au debut mais par soucis pratique il a etait preferable de ne pas utiliser webmin afin de bien approfondir le fichier de config de squid donc reinstallation sans webmin.

Voici la commande que je rentre dans le prompt :

./squid_ldap_auth -b "dc=Mon,dc=Domain,dc=fr" -u cn -f "cn=%s" -D "cn=Admin_login,ou=Info,dc=Mon,dc=Domain,dc=fr" -w admin_password -h 192.168.X.X

Je tape entrer
Ensuite je rentre : login password
et cela me renvoi "OK"

J'ai recopier cette ligne dans le squid.conf ce qui donne :

auth_param basic program /usr/local/squid/libexec/squid_ldap_auth -b "dc=Mon,dc=Domain,dc=fr" -u cn -f "cn=%s" -D "cn=Admin_login,ou=Info,dc=Mon,dc=Domain,dc=fr" -w admin_password -h 192.168.X.X

EDIT :
A present je n'ai plus d'erreur dans le fichier de log, mais quand je rentre le login password pour m'authentifier j'obtient un time-out de IE qui me dit qu'il n'arrive pas a joindre l'hote...(page d'acceuil : www.google.fr)
Avant d'activer l'authentification le proxy fonctionné, une petit idée sur la config de squid ?

Les lignes suivantes sont bien presente :

acl identification proxy_auth REQUIRED
http_access allow identification
http_access deny all


EErrrfffeeuuuu

La commande "service squid restart (ou) reload" me renvoi command not found.

Merci ^^.
Glam
Matelot
Matelot
 
Messages: 3
Inscrit le: 19 Jan 2006 11:17

Messagepar Glam » 20 Jan 2006 14:24

Me revoila,

C'est terminée !!!!!!!!!!!!!

Merci Fraed !!!!!!!

Tout fonctionnent parfaitement bien ^^, le probleme du time-out est reglé :wink: .
l'authentification se fait avec tous les utilisateurs presents dans l'active directory.

J'ai juste remplacer :

"cn=%s"

par

"sAMAccountName=%s"

Afin d'utiliser le login plutot que le CommonName.

Encore un grand merci Fraed. :biz:
Glam
Matelot
Matelot
 
Messages: 3
Inscrit le: 19 Jan 2006 11:17

Messagepar fraedhrim » 20 Jan 2006 15:05

Ben c'est cool alors !
A+
Avatar de l’utilisateur
fraedhrim
Amiral
Amiral
 
Messages: 1264
Inscrit le: 27 Jan 2004 01:00
Localisation: Nantes

Messagepar Mercusi0 » 31 Jan 2006 14:39

fraedhrim a écrit:C'est possible !

Pour cela il faut utiliser Samba et Winbind. En gros tu installes Samba sur la machine Squid. Tu intègres ta machine au domaine AD. Tu crées un groupe dans ton AD dans lequel tu mets tes utilisateurs autorisés à aller sur Internet. Tu configures ton Squid pour s'authentifier sur l'AD avec le protocole NTLM (authentification transparente par challenges) et en vérifiant l'appartenance au groupe (dernières versions de Samba et Squid). Et zou !

Liens utiles :

http://www.squid-cache.org/Doc/FAQ/FAQ-23.html
http://lists.samba.org/archive/samba-nt ... 20636.html (Samba 2 seulement)
http://samba.org/samba/docs/man/Samba3- ... #id2552178 (Samba 3)


Un bout de conf de Squid qui montre l'essentiel pour authentifier en NTLM :

Code: Tout sélectionner

[...]
auth_param ntlm program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-ntlmssp --require-membership-of="TON_DOMAINE+TON_GROUPE"
auth_param ntlm children 5
auth_param ntlm max_challenge_reuses 0
auth_param ntlm max_challenge_lifetime 2 minutes
auth_param ntlm use_ntlm_negotiate off
auth_param basic program /usr/bin/ntlm_auth --helper-protocol=squid-2.5-basic --require-membership-of="TON_DOMAINE+TON_GROUPE"
auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

acl all src 0.0.0.0/0.0.0.0
acl pass proxy_auth REQUIRED

http_access allow all pass
http_access deny all
[...]



Remarques :
- L'option de la mort qui tue --require-membership n'est dispo que dans les dernières version de Samba avant il fallait bidouiller un truc pas élégant
- Le programme "ntlm_auth" utilisé est bien celui qui vient avec Samba pas celui qui vient avec Squid
- Le "+" entre le domaine et le groupe dans la commande vient du fait que j'ai défini le "+" comme séparateur dans la conf de Samba (par défaut le "/" est un peu pénible à manipuler du fait de sa signification dans Linux)
- Avec une AD sur système 2003 SP1 il faut absolument une des dernières build de Samba car un bug est apparu qui empèche l'authentification (https://bugzilla.redhat.com/bugzilla/sh ... ?id=154558)

A+


Bonjour.

Je suis en train d'essayer de mettre en place le même système d'authentification. Par défaut mon serveur squid/squidGuard fonctionne très bien.

Mais j'ai un petit soucis lorsque je suis les informations que vous donnez.
Lorsque j'essaie de démarrer squid, une fois que j'ai fait tout ça, il me dit

2006/01/31 11:56:40| parseConfigFile: line 1273 unrecognized: '--require-membership-of="mondomaine+mongroupe"'
2006/01/31 11:56:40| parseConfigFile: line 1279 unrecognized: '--require-membership-of="mondomaine+mongroupe"'


Le séparateur que j'ai défini dans smb.conf est aussi un "+"

J'utilise Ubuntu Breezy 5.10.

Merci d'avance
Mercusi0
Matelot
Matelot
 
Messages: 3
Inscrit le: 31 Jan 2006 14:34

Messagepar Mercusi0 » 01 Fév 2006 09:45

Bonjour. Je remonte un peu le topic car je suis toujours à la recherche d'une solution pour ce problème :).
Mercusi0
Matelot
Matelot
 
Messages: 3
Inscrit le: 31 Jan 2006 14:34

PrécédentSuivant

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é