OpenLDAP : un script d’avertissement d’expiration des comptes
28 août 2008 dans Logiciels
OpenLDAP implémente depuis la version 2.3 la politique des mots de passe. Une des fonctionnalités de celle-ci est de paramétrer une durée de vie maximale pour un mot de passe, ayant pour conséquence de faire expirer les mots de passe trop anciens.
Un utilisateur ne peut être averti que son mot de passe va bientôt expirer que si l’application qu’il utilise analyse correctement les contrôles LDAP et affiche l’avertissement à l’utilisateur. Très peu d’applications sont concernées.
Nous proposons donc en alternative un script analysant les comptes de l’annuaire et envoyant un mail à l’utilisateur si celui-ci doit être averti.
Présentation
Ce script shell est destiné à être exécuté automatiquement, par cron par exemple. Il est conseillé de le faire fonctionner quotidiennement, mais sa fréquence doit être adaptée à la politique des mots de passe appliquée (temps de vie du mot de passe et délai d’avertissement).
Il nécessite les programmes suivants :
gawk (GNU awk)
ldapsearch
mailx
Il a été testé sur GNU/Linux et SunOS 5.8.
Usage
Le script peut s’exécuter manuellement ou à travers cron. Il ne prend pas d’arguments :
sh checkLdapPwdExpiration.sh
On peut utiliser STDOUT et STDERR pour isoler les traces du logiciel :
sh checkLdapPwdExpiration.sh 1>result.log 2>audit.log
Auquel cas les fichiers auront le contenu suivant :
result.log
audit.log
Configuration
La configuration se situe dans le script shell, en renseignant les variables suivantes :
MY_LDAP_HOSTURI : URI d’accès à l’annuaire LDAP ;
MY_LDAP_ROOTDN (optionnel) : DN de connexion à l’annuaire LDAP. La connexion sera anonyme si ce paramètre est commenté ;
MY_LDAP_ROOTPW : mot de passe de connexion à l’annuaire LDAP ;
MY_LDAP_DEFAULTPWDPOLICYDN : DN de la politique des mots de passe appliquée par défaut. Si aucune politique n’est appliquée par défaut, commenter ce paramètre. Dans ce cas, le script n’agira que sur les comptes possédant une politique associée ;
MY_LDAP_SEARCHBASE : base de recherche des utilisateurs ;
MY_LDAP_SEARCHFILTER : filtre de recherche des utilisateurs ;
MY_LDAP_SEARCHBIN : chemin complet vers le binaire ldapsearch.
MY_MAIL_DELAY : délai pendant lequel l’utilisateur est averti avant l’expiration de son mot de passe. Aucun avertissement n’est envoyé après l’expiration. Si ce paramètre est commenté et que la politique des mots de passe fournit une valeur pour le délai d’avertissement (pwdExpireWarning), alors c’est cette dernière qui sera utilisée ;
MY_LDAP_NAME_ATTR : nom de l’attribut contenant le nom de l’utilisateur ;
MY_LDAP_LOGIN_ATTR : nom de l’attribut contenant l’identifiant de l’utilisateur ;
MY_LDAP_MAIL_ATTR : nom de l’attribut contenant le courriel de l’utilisateur ;
MY_MAIL_BODY : corps du message ;
MY_MAIL_SUBJECT : sujet du message ;
MY_MAIL_BIN : binaire utilisé pour envoyer le mail (mailx) ;
MY_LOG_HEADER : en-tête des lignes de log ;
MY_GAWK_BIN : chemin complet vers le binaire gawk.
Clément Oudot / Thomas CHEMINEAU (Linagora.org)
(Vous souhaitez reproduire cet article ?)


