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

Vérifier que le module pam_unix est activé

Confirme que le module central pam_unix.so est présent dans la pile PAM, afin que les vérifications d'identifiants locaux face à /etc/shadow soient réellement effectuées.

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

pam_unix.so est le module qui vérifie réellement les identifiants face à la base de mots de passe locale (/etc/shadow). S'il est absent de la pile PAM, le système peut accorder l'accès sans effectuer aucune authentification locale, rompant la garantie la plus fondamentale : l'accès n'est accordé qu'après une vérification d'identité réussie.

Ce que vérifie Pavois

Pavois recherche dans l'arborescence PAM effective sous /etc/pam.d/ une ligne pam_unix.so non commentée. Analyser la configuration résolue, y compris les fichiers tirés par @include/substack, prouve que le module est câblé dans le chemin d'authentification réel, et pas seulement présent dans un fichier non référencé auquel un contrôle fichier par fichier ferait à tort confiance.

describe command('grep -RqE \'^[^#]*\bpam_unix\\.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 '^[^#]*\bpam_unix\.so\b' /etc/pam.d/

Attendu : une ou plusieurs lignes actives (dans common-auth, common-password, system-auth...) référencent pam_unix.so. Aucune correspondance signifie que l'authentification PAM locale n'est pas configurée.

Inspecter et investiguer

Les tentatives de connexion et d'authentification traitées par pam_unix sont enregistrées dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (RHEL/Fedora). Utilisez journalctl -t sshd -t login -t sudo pour suivre en temps réel les décisions pam_unix réussies et échouées.

Remédiation

Aucun plan de durcissement automatisé n'est fourni pour cette règle : elle doit être appliquée manuellement. Sur un système installé normalement, pam_unix.so est présent par défaut ; s'il a été retiré, restaurez-le dans les piles auth, account, password et session via pam-auth-update (Debian/Ubuntu) ou authselect select (RHEL/Fedora) plutôt qu'en éditant les fichiers PAM à la main.

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

commandgrep -rE 'pam_unix\.so' /etc/pam.d/ || echo 'pam_unix MISSING' # pam_unix is part of debian's default profiles; if missing, restore with: pam-auth-update
reasonPAM stack changes go through pam-auth-update, review the profile set
resourcemanual
pavois harden plan local

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

Impact & précautions

Une pile PAM dépourvue de pam_unix.so est grave : elle peut autoriser un accès non authentifié ou, à l'inverse, bloquer tout le monde selon ce qui l'a remplacée. Précautions : gardez un shell root ouvert avant de toucher à PAM, effectuez les changements via pam-auth-update/authselect (qui valident la pile), et vérifiez que vous pouvez toujours vous connecter depuis une session distincte avant de fermer la session courante.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS5.3.2.1, 5.3.2.5directper 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