← Toutes les règles
SOCLE-CLD-IAM-031// Accounts (PAM modules)moyenneconfig persistante

Vérifier que le module pam_pwquality est activé

Garantit que pam_pwquality.so est présent dans la pile password de PAM afin que les nouveaux mots de passe soient contrôlés en robustesse (longueur, complexité, mots de dictionnaire).

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 1 norme

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

Des mots de passe forts augmentent considérablement le temps et l'effort nécessaires à un accès non autorisé, améliorant la sécurité globale du système. pam_pwquality est le module qui applique les règles de composition au moment de la définition du mot de passe ; sans lui, les utilisateurs peuvent choisir des mots de passe trivialement faibles ou de dictionnaire, qui cèdent instantanément à la devinette ou au cassage.

Ce que vérifie Pavois

Pavois recherche dans la pile PAM effective sous /etc/pam.d/ une ligne pam_pwquality.so active (non commentée). La pile password est construite à partir de common-password et de sa chaîne @include, si bien que lire les fichiers résolus détecte le cas où le module est déclaré dans un exemple mais absent du chemin réellement appliqué par PAM, une lacune qu'une analyse mono-fichier manque.

describe command('grep -RqE \'^[^#]*\bpam_pwquality\\.so\b\' /etc/pam.d/ 2>/dev/null && echo ok || echo ko') do
  its('stdout.strip') { should eq 'ok' }
end

Comment vérifier qu’elle est appliquée

Exécutez grep -rE '^[^#]*pam_pwquality\.so' /etc/pam.d/ ; une ligne password active doit référencer le module. Fonctionnellement, lancez passwd et essayez un mot de passe faible (par ex. abc), il devrait être rejeté avec un message de qualité.

Inspecter et investiguer

Les tentatives de changement de mot de passe et les rejets pour qualité insuffisante sont consignés dans /var/log/auth.log (Debian/Ubuntu). La politique du module est lue depuis /etc/security/pwquality.conf.

Remédiation

Aucune remédiation automatisée n'est câblée pour cette règle, elle doit donc être appliquée manuellement : installez libpam-pwquality et ajoutez une ligne password requisite pam_pwquality.so retry=3 à /etc/pam.d/common-password (avant pam_unix.so), généralement via pam-auth-update, puis définissez la politique dans /etc/security/pwquality.conf.

Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :

commandapt-get install -y libpam-pwquality pam-auth-update --enable pwquality 2>/dev/null || pam-auth-update
reasoninstalls + enables a PAM module, review which password profile you want
resourcemanual
pavois harden plan local

où la cible est local, un alias SSH user@hôte, ou un conteneur , Docs

Impact & précautions

Ajouter pam_pwquality n'affecte que les changements de mot de passe, pas les connexions ni les sessions, mais une politique trop stricte peut frustrer les utilisateurs ou bloquer les réinitialisations, et une ligne password malformée peut casser tous les changements de mot de passe. Précautions : gardez une session root ouverte, commencez par des réglages raisonnables (par ex. minlen, retry=3), testez passwd sur un utilisateur jetable, et assurez-vous que la ligne précède pam_unix.so.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS5.3.2.3directper OS, see the benchmark tablehaute

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