La prochaine étape consiste à mettre en place la politique de mot de passe fort, qui doit couvrir précisément les points suivants :
- Expiration automatique du mot de passe toutes les 30 jours
- Intervalle minimal entre deux changements de mot de passe = 2 jours
- Avertissement 7 jours avant expiration
- Longueur minimale = 10 caractères, avec au moins 1 majuscule, 1 minuscule, 1 chiffre
- Pas plus de 3 caractères identiques d’affilée
- Le mot de passe ne doit pas contenir le nom d’utilisateur
- Sauf pour root, un nouvel ancien mot de passe doit différer d’au moins 7 caractères du précédent
Pour cela, nous allons utiliser :
- Le paquet libpam-pwquality (pour la complexité et le contrôle de “diffok”)
- Les fichiers de configuration
/etc/login.defs
(pour les règles d’expiration)
- Le fichier PAM
/etc/pam.d/common-password
(pour imposer les exigences de longueur, maj/min/chiffre, rejet du nom d’utilisateur, nombre de caractères différents…)
1. Installer le module PAM pwquality
Dans la VM (connectée en SSH ou en console), exécute :
sudo apt update
sudo apt install libpam-pwquality -y
- libpam-pwquality fournit le module
pam_pwquality.so
qui nous permettra de :
- exiger une longueur minimale,
- imposer des crédits (
ucredit
, lcredit
, dcredit
) pour majuscules, minuscules, chiffres,
- interdire que le mot contienne le nom d’utilisateur (
reject_username
),
- exiger un nombre minimum de caractères différents par rapport à l’ancien mot de passe (
difok
),
- appliquer les mêmes règles à root (
enforce_for_root
).
2. Configurer /etc/login.defs
pour l’expiration des mots de passe
Le fichier /etc/login.defs
permet de paramétrer la durée de vie des mots de passe et les avertissements. Éditons-le :