Samba - vérifier la complexité des mots de passe

Aujourd'hui, les mots de passe, pour éviter qu'ils ne soient découverts trop rapidement, doivent répondre à des critères minimums de complexité. Outre la longueur, on exige également la présence d'un certain nombre de jeux de caractères différents (minuscules, majuscules, chiffres, ponctuation).

Dans un contexte samba/ldap, rajouter ces critères est parfois complexe. Le mieux, c'est de le programmer dans l'annuaire LDAP : tous les mots de passe créés doivent alors répondre aux critères de complexité. Mais cela impose de pouvoir compiler des modules complémentaires LDAP. Parmi eux, on peut citer OpenLDAP pwdChecker library, qui semble répondre au besoin. Néanmoins, la compilation du module n'est pas simple, et nécessite un minimum de compétences techniques.

Une autre solution consiste à demander à Samba de vérifier la complexité du mot de passe, avant que celui-ci ne soit transmis au serveur. Pour cela, il suffit de rajouter une directive dans le fichier smb.conf, dans la section [global] :

check password script = nom_du_programme_de_test

Le programme de test doit retourner un code d'erreur différent de 0 lorsque le mot de passe proposé ne répond pas aux critères de complexité.

Le script joint, testMDP.php, vous permet de vérifier la complexité de vos mots de passe. Recopiez-le dans le dossier /usr/local/bin, puis configurez le fichier smb.conf ainsi :

check password script = /usr/local/bin/testMDP.php

Comme il fonctionne en mode php-client, pensez à installer la bibliothèque php5-cli, par exemple :

apt-get install php5-cli

Le programme a été écrit, en partie, à partir de l'application Self Service Password.