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

Définir l'algorithme de hachage des mots de passe dans /etc/login.defs

Garantit que ENCRYPT_METHOD dans /etc/login.defs vaut SHA512, afin que les nouveaux hachages de mots de passe utilisent un algorithme fort.

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

Les mots de passe doivent être protégés en permanence, et le hachage est la méthode standard pour les protéger. Un mot de passe haché avec un algorithme faible n'est pas mieux protégé qu'en clair. Définir ENCRYPT_METHOD sur SHA512 garantit que les mots de passe nouveaux ou modifiés utilisent un hachage fort, rendant les attaques de cassage hors-ligne beaucoup plus coûteuses.

Ce que vérifie Pavois

Pavois utilise la ressource InSpec login_defs pour lire la valeur effective résolue de ENCRYPT_METHOD, en analysant /etc/login.defs comme le font réellement les outils de mot de passe (la dernière valeur l'emporte, commentaires ignorés). Cela reflète la valeur que passwd/chpasswd utiliseront, plutôt qu'un grep naïf qui pourrait correspondre à une ligne commentée ou écrasée.

describe login_defs do
  its('ENCRYPT_METHOD') { should match(/\A(SHA512|YESCRYPT)\z/i) }
end

Comment vérifier qu’elle est appliquée

  • grep -i '^ENCRYPT_METHOD' /etc/login.defs doit afficher ENCRYPT_METHOD SHA512.
  • Après définition d'un nouveau mot de passe, getent shadow <user> doit montrer un hachage commençant par $6$ (SHA512).

Inspecter et investiguer

  • grep -i ENCRYPT_METHOD /etc/login.defs montre l'algorithme configuré.
  • getent shadow <user> révèle le préfixe du hachage réel ($6$ = SHA512, $y$ = yescrypt).
  • journalctl /usr/sbin/sshd / /var/log/auth.log enregistrent les changements de mot de passe via PAM.

Remédiation

Aucun plan de durcissement automatisé n'est défini pour cette règle, elle doit donc être appliquée manuellement : définissez ENCRYPT_METHOD SHA512 dans /etc/login.defs (ou reposez-vous sur le défaut PAM pam_unix sha512/yescrypt des distributions récentes). Le changement n'affecte que les mots de passe définis ou modifiés ensuite ; les hachages existants ne sont pas re-hachés tant que chaque utilisateur ne change pas son mot de passe.

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

file/etc/login.defs
keyENCRYPT_METHOD
resourceconf_line
sepspace
valueYESCRYPT
pavois harden plan local

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

Impact & précautions

Risque opérationnel négligeable, SHA512 est le défaut sur toutes les distributions prises en charge. Note : le changement n'agit que vers l'avenir, les comptes existants conservent leur ancien hachage jusqu'au prochain changement de mot de passe ; forcez une rotation si chaque compte doit être conforme immédiatement. Sur les distributions qui utilisent yescrypt par défaut ($y$), confirmez que votre politique accepte SHA512 plutôt que yescrypt avant de forcer cette valeur.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS5.4.1.4, 8.3.2directper OS, see the benchmark tablehaute
NIST3.13.11, CM-6(a), IA-5(1)(c), IA-5(c)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS8.3.2support4.0.1moyenne
DISA STIGUBTU-22-611070, UBTU-24-400400directper 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