OpenLDAP – Politique de mot de passe
La fois dernière je vous ai montré comment intégrer une classe personnalisée à OpenLDAP 2.4. Cette fois-ci, on va voir comment mettre en place une politique de mot de passe ou ppolicy (password policy).
Par défaut, le module ppolicy est présent dans OpenLDAP 2.4 mais il n’est pas activé. Les utilisateurs apprécieraient, mais malheureusement on peut rarement tolérer ça dans un milieu professionnel. D’ailleurs, on ne devrait pas tolérer ça non plus au niveau perso à notre époque. Voyons donc comment activer ça dans le LDAP.
Activation du module ppolicy
Comme la fois dernière pour les classes personnalisées, on va passer par des fichiers LDIF que l’on va faire exécuter par le LDAP. Il faut donc créer un fichier LDIF (je l’ai appelé ppolicy_activation.ldif) contenant les lignes suivantes :
# 1 - Charger le module password policy
dn: cn=module{0},cn=config
changeType: modify
add: olcModuleLoad
olcModuleLoad: ppolicy
# 2 - Activer le module et modifier certains paramètres
dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
objectClass: olcPpolicyConfig
olcOverlay: ppolicy
olcPPolicyDefault: cn=ppolicy,dc=domain
olcPPolicyUseLockout: TRUE
olcPPolicyHashCleartext: TRUE
Ce code est à exécuter dans le LDAP avec la commande :
ldapmodify -a -c -Y EXTERNAL -H ldapi:/// -f /mnt/partage/ppolicy-activation.ldif
Faîtes attention à modifier le nom et/ou le chemin du fichier LDIF. La commande est à exécuter directement sur le serveur hébergeant OpenLDAP. Le fichier doit être placé dans un répertoire accessible aussi.
Il faut faire attention à bien indiquer votre domaine au niveau de la ligne olcPPolicyDefault. Cette ligne va pointer vers l’endroit où sera les différents éléments de la politique de mots de passe. Lisez la suite, vous comprendrez mieux.
Paramètres de la ppolicy
Le deuxième fichier LDIF à injecter contient les paramètres de la politique de mot de passe. Voilà son contenu :
dn: cn=ppolicy,dc=domain
objectClass: device
objectClass: pwdPolicyChecker
objectClass: pwdPolicy
cn: ppolicy
pwdAllowUserChange: TRUE
pwdAttribute: userPassword
pwdCheckQuality: 0
pwdExpireWarning: 600
pwdFailureCountInterval: 60
pwdGraceAuthNLimit: 5
pwdInHistory: 4
pwdLockout: TRUE
pwdLockoutDuration: 600
pwdMaxAge: 0
pwdMaxFailure: 5
pwdMinAge: 60
pwdMinLength: 8
pwdMustChange: FALSE
pwdSafeModify: FALSE
Le DN indiqué à la première ligne correspond à l’endroit où seront stockés les paramètres de la politique de mots de passe dans le LDAP. C’est ce que nous avions déjà indiqué dans le premier fichier LDIF. Les différents paramètres de la ppolicy sont décrits dans cette doc par exemple : http://www.zytrax.com/books/ldap/ch6/ppolicy.html#pwdpolicyattributes
Une fois que vous aurez exécuté ce fichier LDIF, les paramètres apparaîtront dans votre LDAP, dans une entrée directement rattachée à la racine (domain). Vous pourrez les modifier très facilement avec Apache Directory Studio par exemple.
Bon, mais il faut quand même exécuter ce fichier LDIF, avec la désormais classique commande :
ldapmodify -a -c -Y EXTERNAL -H ldapi:// -f /mnt/partage/ppolicy-default.ldif
Le « ppolicy-default.ldif » correspond bien évidemment au nom du fichier que nous avons créé juste au-dessus, et que vous aurez placé sur le serveur (dans /mnt/partage dans mon cas). Et voilà ! essayez de modifier un mot de passe, vous verrez que les règles définies s’appliqueront. Vous pouvez faire ça avec la commande suivante :
ldappasswd -x -H ldap://localhost -D cn=moi,ou=users,dc=domain -w test2 -s test
Dans cette commande, le -w correspond au mot de passe actuel (ou l’ancien si vous préférez) et -s au nouveau mot de passe (après changement donc).
Et voilà. Comme toujours, j’espère que tout ça vous sera utile ! @+ !
Michaël