Garantir que PAM impose des exigences de mot de passe - Longueur minimale
Force pam_pwquality à exiger des mots de passe d'au moins 15 caractères en posant minlen = 15.
Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.
Un mapping est une référence croisée vers l’endroit où chaque norme situe cette exigence, ancrée et recoupée, pas une affirmation d’équivalence. Un check réussi est une preuve vers ces références, comment le lire.
Pourquoi cette règle
La longueur est le levier le plus puissant sur la robustesse d'un mot de passe : chaque caractère supplémentaire multiplie le nombre de combinaisons que l'attaquant doit tester. Plus le mot de passe est court, moins il y a de combinaisons à essayer avant compromission. Un minimum de 15 caractères augmente exponentiellement le temps et les ressources nécessaires aux attaques par force brute. Les mots de passe courts, même complexes, cèdent vite face au cassage moderne accéléré par GPU.
Ce que vérifie Pavois
Pavois lit la valeur effective de minlen à travers /etc/security/pwquality.conf et tous les drop-ins sous /etc/security/pwquality.conf.d/, en conservant la dernière définition qui l'emporte à l'exécution. Un scanner basé sur les fichiers lisant uniquement la config principale manquerait une valeur plus stricte (ou plus faible) posée dans un drop-in. Le contrôle passe uniquement quand la valeur résolue est >= 15.
describe command('v=$(grep -rh \'^[[:space:]]*minlen[[:space:]]*=\' /etc/security/pwquality.conf /etc/security/pwquality.conf.d/ 2>/dev/null | tail -1 | grep -oE \'[-]?[0-9]+\'); { [ -n "$v" ] && [ "$v" -ge 15 ] && echo ok; } || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez grep -rh '^[[:space:]]*minlen' /etc/security/pwquality.conf /etc/security/pwquality.conf.d/ | tail -1. La ligne effective doit indiquer minlen = 15 (ou toute valeur >= 15).
Inspecter et investiguer
Les changements de mot de passe rejetés car trop courts sont journalisés via PAM dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL) avec des messages pam_pwquality comme "The password is shorter than 15 characters". Inspectez le réglage actif avec grep -r minlen /etc/security/pwquality.conf.d/.
Remédiation
pavois harden apply écrit minlen = 15 dans le drop-in /etc/security/pwquality.conf.d/99-Pavois.conf via la ressource idempotente keyval. Le préfixe 99- garantit qu'il surcharge toute valeur antérieure. Aucun redémarrage n'est requis ; cela s'applique au prochain changement de mot de passe.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| file | /etc/security/pwquality.conf.d/99-pavois.conf |
|---|---|
| key | minlen |
| resource | keyval |
| value | 15 |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Les mots de passe existants restent valides ; seuls les nouveaux mots de passe doivent faire 15 caractères ou plus. Les utilisateurs habitués à plus court seront rejetés au moment du changement et devraient être orientés vers des phrases de passe. Le risque de blocage est faible, mais avant d'appliquer, confirmez que le provisionnement automatisé, les comptes de service et les scripts de rotation génèrent des mots de passe d'au moins 15 caractères, sinon la création de comptes pourrait échouer.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R31 | direct | 2.0 | haute |
| CIS | 5.3.3.2.2, 8.3.6 | direct | per OS, see the benchmark table | haute |
| NIST | CM-6(a), IA-5(1)(a), IA-5(4), IA-5(c) | support | 800-53 Rev 5 · 800-171 Rev 2 (pinned) | moyenne |
| PCI DSS | 8.3.6 | support | 4.0.1 | moyenne |
| DISA STIG | UBTU-22-611035, UBTU-24-400320 | direct | per OS STIG release | haute |
Chaque référence est une référence croisée ancrée dans le benchmark amont et recoupée avec le SCAP Security Guide et ansible-lockdown, pas une affirmation d’équivalence. Direct = une exigence prescriptive au niveau de la ligne ; support = une famille de contrôle abstraite (NIST) vers laquelle le check apporte une preuve. Comment lire un mapping.