← Toutes les règles
SOCLE-CLD-IAM-052// Passwords (pwquality)moyenneconfig persistante

Garantir que PAM impose des exigences de mot de passe - Minimum de caractères majuscules

Force pam_pwquality à exiger au moins une lettre majuscule dans chaque nouveau mot de passe en posant ucredit = -1.

Vérifié sur le contenu d’un fichier de configuration persistant, la source de vérité qui survit aux redémarrages.

Un PASS prouve? actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 8 / Rocky 8 / AlmaLinux 8CIS 4.0.0RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0Ubuntu 22.04CIS 3.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04
Un seul check, mappé sur 5 normes

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 ucredit régit la contribution des majuscules à la robustesse : une valeur de -1 rend au moins une majuscule obligatoire. Mélanger la casse élargit l'espace de recherche des caractères, ralentissant les attaques par force brute et par dictionnaire. Sans cette exigence, les utilisateurs peuvent choisir des mots de passe d'une seule casse tirés d'un alphabet bien plus restreint, bien plus rapides à casser.

Ce que vérifie Pavois

Pavois lit la valeur effective de ucredit 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 à l'exécution. Un scanner basé sur les fichiers lisant uniquement la config principale manquerait une valeur posée ou redéfinie par un drop-in. Le contrôle passe uniquement quand la valeur résolue est <= -1.

describe command('v=$(grep -rh \'^[[:space:]]*ucredit[[: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' }
end

Comment vérifier qu’elle est appliquée

Exécutez grep -rh '^[[:space:]]*ucredit' /etc/security/pwquality.conf /etc/security/pwquality.conf.d/ | tail -1. La ligne effective doit indiquer ucredit = -1 (ou toute valeur <= -1).

Inspecter et investiguer

Les changements de mot de passe rejetés sont journalisés via PAM dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL) avec des messages pam_pwquality sur l'insuffisance de classes de caractères. Inspectez le réglage actif avec grep -r ucredit /etc/security/pwquality.conf.d/.

Remédiation

pavois harden apply écrit ucredit = -1 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
keyucredit
resourcekeyval
value-1
pavois harden plan local

où 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 contenir une majuscule. Les utilisateurs définissant des mots de passe tout en minuscules seront rejetés au moment du changement. Le risque de blocage est faible, mais vérifiez que vos outils de provisionnement et de rotation génèrent des mots de passe avec au moins une majuscule avant d'appliquer, pour éviter les échecs de création de comptes.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R31direct2.0haute
CIS5.3.3.2.3directper OS, see the benchmark tablehaute
NISTCM-6(a), IA-5(1)(a), IA-5(4), IA-5(c)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS8.3.6support4.0.1moyenne
DISA STIGUBTU-22-611010, UBTU-24-400260directper OS STIG releasehaute

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.

Sources & références