Garantir que PAM impose des exigences de mot de passe - Minimum de caractères minuscules
Force pam_pwquality à exiger au moins une lettre minuscule dans chaque nouveau mot de passe en posant lcredit = -1.
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
Un mot de passe complexe augmente le temps et les ressources nécessaires pour le compromettre. Le paramètre lcredit contrôle la contribution des minuscules à la robustesse du mot de passe : une valeur de -1 signifie qu'au moins une minuscule est obligatoire. Exiger des minuscules élargit l'espace de recherche des caractères, rendant les attaques par force brute et par dictionnaire nettement plus difficiles. Sans cela, les utilisateurs peuvent choisir des mots de passe tirés d'un alphabet étroit qui cèdent vite aux attaques par devinette.
Ce que vérifie Pavois
Pavois lit la valeur effective de lcredit en analysant /etc/security/pwquality.conf et chaque drop-in sous /etc/security/pwquality.conf.d/, en conservant la dernière définition qui l'emporte réellement à l'exécution. Un scanner basé sur les fichiers qui n'inspecte que le pwquality.conf principal manquerait une valeur redéfinie (ou posée) par un drop-in, produisant un faux résultat. Le contrôle passe uniquement quand la valeur résolue est <= -1.
describe command('v=$(grep -rh \'^[[:space:]]*lcredit[[:space:]]*=\' /etc/security/pwquality.conf /etc/security/pwquality.conf.d/ 2>/dev/null | tail -1 | grep -oE \'[-]?[0-9]+\'); { [ -n "$v" ] && [ "$v" -le -1 ] && echo ok; } || echo ko') do
its('stdout.strip') { should eq 'ok' }
endComment vérifier qu’elle est appliquée
Exécutez grep -rh '^[[:space:]]*lcredit' /etc/security/pwquality.conf /etc/security/pwquality.conf.d/ | tail -1. La ligne effective doit indiquer lcredit = -1 (ou toute valeur <= -1).
Inspecter et investiguer
Les tentatives de changement de mot de passe qui échouent à la complexité sont journalisées via PAM dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL) ; cherchez les messages pam_pwquality comme "The password does not contain enough character classes". Inspectez la config active avec grep -r lcredit /etc/security/pwquality.conf.d/.
Remédiation
pavois harden apply écrit lcredit = -1 dans le drop-in /etc/security/pwquality.conf.d/99-Pavois.conf via la ressource keyval (un éditeur clé/valeur idempotent). Le préfixe élevé 99- garantit qu'il surcharge tout réglage antérieur. Aucun redémarrage de service n'est requis ; le changement 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 | lcredit |
| resource | keyval |
| value | -1 |
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 ne sont pas invalidés ; la règle ne contraint que les nouveaux mots de passe. Les utilisateurs qui tentent de définir un mot de passe sans minuscule seront rejetés au moment du changement. Le risque de blocage est faible, mais avant d'appliquer, assurez-vous que vos scripts de provisionnement ou de rotation de mots de passe génèrent des mots de passe conformes (au moins une minuscule), 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.3, 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-611015, UBTU-24-400270 | 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.