Les stratégies de mots de passe utilisateurs se divisent en deux aspects principaux : la durée de validité et la complexité requise.
Configuration de la durée de validité du mot de passeIl existe deux méthodes pour configurer la durée de validité des mots de passe :(1). Modification du fichier /etc/login.defs``` MAX_VALID_DAYS 99999 # Durée maximale de validité du mot de passe, 99999 : permanent MIN_CHANGE_DAYS 0 # Délai minimal avant de pouvoir modifier le mot de passe, 0 : modification immédiate MIN_PASSWORD_LEN 5 # Longueur minimale du mot de passe (obsolète avec le module pam_cracklib) WARNING_BEFORE_EXPIRY 7 # Nombre de jours d'avertissement avant expiration
(2). Utilisation de la commande passwdlife```
passwdlife -M 10 -m 0 -W 3 admin
Différences entre les méthodes :La commande passwdlife permet de modifier les paramètres pour un utilisateur spécifique, y compris pour le compte root.Le fichier login.defs permet une modification en masse, mais n'affecte que les nouveaux utilisateurs créés après la modification. Par exemple, cela n'affecte pas le compte root existant. Configuration de la force du mot de passeModification du fichier /etc/pam.d/system-authPour utiliser pam_cracklib, il faut décommenter sa ligne et commenter celle de pam_passwdqc.so.``` #password requisite pam_cracklib.so retry=3 difok=1 password requisite pam_passwdqc.so min=disabled,24,12,8,7 passphrase=3 password sufficient pam_unix.so nullok use_authtok sha512 shadow
Les modules pam_cracklib.so et pam_passwdqc.so sont mutuellement exclusifs - il faut commenter celui qui n'est pas utilisé. Paramètres principaux de pam_cracklib :```
retry=N: Nombre de tentatives autorisées avant d'indiquer une erreur de modification de mot de passe
difok=N: Nombre de caractères différents requis entre l'ancien et le nouveau mot de passe
dcredit=N: N >= 0: Nombre maximum de chiffres dans le mot de passe; N < 0: Nombre minimum de chiffres requis
lcredit=N: Nombre minimum de lettres minuscules
ucredit=N: Nombre minimum de lettres majuscules
ocredit=N: Nombre minimum de caractères spéciaux
minclass=N: Nombre de catégories de caractères différentes requises (majuscules, minuscules, chiffres, caractères spéciaux)
Paramètres principaux de pam_passwdqc : ``` mix: Définit la longueur minimale du mot de passe, la valeur par défaut est mix=disabled. max: Définit la longueur maximale du mot de passe, la valeur par défaut est max=40. passphrase: Définit le nombre minimal de mots dans la phrase de passe, la valeur par défaut est passphrase=3. Si 0, la phrase de passe est désactivée. match: Définit la probabilité d'avoir un mot de passe commun, la valeur par défaut est match=4. similar: Contrôle si un nouveau mot de passe peut être similaire à l'ancien. Les valeurs sont similar=permit (autorisé) ou similar=deny (refusé). random: Définit la longueur par défaut des mots de passe générés aléatoirement. La valeur par défaut est random=42. 0 désactive cette fonction. enforce: Définit le scope des contraintes. enforce=none avertit des mots de passe faibles sans les interdire; enforce=users applique les restrictions à tous les utilisatuers non-root; enforce=everyone applique les restrictions à tous les utilisateurs y compris root. non-unix: Indique au module d'utiliser des fonctions alternatives à getpwnam pour obtenir les informations utilisateur. retry: Définit le nombre de tentatives autorisées lors de la saisie d'un mot de passe, la valeur par défaut est retry=3
Note: Les modules pam_cracklib et pam_passwdqc n'ont pas forcément de configuration explicite dans les fichiers. Si les bibliothèques correspondantes sont installées, elles peuvent être utilisées. Il est également possible d'ajouter manuellement des configurations.