J'essaie de configurer un serveur Ubuntu 12.04 afin que les utilisateurs disposant d'un compte valide sur un serveur LDAP distant puissent se connecter au serveur Ubuntu.
J'ai suivi ce guide de près: http://wiki.linuxquestions.org/wiki/Pam_ldap .
Quand j'essaie de ssh dans cette machine, voici ce que je vois dans /var/log/auth.log AVANT en entrant mon mot de passe:
Connection from 192.168.0.10 port 36624
Invalid user bentrupk from 192.168.0.10
input_userauth_request: invalid user bentrupk [preauth]
Cependant, à l'aide d'un renifleur de paquet, je vois également une requête réussie adressée au serveur LDAP à l'aide de mon nom d'utilisateur qui renvoie mon DN dans LDAP.
Ensuite, j'entre mon mot de passe mais le renifleur de paquet affiche une demande de liaison LDAP avec le DN correct, mais avec un mot de passe ".... INCORRECT".
Évidemment, ce n'est pas le mot de passe que j'ai entré.
Je suppose que c'est un problème avec au moins un de mes fichiers de configuration pam.d.
Je me demande s'il y a un indice de "l'utilisateur non valide" dans auth.log? Il est clair qu'une demande est faite au serveur LDAP avec le nom d'utilisateur fourni par SSH avant que je n'entre mon mot de passe qui renvoie correctement l'entrée correcte.
Cependant, je ne sais pas ce qui se passe en premier: "Utilisateur invalide" dans le fichier auth.log OR la recherche LDAP vue dans le renifleur de paquet (et pour que tout soit clair, l'utilisateur ssh n'a pas de compte local) .
Que puis-je faire pour déboguer plus loin ou confirmer que j'ai la bonne configuration?
Je faisais une hypothèse incorrecte sur ce que les modules de PAM ont fait. J'ai supposé que le fait de disposer d'un compte dans LDAP pouvait effectivement amener un module à créer l'utilisateur sur le système (hypothèse probablement influencée par mon arrière-plan webdev), tout comme il pourrait également créer les répertoires de base (pam_mkhomedir
).
Une fois que j'ai créé les utilisateurs localement en utilisant:
Sudo adduser doej --disabled-password
J'ai pu me connecter avec le compte Doej dans LDAP.
Incidemment, j'ai trouvé une solution utilisant pam_exec
qui me permettrait également de créer dynamiquement les utilisateurs.
Il n’est pas nécessaire que des comptes locaux existent pour que les comptes LDAP puissent se connecter.
Peut-être que lorsqu'il ne parvient pas à trouver le bon utilisateur dans LDAP, il revient aux comptes d'utilisateurs créés localement.
Les indications d'erreur d'utilisateur non valides indiquant que la recherche dans votre serveur LDAP ne renvoie pas le compte d'utilisateur avec lequel vous essayez de vous authentifier.
Activer le débogage sur votre serveur LDAP: créer un fichier ldiff avec ces lignes
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: stats
et importez le fichier ldif sur votre serveur LDAP avec:
ldapadd -x -W -D 'cn=Manager,dc=pvpsc,dc=com' -f increaseverbosity.ldiff
cela enregistrera les requêtes LDAP faites à votre LDAP sur le syslog de votre serveur. utilisez l'outil ldapsearch pour effectuer une recherche sur votre serveur LDAP et lire le nom d'utilisateur d'un utilisateur. compare le journal réussi avec celui créé par l’authentification ayant échoué.
qu'est-ce qui diffère? C'est probablement là que vous trouverez la faute.