Sécurité des mot de passe avec passwdqc
Table des matières
Dans Linux, il existe un module appelé passwdqc qui permet de spécifier des critères spécifiques pour la complexité du mot de passe des utilisateurs (root y compris).
Nous allons voir son usage.
Le projet est disponible ici : http://www.openwall.com/passwdqc
Dans un premier temps, s'assurer que le paquet passwdqc est installé :
Sous Gentoo c'est le cas par défaut : sys-auth/passwdqc
Sous Enterprise Linux (RHEL, AlmaLinux, CentOS) : passwdqc via EPEL
Sous Fedora : passwdqc
Sous Debian : passwdqc
Paramétrer dans PAM l'utilisation du module :
Ajouter la ligne :
Créer le fichier /etc/security/passwdqc.conf
Y insérer un contenu type :
Tout se passe dans le fichier précédemment créé : /etc/security/passwdqc.conf
La première ligne permet de paramétrer via 5 niveaux de configuration. la ligne est de type :
Les valeurs par défaut sont : disabled,24,11,8,7
Voici le descriptif des 5 niveaux :
N0 : Utilisé pour les mots de passe comportant une seule classe de caractères (chiffres, minuscules, majuscules et caractères spéciaux). En général, ce paramètre est défini sur disabled, car les mots de passe simples ne sont pas sécurisés.
N1 : Utilisé pour les mots de passe comportant deux classes de caractères qui ne répondent pas aux conditions requises pour former une phrase de passe. Pour que cette règle s'applique, le mot de passe doit comporter au moins N1 caractères.
N2 : Utilisé pour les mots de passe formant une phrase de passe. Pour que cette règle s'applique, le mot de passe doit comporter au moins N2 caractères et répondre à l'exigence relative aux phrases de passe.
N3 : Utilisé pour les mots de passe comportant au moins trois classes de caractères. Pour que cette règle s'applique, le mot de passe doit comporter au moins N3 caractères.
N4 : Utilisé pour les mots de passe comportant au moins quatre classes de caractères. Pour que cette règle s'applique, le mot de passe doit comporter au moins N4 caractères.
Exemples :
Pour forcer au moins 8 caractères :
Pour avoir au moins 10 caractères sans complexité OU 9 caractères si 2 types différents et si plus complexe, 8 minimum :
Pour les lignes suivantes :
Correspond au nombre maxi de caractères d'un mot de passe.
Au delà le mot de passe est tronqué (pour éviter les mot de passe trop long pour certains anciens si nécessaire).
Valeur par défaut : 40
Nombre de mots requis pour que ça soit considéré comme une passphrase.
Valeur par défaut : 3
Longueur requise d'une sous-chaîne pour conclure qu'un mot de passe est au moins en partie basé sur des informations trouvées dans une chaîne.
Valeur par défaut : 4
Valeurs : permit ou deny
Permet de refuser ou d'accepter un mot de passe similaire au précédent
Valeur par défaut : deny
Valeurs : none ou users ou everyone
Permet d'avertir d'un mot de passe faible; S'applique respectivement à Personne, Que les utilisateurs ou utilisateurs + root
Valeur par défaut : everyone
Pour désactiver passwdqc, indiquer none.
Configurer la demande de mot de passe X fois si un mot de passe non sûr est rentré.
Valeur par défaut : 3
Introduction
Dans Linux, il existe un module appelé passwdqc qui permet de spécifier des critères spécifiques pour la complexité du mot de passe des utilisateurs (root y compris).
Nous allons voir son usage.
Le projet est disponible ici : http://www.openwall.com/passwdqc
Prérequis
Dans un premier temps, s'assurer que le paquet passwdqc est installé :
Sous Gentoo c'est le cas par défaut : sys-auth/passwdqc
Sous Enterprise Linux (RHEL, AlmaLinux, CentOS) : passwdqc via EPEL
Sous Fedora : passwdqc
Sous Debian : passwdqc
Paramétrer dans PAM l'utilisation du module :
Code BASH :
vi /etc/pam.d/system-auth
Ajouter la ligne :
Code :
password required pam_passwdqc.so config=/etc/security/passwdqc.conf
Créer le fichier /etc/security/passwdqc.conf
Code BASH :
vi /etc/security/passwdqc.conf
Y insérer un contenu type :
Code TEXT :
min=8,8,8,8,8 max=40 passphrase=3 match=4 similar=deny enforce=everyone retry=3
Configuration
Tout se passe dans le fichier précédemment créé : /etc/security/passwdqc.conf
La première ligne permet de paramétrer via 5 niveaux de configuration. la ligne est de type :
Code :
min=N0,N1,N2,N3,N4
Les valeurs par défaut sont : disabled,24,11,8,7
Voici le descriptif des 5 niveaux :
N0 : Utilisé pour les mots de passe comportant une seule classe de caractères (chiffres, minuscules, majuscules et caractères spéciaux). En général, ce paramètre est défini sur disabled, car les mots de passe simples ne sont pas sécurisés.
N1 : Utilisé pour les mots de passe comportant deux classes de caractères qui ne répondent pas aux conditions requises pour former une phrase de passe. Pour que cette règle s'applique, le mot de passe doit comporter au moins N1 caractères.
N2 : Utilisé pour les mots de passe formant une phrase de passe. Pour que cette règle s'applique, le mot de passe doit comporter au moins N2 caractères et répondre à l'exigence relative aux phrases de passe.
N3 : Utilisé pour les mots de passe comportant au moins trois classes de caractères. Pour que cette règle s'applique, le mot de passe doit comporter au moins N3 caractères.
N4 : Utilisé pour les mots de passe comportant au moins quatre classes de caractères. Pour que cette règle s'applique, le mot de passe doit comporter au moins N4 caractères.
Exemples :
Pour forcer au moins 8 caractères :
Code :
min=10,10,10,10,10
Pour avoir au moins 10 caractères sans complexité OU 9 caractères si 2 types différents et si plus complexe, 8 minimum :
Code :
min=10,9,8,8,8
Pour les lignes suivantes :
Code :
max=40
Correspond au nombre maxi de caractères d'un mot de passe.
Au delà le mot de passe est tronqué (pour éviter les mot de passe trop long pour certains anciens si nécessaire).
Valeur par défaut : 40
Code :
passphrase=3
Nombre de mots requis pour que ça soit considéré comme une passphrase.
Valeur par défaut : 3
Code :
match=4
Longueur requise d'une sous-chaîne pour conclure qu'un mot de passe est au moins en partie basé sur des informations trouvées dans une chaîne.
Valeur par défaut : 4
Code :
similar=deny
Valeurs : permit ou deny
Permet de refuser ou d'accepter un mot de passe similaire au précédent
Valeur par défaut : deny
Code :
enforce=everyone
Valeurs : none ou users ou everyone
Permet d'avertir d'un mot de passe faible; S'applique respectivement à Personne, Que les utilisateurs ou utilisateurs + root
Valeur par défaut : everyone
Pour désactiver passwdqc, indiquer none.
Code :
retry=3
Configurer la demande de mot de passe X fois si un mot de passe non sûr est rentré.
Valeur par défaut : 3