informatique:reseau:ldap:ppolicy

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
informatique:reseau:ldap:ppolicy [2020/10/09 10:21] – [Politique(s) de mot de passe] bn8informatique:reseau:ldap:ppolicy [2024/04/23 10:48] (Version actuelle) bn8
Ligne 3: Ligne 3:
 ===== Installation ===== ===== Installation =====
  
-Il faut d'abord charger le module //ppolicy// : +Il faut d'abord charger le module //ppolicy// : <code bash>ldapmodify -Y EXTERNAL -H ldapi:/// << EOF 
-  * Créer le fichier ///tmp/load-module.ldif// <code ldif>dn: cn=module{0},cn=config+dn: cn=module{0},cn=config
 changetype: modify changetype: modify
 add: olcModuleLoad add: olcModuleLoad
-olcModuleLoad: ppolicy</code> +olcModuleLoad: ppolicy 
-  * Jouer ce LDIF via //ldapmodify// : <code bash>ldapmodify -x -D cn=admin,cn=config -W -f /tmp/load-module.ldif +EOF</code>
-# Ou : +
-ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/load-module.ldif</code>+
  
-Il faut ensuite ajouter le schéma //ppolicy// : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif</code>+Il faut ensuite ajouter le schéma //ppolicy// **(uniquement avant OpenLDAP 2.5, Debian Bookworm ou Bullseye backports)** : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/ldap/schema/ppolicy.ldif</code>
  
-Il faut ensuite activer ce module pour votre //database// : +Il faut ensuite activer ce module pour votre //database//<code bash>ldapadd -Y EXTERNAL -H ldapi:/// << EOF 
-  * Créer le fichier ///tmp/config-module.ldif//<code ldif>dn: olcOverlay={0}ppolicy,olcDatabase={1}hdb,cn=config+dn: olcOverlay=ppolicy,olcDatabase={1}mdb,cn=config
 objectclass: olcOverlayConfig objectclass: olcOverlayConfig
 objectclass: olcPPolicyConfig objectclass: olcPPolicyConfig
-olcoverlay: {0}ppolicy+olcoverlay: ppolicy
 olcppolicydefault: cn=default,ou=ppolicies,dc=example,dc=com olcppolicydefault: cn=default,ou=ppolicies,dc=example,dc=com
 olcppolicyforwardupdates: FALSE olcppolicyforwardupdates: FALSE
 olcppolicyhashcleartext: TRUE olcppolicyhashcleartext: TRUE
-olcppolicyuselockout: FALSE</code> +olcppolicyuselockout: FALSE 
-  * Jouer ce LDIF avec //ldapadd// : <code bash>ldapadd -x -D cn=admin,cn=config -W -f /tmp/config-module.ldif +EOF</code>
-# Ou : +
-ldapadd -Y EXTERNAL -H ldapi:/// -f /tmp/config-module.ldif</code>+
  
