pam_cracklib.so : renforcer le mot de passe Linux

pam_cracklib” est un module PAM qui permet de vérifier la robustesse du mot de passe Linux. Il peut être ajouté avec les autres modules pour former une pile de module pour le composant “password”, mais il est possible d’utiliser sur les autres composant PAM . Sous RHEL, sa configuration se trouve dans /etc/pam.d/system-auth mais il peut être aussi dans /etc/pam.d/passwd pour les autres distributions.  Ci- dessous un extrait de ce fichier .

[pastacode lang=”bash” message=”” highlight=”” provider=”manual”]

password    requisite     pam_cracklib.so dcredit=-1 ucredit=-1 ocredit=-1 lcredit=0 minlen=12 try_first_pass retry=3
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    required      pam_deny.so

[/pastacode]

Sa première action est de demander à l’utilisateur un mot de passe, vérifier sa robustesse  et si c’est robuste, demander  de rentrer une deuxième fois pour vérification puis transmis au module suivant pour être considéré comme le “token” d’authentification.

La vérification de la robustesse du mot de passe se fait de manière suivant : d’abord la routine Cracklib est appelé pour vérifier si le mot de passe est dans le dictionnaire. Si ce n’est pas le cas alors d’autres tests seront ralisés à savoir si :

  • Palindrome: si le nouveau mot de passe est un palindrome
  • Case Change Only : si pareille avec l’ancien mais de forme différent (majuscule ou minuscule).
  • Similar : si le mot de passe ressemble avec l’ancien. Contrôlé par l’argument. difok qui définie le nombre de caractère qui change entre l’ancien  et le nouveau mote de passe.
  • Simple : si c’est simple, contrôlé par les arguments : minlen, maxclassrepeat, dcredit, ucredit, lcredit, et  ocredit.
  • Rotated : si  juste une rotation de l’ancien.
  • Contains user name : contient le nom de l’utilisateur.

Configuration

Dans /etc/sysconfig/system-auth, on ajoute sur le composant “password” :

 pam_cracklib.so <option> <option> <option>

Ci-dessous quelques exemples d’option :

  • dcredit=N : nombre max de caractère numérique dans le mot de passe (par défaut c’est 1).
  • ucredit=N : nombre max de lettre en  majuscule. N<0 est la valeur minimale
  • lcredit=: nombre max de lettre en minuscule . N<0 est la valeur minimale
  • ocredit=N : nombre max pour les autres caractères. N<0 est la valeur minimale
  • minlen=N: longueur minimale acceptable du mot de passe.
  • try_first_pass=N:
  • retry=N : nombre de tentative possible pour  entrer le mot de passe avant  de retourner une erreur.

Pour voir la liste de toutes options possibles, c’est ici.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *