← Toutes les règles
SOCLE-CLD-IAM-021// Accounts (login.defs)moyenneconfig persistante

Définir le délai d'avertissement d'expiration des mots de passe

Définit PASS_WARN_AGE dans /etc/login.defs pour que les utilisateurs soient avertis au moins 7 jours avant l'expiration de leur mot de passe.

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 3 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

Avertir les utilisateurs à l'avance de l'expiration leur permet de changer leur mot de passe à un moment opportun plutôt que d'être verrouillés à l'improviste. Sans fenêtre d'avertissement, un mot de passe peut expirer silencieusement en pleine tâche, forçant des remplacements précipités (souvent plus faibles) ou générant des tickets de support et des pertes d'accès.

Ce que vérifie Pavois

Pavois lit la valeur résolue PASS_WARN_AGE de /etc/login.defs via la ressource InSpec login_defs et vérifie qu'elle est >= 7. C'est la valeur par défaut appliquée aux nouveaux comptes ; les surcharges par compte se trouvent dans /etc/shadow (champ 6). Lire la directive effective évite de se fier à la documentation ou à des suppositions.

describe login_defs do
  its('PASS_WARN_AGE') { should cmp >= 7 }
end

Comment vérifier qu’elle est appliquée

Exécutez grep '^PASS_WARN_AGE' /etc/login.defs. Sortie attendue : PASS_WARN_AGE 7 (ou plus). Pour un compte existant, exécutez chage -l <user> et lisez les champs d'expiration/avertissement.

Inspecter et investiguer

Les avertissements d'expiration apparaissent à la connexion dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (RHEL). Le vieillissement par compte est affiché par chage -l <user> ; la valeur par défaut par grep PASS_WARN_AGE /etc/login.defs.

Remédiation

Aucun plan de durcissement automatisé n'est fourni ; appliquez-la manuellement en positionnant PASS_WARN_AGE 7 dans /etc/login.defs. Cela n'affecte que les nouveaux comptes, les comptes existants conservent leur valeur dans /etc/shadow, que vous pouvez mettre à jour avec chage --warndays 7 <user>.

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

file/etc/login.defs
keyPASS_WARN_AGE
resourceconf_line
sepspace
value7
pavois harden plan local

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

Impact & précautions

C'est un réglage à faible risque et purement informatif : il ne bloque jamais les connexions et ne peut causer de verrouillage. La seule conséquence d'une valeur faible ou nulle est une fenêtre d'avertissement réduite, menant à des expirations surprises. À l'application, rappelez-vous que la valeur de login.defs ne régit que les comptes futurs ; lancez chage sur les comptes existants pour un comportement uniforme.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS5.4.1.3, 8.3.9directper OS, see the benchmark tablehaute
NIST3.5.8, CM-6(a), IA-5(1)(d), IA-5(f)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS8.3.9support4.0.1moyenne

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