-Il faut ensuite ajouter l'objet LDAP dans votre base LDAP implémentant la politique par défaut des mots de passes : +**Paramètres de configuration au niveau de la database :** 
-  * Créer le fichier ///tmp/add-default-ppolicy.ldif// <code ldif>dn: ou=ppolicies,dc=example,dc=com+  * **olcPPolicyHashCleartext :** si ''TRUE'', les mots de passes soumis en clair lors d'une opération d'ajout ou de modification seront hâché (avec le type par défaut du serveur). 
 +  * **olcPPolicyUseLockout :** Bien que le serveur refusera toujours la connexion avec un compte bloqué (erreur //AccountLocked//), si ce paramètre vaut ''TRUE'', le serveur retournera le code d'erreur spécifique ''AccountLocked''
 +  * **olcPPolicyForwardUpdates (serveur esclave uniquement) :** si ''TRUE'', les échecs de connexions (et autres modifications d'attributs opérationnels) sur le serveur seront transmis au serveur maître. **Note:** pour fonctionner, cette fonctionnalité nécessite que le paramètre ''olcUpdateRef'' et le [[chain|chaining]] soient configurés sur la database. Par ailleurs, les modifications des attributs opérationnels seront faites avec l'utilisateur LDAP configuré dans le [[chain|chaining]] et il est important que les ACLs lui autorisent la modification de ces attributs (droit ''manage''). 
 + 
 +Il faut ensuite ajouter l'objet LDAP dans votre base LDAP implémentant la politique par défaut des mots de passes : <code bash>ldapadd -Y EXTERNAL -H ldapi:/// << EOF 
 +dn: ou=ppolicies,dc=example,dc=com
 objectclass: organizationalUnit objectclass: organizationalUnit
 ou: ppolicies ou: ppolicies
Ligne 53: Ligne 54:
 pwdMustChange: FALSE pwdMustChange: FALSE
 pwdAllowUserChange: FALSE pwdAllowUserChange: FALSE
-pwdSafeModify: FALSE</code> +pwdSafeModify: FALSE 
- +EOF</code>
-  * Jouer ce LDIF avec //ldapadd// : <code bash>ldapadd -x -D cn=admin,dc=example,dc=com -W -f /tmp/add-default-ppolicy.ldif</code>+
  
 <note important>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).</note> <note important>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).</note>
  
-===== Configuration ===== +Pour plus d'informations, [[https://www.zytrax.com/books/ldap/ch6/ppolicy.html|consulter cette documentation du module]]. 
-==== Politique(s) de mot de passe ====+===== 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. La politique de mot de passe est définie au travers des objets **pwdPolicy** stockés dans l'arbre LDAP.
 +
 +<note tip>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//.</note>
  
   * Classe d'objet : **pwdPolicy**   * Classe d'objet : **pwdPolicy**
Ligne 97: Ligne 99:
     * **pwdMinAge** : durée minimale en secondes entre deux changements de mot de passe. Par défaut : ''0'', c'est à dire qu'il n'y a pas de durée minimale.     * **pwdMinAge** : durée minimale en secondes entre deux changements de mot de passe. Par défaut : ''0'', c'est à dire qu'il n'y a pas de durée minimale.
     * **pwdMinLength** : longeur minimale d'un mot de passe. Par défaut : ''0'', c'est à dire qu'il n'y a pas de longeur minimale. **Note :** Si le mot de passe est fourni hashé lors du changement, ce test ne peut être réalisé et la politique définie par **pwdCheckQuality** s'applique alors.     * **pwdMinLength** : longeur minimale d'un mot de passe. Par défaut : ''0'', c'est à dire qu'il n'y a pas de longeur minimale. **Note :** Si le mot de passe est fourni hashé lors du changement, ce test ne peut être réalisé et la politique définie par **pwdCheckQuality** s'applique alors.
-    * **pwdMustChange :** booléen définissant si l'utilisateur doit changer son mot de passe après qu'un administrateur est débloqué son compte (utile uniquement si ''pwdLockout==TRUE''). **Note :** si l'attribut **pwdReset** est défini sur le compte, sa valeur outrepasse ce paramètre.+    * **pwdMustChange :** booléen définissant si l'utilisateur doit changer son mot de passe après qu'un administrateur ait débloqué son compte (utile uniquement si ''pwdLockout==TRUE''). **Note :** si l'attribut **pwdReset** est défini sur le compte, sa valeur outrepasse ce paramètre.
       * ''FALSE'' (par défaut) : l'utilisateur n'a pas à changer son mot de passe       * ''FALSE'' (par défaut) : l'utilisateur n'a pas à changer son mot de passe
       * ''TRUE'' : l'utilisateur doit changer son mot de passe       * ''TRUE'' : l'utilisateur doit changer son mot de passe
  • informatique/reseau/ldap/ppolicy.1602238875.txt.gz
  • Dernière modification : 2020/10/09 10:21
  • de bn8