Le serveur LDAP (OpenLDAP) est déjà installé et configuré. Cet article sert de mémo pour la configuration de PAM sur les postes clients.
On va installer le module ldap pour PAM, la librairie pour NSS qui va permettre d’interroger LDAP et nscd qui va servir de cache.
apt-get install libnss-ldap libpam-ldap ldap-utils nscd
A l’installation du paquet, Debconf demande les paramètres du serveur LDAP. Renseigner les selon la configuration (dc=aternatik,dc=org) en précisant qu’il ne faut pas d’identification et que le fichier ne doit pas être lisible et modifiable uniquement par root.
Fichier de configuration /etc/libnss-ldap.conf
Quelques options sont importantes, d’autres moins ![]()
base dc=aternatik,dc=org
# Adresse du serveur LDAP
uri ldap://127.0.0.1
# Important !!!
bind_policy soft
# Facultatif
nss_base_passwd ou=People,dc=aternatik,dc=org?one
nss_base_shadow ou=People,dc=aternatik,dc=org?one
nss_base_group ou=Group,dc=aternatik,dc=org?one
bind_policy est mis sur "soft" : dans le cas ou le serveur LDAP serait injoignable, on peut quand même se logguer…
Fichier /etc/nsswitch.conf
Avec ce fichier, on dit au système d’interroger l’annuaire LDAP en plus des fichiers :
passwd: compat ldap
group: compat ldap
shadow: compat ldap
Pour tester si tout fonctionne, la commande getent passwwd devrait retourner les utilisateurs contenus dans LDAP.
Les paramètres de l’annuaire LDAP sont déjà renseignés à l’installation du paquet. Il faut maintenant configurer PAM pour qu’il se serve des données contenues dans LDAP. Tout se situe dans le répertoire /etc/pam.d. Pour plus de sureté, il est conseillé de faire une sauvegarde de ce répertoire et de garder sur la machine une session root (pour pouvoir revenir en arrière…) PAM est délicat et tous les services d’identification de la machine peuvent être perturbés… Vous voilà prévenu !
Modifier les fichiers suivant :
/etc/pam.d/common-account :
account required pam_unix.so
account sufficient pam_ldap.so
/etc/pam.d/common-session
session required pam_unix.so
session optional pam_ldap.so
/etc/pam.d/common-auth
auth required pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
/etc/pam.d/common-passwd
password required pam_unix.so nullok obscure min=4 max=8 md5
password sufficient pam_ldap.so use_authtok
Et voilou ! Pour tester : su -utilisateur present dans LDAP-
Pour limiter les requêtes vers LDAP, nscd fournit un cache. Les options de configuration sont dans le fichier /etc/nscd.conf. Voici un exemple :
enable-cache passwd yes
positive-time-to-live passwd 600
negative-time-to-live passwd 20
suggested-size passwd 211
check-files passwd yes
persistent passwd yes
shared passwd yes
Les actions de nscd (Cf fichier log)
1558: add new entry "keen" of type GETPWBYNAME for passwd to cache (first)
1558: remove GETHOSTBYNAME entry "196.247.140-88.rev.gaoland.net"
1558: remove GETHOSTBYADDR entry "88.140.247.196"
1558: freed 680 bytes in hosts cache
Il est possible de gérer le cache de nscd en précisant le nombre d’entrées à garder en mémoire et combien de temps. Pas de secret pour les valeurs, il faut tester !
Quelques liens