Retourner aux forums || Retourner au forum
Linux.general : LDAP sous Debian
Posté par mc_arnaud () le 06 juillet 2009Je suis en train de mettre en place un serveur LDAP sous Debian, et pour ce faire, j'ai suivi ce tutoriel :
http://debianclusters.cs.uni.edu/index.php/User_Authenticati(...)
J'ai suivi scrupuleusement les étapes, aussi bien pour les clients que pour le serveur LDAP et pourtant, impossible de me connceter à un serveur client avec un compte LDAP. J'ai :
serveur1 : premier serveur client
serveur2 : deuxième serveur client
serveurldap : serveur LDAP
Ces 3 serveur sont des machines virtuelles VMWare sous Debian Lenny, noyau 2.6.26-2-686, sur la meme plage d'adresses IP, elles se pinguent toutes. Sur chaque serveur (client et LDAP) j'ai :
/etc/pam.d/common-account
account sufficient pam_ldap.so
account required pam_unix.so try_first_pass
/etc/pam.d/common-auth
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass
/etc/pam.d/common-password
password sufficient pam_ldap.so
password required pam_unix.so nullok obscure md5
/etc/pam.d/common-session
session sufficient pam_ldap.so
session required pam_unix.so
/etc/nsswitch.conf
passwd: files ldap
group: files ldap
shadow: files ldap
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
/etc/ldap/ldap.conf
BASE dc=clunapix,dc=dom
URI ldap://10.92.6.114
Sur le serveur LDAP j'ai :
# ps aux | grep slapd
openldap 1742 0.0 0.2 34992 4744 ? Ssl Jun24 1:44 /usr/sbin/slapd -g openldap -u openldap -f /etc/ldap/slapd.conf
root 4998 0.0 0.0 3144 768 pts/0 R<+ 15:05 0:00 grep slapd
preuve que le serveur LDAP tourne.
Un ldapsearch sur le serveur LDAP me donne une sortie correcte. Par exemple :
# ldapsearch -x uid=un_user_qui_existe -D "cn=admin,dc=clunapix,dc=dom" -W
Enter LDAP Password:
# extended LDIF
#
# LDAPv3
# base (default) with scope subtree
# filter: uid=un_user_qui_existe
# requesting: ALL
#
# un_user_qui_existe, People, clunapix.dom
dn: uid=un_user_qui_existe,ou=People,dc=clunapix,dc=dom
uid: un_user_qui_existe
cn: Prenom Nom
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword:: e2NyeXB0fSQxJGIwcjZQZWhRJHdQUHlMekRzWlVsZHBja2dFRlkzUjA=
shadowLastChange: 14419
shadowMax: 99999
shadowWarning: 7
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 100
homeDirectory: /home/un_user_qui_existe
gecos: Prenom Nom,,,
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1 Si j'essaye de me connecter au serveur serveur1, j'obtiens :
$ ssh un_user_qui_existe@serveur1
un_user_qui_existe@serveur1's password:
Permission denied, please try again.
un_user_qui_existe@serveur1's password:
Permission denied, please try again.
un_user_qui_existe@serveur1's password:
Permission denied (publickey,password).
Si j'installe Gnome et son gestionnaire de connexion avec un sélecteur de figures sur serveur1, je vois apparaitre dans le sélecteur de figures tous les utilisateurs qui ont été configurés sur le serveur LDAP, mais pas moyen de m'authentifier non plus. Les serveurs clients communiquent donc bien avec le serveur LDAP pour ce qui concerne la partie NSS, par contre PAM ne semble pas fonctionner et je ne vois pas où est l'erreur. Est-ce que quelqu'un à une idée ? Merci.
--
Rénald
> Lire le message (9 commentaires, moyenne: 1,2).
ldap.conf
Attention, pam n'utilise pas forcément ldap.conf
Regarde le manuel pour lui préciser le bon fichier à utiliser
penser à configuer pam_ldap.conf et nss_ldap.conf
A regarder rapidement, il te manque la partie configurant pam et nss si tu as bien installé libnss-ldap et libpam-ldap.
Un fichier /etc/libnss-ldap.conf contenant :
host serveurldap
base dc=clunapix,dc=com
ldap_version 3
Un fichier /etc/pam_ldap.conf avec ;
host serveurldap
base dc=clunapix,dc=net
ldap_version 3
pam_password md5
Pense à chmod 0644 ces deux fichiers. Tu auras peut-être à y ajouter un binddn, bindpw, scope et cie.
-
[^]Re: penser à configuer pam_ldap.conf et nss_ldap.conf
Posté par mc_arnaud () le 07/07/2009 à 14:38. (lien). Évalué à 1.Bonjour,
J'avais effectivement installé libnss-ldap et libpam-ldap, par contre je n'avais pas touché aux fichiers /etc/libnss-ldap.conf et /etc/pam_ldap.conf. J'ai donc mis les doigts dedant et ils étaient partiellement configurés : seules les lignes host étaient commentées. Je les ai donc décommentées et j'ai mis l'adresse du serveur LDAP, mais le problème est toujours le même.
J'ai ensuite lu le man pam, mais je n'ai rien trouvé que je ne sache déjà ou qui me soit utile.
J'ai parcouru aussi les fichiers /etc/pam.d/login | passwd | sshd | su mais ils semblent tous faire appel aux fichiers /etc/pam.d/common-* : présence des lignes :
@include common-auth
@include common-account
@include common-passwd
@include common-session
Bref, j'ai l'impression d'en etre au même point.
--
Rénald
Liens sur ldap.conf
Salut,
J'ai une conf identique (PDC LDAP/Samba Debian avec clients ubuntu).
J'ai un ldap.conf avec toutes les infos dedans (y compris les infos pour le service NSS).
J'ai un lien symbolique de libnss-ldap.conf et pam-ldap.conf (de mémoire) sur le ldap.conf.
De cette manière mes fichiers sont cohérents.
libnss-ldap te sert à trouver les comptes systèmes.
pam-ldap à l'authentification
ldap.conf est le fichier de configuration (des fois par défaut) pour les applications utilisant ldap (ex : ldapsearch and co).
Pour tester ta conf, commence par faire un ldapsearch (avec -ZZ si tu fais du SSL / start_tls).
Si ça répond, alors fait un getent passwd (qui doit te retourner la totalité de tes comptes utilisateurs). Si ça bloque a ce niveau, il faut bidouiller ton libnss-ldap.conf (par exemple en ajoutant du debug, le support est compilé dans les paquages debian). Enfin, si tout ça fonctionne alors tu peux essayer de t'authentifier. La encore les logs (par défaut /var/log/daemon.log) sont tes amis.
Good luck !
-
[^]Re: Liens sur ldap.conf
Posté par mc_arnaud () le 07/07/2009 à 17:39. (lien). Évalué à 1.Après avoir fouillé dans les logs, j'ai essayé de modifier plusieurs paramètres dans le fichier /etc/libnss-ldap.conf mais rien à faire, je n'arrive pas à me connecter et à chaque fois que j'essaye j'ai ceci dans /var/log/auth.log
Jul 7 17:28:38 clunapix1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.92.6.114: Invalid credentials
Jul 7 17:28:38 clunapix1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.92.6.114: Invalid credentials
Jul 7 17:28:38 clunapix1 nscd: nss_ldap: reconnecting to LDAP server...
Jul 7 17:28:38 clunapix1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.92.6.114: Invalid credentials
Jul 7 17:28:38 clunapix1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.92.6.114: Invalid credentials
Jul 7 17:28:38 clunapix1 nscd: nss_ldap: reconnecting to LDAP server (sleeping 1 seconds)...
Jul 7 17:28:39 clunapix1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.92.6.114: Invalid credentials
Jul 7 17:28:39 clunapix1 nscd: nss_ldap: failed to bind to LDAP server ldap://10.92.6.114: Invalid credentials
Jul 7 17:28:39 clunapix1 nscd: nss_ldap: could not search LDAP server - Server is unavailable
Jul 7 17:28:39 clunapix1 sshd[2130]: Invalid user un_user_qui_existe from 10.92.1.134
Jul 7 17:28:39 clunapix1 sshd[2130]: Failed none for invalid user un_user_qui_existe from 10.92.1.134 port 42201 ssh2
Jul 7 17:28:40 clunapix1 sshd[2130]: pam_ldap: error trying to bind (Invalid credentials)
Jul 7 17:28:40 clunapix1 sshd[2130]: pam_unix(sshd:auth): check pass; user unknown
Jul 7 17:28:40 clunapix1 sshd[2130]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=$
Jul 7 17:28:42 clunapix1 sshd[2130]: Failed password for invalid user un_user_qui_existe from 10.92.1.134 port 42201 ssh2
Jul 7 17:28:44 clunapix1 sshd[2130]: pam_ldap: error trying to bind (Invalid credentials)
Jul 7 17:28:44 clunapix1 sshd[2130]: pam_unix(sshd:auth): check pass; user unknown
Jul 7 17:28:45 clunapix1 sshd[2130]: Failed password for invalid user un_user_qui_existe from 10.92.1.134 port 42201 ssh2
Jul 7 17:28:47 clunapix1 sshd[2130]: pam_ldap: error trying to bind (Invalid credentials)
Jul 7 17:28:47 clunapix1 sshd[2130]: pam_unix(sshd:auth): check pass; user unknown
Jul 7 17:28:49 clunapix1 sshd[2130]: Failed password for invalid user un_user_qui_existe from 10.92.1.134 port 42201 ssh2
Jul 7 17:28:49 clunapix1 sshd[2130]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.92.1.1$
-
[^]Re: Liens sur ldap.conf
Posté par mc_arnaud () le 07/07/2009 à 17:59. (lien). Évalué à 1.J'ai fait les 2 tests que tu m'a conseillé :
ldapsearch -x uid=un_user_qui_existe me retourne l'équivalent du fichier.ldap de l'utilisateur en question. Cette manipulation fonctionne aussi bien sur le serveur LDAP que sur le client.
Par contre, la commande getent passwd ne me retourne que les utilisateurs du système mais pas ceux de la base LDAP.
Je ne sais pas trop qui penser de ça, à part que le client communique bien avec le serveur LDAP, mais mes précédents tests me font penser qu'il y a un problème au moment de l'authentification de l'admin LDAP (si j'ai bien compris le mécanisme, quand un utilisateur veut se connecter à un serveur avec son compte LDAP, NSS et/ou PAM doivent se connecter à la base avec le compte admin avant de procéder à l'authentification de l'utilisateur).-
[^]Re: Liens sur ldap.conf
Posté par nono14 (page perso, ) le 09/07/2009 à 13:12. (lien). Évalué à 1.Essaie un ldapsearch avec bindn et bindpw
Vérifie aussi les acls ldap.
slapd en debug peut fournir des infos interessantes parfois.--
solutions / support / formation open source
-
ta config
auth sufficient pam_ldap.so
auth required pam_unix.so nullok_secure try_first_pass
veut dire qu'il peut suffire d'un compte ldap pour se connecter (premiere ligne)
mais juste apres tu dis qu'il faut obligatoirement (required) un compte local
essaie en mettant sufficient pour le pam_unix.so
Apprendre par les autres, c'est bien.
Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
-
[^]Re: ta config
Posté par mc_arnaud () le 29/07/2009 à 15:35. (lien). Évalué à 1.Retour de vacances, j'ai essayé avec la modification que tu me conseille, mais ça ne fonctionne toujours pas. J'ai essayé en appliquant la même modification aux fichiers common-account, common-password et common-session mais c'est pareil.
Je cherche toujours...
Revenir en haut de page || Retourner aux forums || Retourner au forum


Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.