Comptes ldap (2)

Niveau : Star Star Star Empty Empty
Résumé : lib­pam-ldap

Hier nous avons créé un compte sur le ldap. Bien, mais on ne pou­vait pas en faire grand chose. Il faut main­te­nant pou­voir se con­nec­ter. Il est théo­ri­que­ment pos­si­ble de tout faire avec libnss mais c’est à la fois plus dif­fi­cile et moins fonc­tion­nel qu’avec pam.

Comme vous le savez l’authen­ti­fi­ca­tion sous linux se fait avec PAM. Nous allons donc uti­li­ser un module dédié : lib­pam-ldap (cool le paquet porte le même nom).

LDAP

Cette fois ne nous force à uti­li­ser aucun object­Class, mais comme il sait uti­li­ser les attri­buts de la classe sha­do­wAc­count, on peut uti­li­ser celle-ci pour se sim­pli­fier la vie.

Ajou­tons le mot de passe à notre uti­li­sa­teur. On crée le mot de passe LDAP à la main, mais par la suite vous ver­rez que ce n’est pas indis­pen­sa­ble.

$ slappasswd -s test
{SSHA}l5X6sBFomfk3tk02HEMWK4YLep7pqZDk

On ajoute ce mot de passe à l’uti­li­sa­teur déjà créé :

$ ldapmodify -x -D "cn=admin,dc=linux-attitude,dc=fr" -W
dn: uid=peck,ou=people,dc=linux-attitude,dc=fr
changetype: modify
add: userPassword
userPassword: {SSHA}l5X6sBFomfk3tk02HEMWK4YLep7pqZDk

Un test de con­nexion avec ldap­search vous mon­trera que le mot de passe est bien pris en compte :

$ ldapsearch -x -D "uid=peck,ou=people,dc=linux-attitude,dc=fr" -w test "uid=peck"

PAM

Main­te­nant il faut expli­quer gen­ti­ment à PAM d’aller faire son authen­ti­fi­ca­tion en uti­li­sant LDAP. Pour cela hop, con­fi­gu­ra­tion dans /etc/pam.d/com­mon-*. Cer­tai­nes dis­tri­bu­tions devront peut-être con­fi­gu­rer cha­que élé­ment un par un : su, login, ssh …

# common-auth
# attention, le pam_unix devient sufficient
auth    sufficient    pam_unix.so nullok_secure nodelay
# use_first pass permet de ne demander qu'une fois les mot de passe pour les 2 modules
auth    sufficient    pam_ldap.so use_first_pass 
# common-account
account    required    pam_unix.so
account    sufficient   pam_ldap.so
# common-session
session    required    pam_unix.so
session    optional    pam_ldap.so

Main­te­nant atta­quons-nous au fichier de con­fi­gu­ra­tion pro­pre­ment dit : /etc/pam_ldap.conf. En voici l’essen­tiel :

# /etc/pam_ldap.conf
base ou=people,dc=linux-attitude,dc=fr
uri ldap://127.0.0.1/
ldap_version 3

Vous remar­que­rez que pam_ldap.conf et libnss-ldap.conf ne ren­trent jamais en con­flit. Vous pou­vez faire un lien de l’un vers l’autre ou modi­fier la con­fi­gu­ra­tion pour que ce soient les mêmes fichiers. Cela peut vous évi­ter quel­ques désa­gré­ments.

Test

Main­te­nant tout mar­che, même l’authen­ti­fi­ca­tion. Fai­tes le test :

$ su - peck
Password:
$ id
peck

Youpi, ça mar­che même en ssh. Bon c’est bien gen­til, mais c’est encore un peu léger. La pro­chaine fois , on vou­drait pou­voir faire encore plus.

Vus : 250
Publié par Peck : 100