openldap pam : User not known to the underlying authentication module

openldap pam : User not known to the underlying authentication module - réseaux et sécurité - Linux et OS Alternatifs

Marsh Posté le 21-09-2006 à 09:49:59    

Bonjour,
 
Je tente un login à partir d'un compte ldap nommé test2 mais ça ne passe pas ...
 
J'ai configuré openldap sur FC4 et en guise de teste j'ai créé une ou=people et ou=group. A l'intérieur de people j'ai ajouté un compte test2 (posixAccount).
 
Via phpldapadmin je suis capable de me connecter en Manager et en utilisateur test2.
 
Lorsque je tente un login via le compte test2 et le bon mot de passe j'ai dans /var/log/messages :
 
Sep 21 09:05:46 buggy login(pam_unix)[2906]: check pass; user unknown
Sep 21 09:05:46 buggy login(pam_unix)[2906]: authentication failure; logname= uid=0 euid=0 tty=tty3 ruser= rhost=
Sep 21 09:05:47 buggy login(pam_unix)[2906]: could not identify user (from getpwnam(test2))
Sep 21 09:05:47 buggy login[2906]: User not known to the underlying authentication module

 
Le même test avec un mauvais mot de passe donne :
 
Sep 21 09:08:14 buggy login(pam_unix)[3364]: check pass; user unknown
Sep 21 09:08:14 buggy login(pam_unix)[3364]: authentication failure; logname= uid=0 euid=0 tty=tty3 ruser= rhost=
Sep 21 09:08:14 buggy login[3364]: pam_ldap: error trying to bind as user "cn=test2,ou=people,dc=test,dc=com" (Invalid credentials)
Sep 21 09:08:17 buggy login[3364]: FAILED LOGIN 1 FROM (null) FOR test2, Authentication failure

 
J'en conclu que sldapd est bien actif et que la configuration fonctionnelle. Par contre l'utilisateur est inconnu d'un module (account ?)
 
En lisant d'autre post j'ai effectué le test suivant puis afficher la trace se rapportant à nss et ldap :
 
[root@buggy ~]# strace -o info.txt id test2
id: test2: usager inexistant.

[root@buggy ~]# cat info.txt |grep -E '(nss|ldap)'
open("/etc/nsswitch.conf", O_RDONLY)    = 3
read(3, "#\n# /etc/nsswitch.conf\n#\n# An ex"..., 4096) = 1702
open("/lib/libnss_files.so.2", O_RDONLY) = 3
open("/lib/libnss_ldap.so.2", O_RDONLY) = 3
open("/etc/ldap.conf", O_RDONLY)        = 3
read(3, "# @(#)$Id: ldap.conf,v 1.34 2004"..., 4096) = 4096
open("/etc/ldap.secret", O_RDONLY)      = 3
open("/etc/openldap/ldap.conf", O_RDONLY) = 3
read(3, "# $OpenLDAP: pkg/ldap/libraries/"..., 4096) = 404
open("/root/ldaprc", O_RDONLY)          = -1 ENOENT (No such file or directory)
open("/root/.ldaprc", O_RDONLY)         = -1 ENOENT (No such file or directory)

 
ldaprc n'est pas trouvé mais ça ne semble pas primordiale.
/etc/nsswitch est configuré. Bref je suis perdu. Ci dessous les fichiers de conf

[root@buggy pam.d]# cat system-auth
auth        required      /lib/security/pam_env.so
auth        sufficient    /lib/security/pam_unix.so likeauth nullok
auth        sufficient    /lib/security/pam_ldap.so use_first_pass
auth        required      /lib/security/pam_deny.so
 
account     required      /lib/security/pam_unix.so
account     sufficient     /lib/security/pam_localuser.so
account     [default=bad success=ok user_unknown=ignore service_err=ignore system_err=ignore authinfo_unavail=ignore]    /lib/security/pam_ldap.so
account     required      /lib/security/pam_deny.so
 
password    required      /lib/security/pam_cracklib.so retry=3 minlen=2 dcredit=0 ucredit=0
password    sufficient    /lib/security/pam_unix.so nullok use_authtok md5 shadow use_authtok
password    sufficient    /lib/security/pam_ldap.so
password    required      /lib/security/pam_deny.so
 
session     required      /lib/security/pam_limits.so
session     required      /lib/security/pam_unix.so
 
[root@buggy pam.d]# cat login
#%PAM-1.0
auth       required     pam_securetty.so
auth       required     pam_stack.so service=system-auth
auth       required     pam_nologin.so
account    required     pam_stack.so service=system-auth
password   required     pam_stack.so service=system-auth
# pam_selinux.so close should be the first session rule
session    required     pam_selinux.so close
session    required     pam_stack.so service=system-auth
session    optional     pam_console.so
# pam_selinux.so open should be the last session rule
session    required     pam_selinux.so multiple open

 
ldap.conf
host 127.0.0.1
base dc=test,dc=com
rootbinddn cn=Manager,dc=test,dc=com
scope sub
pam_filter objectclass=posixaccount
pam_login_attribute uid
pam_member_attribute gid
nss_base_passwd        ou=people,dc=test,dc=com?sub
nss_base_shadow        ou=people,dc=test,dc=com?sub
nss_base_group         ou=group,dc=test,dc=com?sub
ssl no
tls_cacertdir /etc/openldap/cacerts
pam_password md5

 
nsswitch.conf
passwd:     files ldap
shadow:     files ldap
group:      files ldap

 
Toute idée est la bienvenue, notamment pour les phases de déboguage (comment afficher les log de ldap ? ...)
Merci
Stéph


Message édité par piaf666 le 21-09-2006 à 09:52:47
Reply

Marsh Posté le 21-09-2006 à 09:49:59   

Reply

Marsh Posté le 21-09-2006 à 14:02:10    

getent passwd ?

Reply

Marsh Posté le 23-09-2006 à 07:11:10    

dam1330 a écrit :

getent passwd ?


 
Pareil, il déroule ce qui se trouve dans /etc/passwd et rien d'autre ...
 
Mais bonne nouvelle, j'ai mis à jour nss_ldap et la id test2 ainsi que getent  passwd me répondent  :)  
 
Cependant le login est toujours rejeté mais ça avance.
 
Merci Bye

Reply

Marsh Posté le 18-12-2006 à 16:19:22    

Bah system-config-authentification
Tu valide LDAP -pour auth et pour info- avec les bonnes valeurs, et tu verras dans ton pam.d/login les changements.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed