Table des matières

Module PPolicy

Installation

Il faut d'abord charger le module ppolicy :

ldapmodify -Y EXTERNAL -H ldapi:/// << EOF
dn: cn=module{0},cn=config
changetype: modify
add: olcModuleLoad
olcModuleLoad: ppolicy
EOF

Il faut ensuite ajouter le schéma ppolicy (uniquement avant OpenLDAP 2.5, Debian Bookworm ou Bullseye backports) :

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif

Il faut ensuite activer ce module pour votre database :

ldapadd -Y EXTERNAL -H ldapi:/// << EOF
dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
objectclass: olcOverlayConfig
objectclass: olcPPolicyConfig
olcoverlay: ppolicy
olcppolicydefault: cn=default,ou=ppolicies,dc=example,dc=com
olcppolicyforwardupdates: FALSE
olcppolicyhashcleartext: TRUE
olcppolicyuselockout: FALSE
EOF

Paramètres de configuration au niveau de la database :

Pour fonctionner, la fonctionnalité associée à l'attribut olcPPolicyForwardUpdates nécessite que :
  • le paramètre olcUpdateRef et le chaining soient configurés sur la database
  • les modifications des attributs opérationnels seront faites avec l'utilisateur LDAP configuré dans le chaining et il est important que les ACLs lui autorisent la modification de ces attributs (droit manage indispensable, notamment pour la suppression de l'attribut pwdFailureTime).

Il faut ensuite ajouter l'objet LDAP dans votre base LDAP implémentant la politique par défaut des mots de passes :

ldapadd -Y EXTERNAL -H ldapi:/// << EOF
dn: ou=ppolicies,dc=example,dc=com
objectclass: organizationalUnit
ou: ppolicies
 
dn: cn=default,ou=ppolicies,dc=example,dc=com
cn: default
objectclass: top
objectclass: device
objectclass: pwdPolicy
objectclass: pwdPolicyChecker
pwdAttribute: userPassword
pwdMinAge: 0
pwdMaxAge: 0
pwdInHistory: 0
pwdCheckQuality: 1
pwdMinLength: 8
pwdExpireWarning: 0
pwdGraceAuthnLimit: 0
pwdLockout: FALSE
pwdLockoutDuration: 0
pwdMaxFailure: 0
pwdMaxRecordedFailure: 0
pwdFailureCountInterval: 0
pwdMustChange: FALSE
pwdAllowUserChange: FALSE
pwdSafeModify: FALSE
EOF
La configuration de la politique par défaut proposée ci-dessus n'active pour ainsi dire aucune protection fourni par cette overlay. Il est conseillé d'ajuster les différents paramètres de la politique en fonction du besoin (voir ci-dessous).

Pour plus d'informations, consulter cette documentation du module.

Configuration de la politique de mot de passe

La politique de mot de passe est définie au travers des objets pwdPolicy stockés dans l'arbre LDAP.

Plusieurs politiques de mots de passe peuvent être configurées avec plusieurs objets pwdPolicy. La politique de mot de passe utilisée pour un compte donné est alors celle ciblée explicitement par l'attribut pwdPolicySubentry du compte ou à défaut, la politique par défaut définie par l'attribut olcPPolicyDefault dans la configuration OpenLDAP de la database.

Attributs d'état d'un compte

Déblocage d'un compte

Si un compte d'utilisateur est verrouillé (lorsque pwdLockout==TRUE dans la politique de mot de passe), il peut être déverrouillé par un administrateur en utilisant l'une des procédures suivantes:

  1. Supprimez l'attribut pwdAccountLockedTime : Cette procédure permet à l'utilisateur de continuer à utiliser le mot de passe actuel et n'est efficace que si le mot de passe n'a pas expiré.
  2. Ajoutez l'attribut pwdReset avec la valeur TRUE ou FALSE. FALSE n'est efficace que si le mot de passe n'a pas expiré et a le même effet que la suppression de pwdAccountLockedTime.