← Toutes les règles
SOCLE-CLD-SSH-015// SSHmoyenneruntime effectif

Activer PAM

Active la pile PAM pour les connexions SSH en positionnant UsePAM yes dans sshd.

Vérifié sur l’état résolu en cours d’exécution (ex. sshd -T, sysctl, systemctl show), attrape les drop-ins et Include qu’une lecture de fichier raterait. Réserve : runtime ≠ persistance ; une valeur correcte maintenant peut ne pas survivre à un redémarrage.

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

Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.

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

Avec UsePAM yes, sshd exécute les piles PAM account et session du système lors de la connexion. C'est ce qui applique les contrôles au niveau du compte, accès par IP, plage horaire ou appartenance (pam_access), expiration et verrouillage de compte (pam_faillock/pam_tally2), limites de ressources (pam_limits) et initialisation cohérente de la session (pam_env, pam_systemd). Sans cela, SSH contourne entièrement ces contrôles centralisés, laissant des comptes désactivés ou expirés se connecter et cassant les politiques de verrouillage.

Ce que vérifie Pavois

Pavois lit la valeur effective de usepam depuis sshd -T, la configuration résolue du démon. Un scan de /etc/ssh/sshd_config pourrait rater une valeur définie dans un drop-in Include sous /etc/ssh/sshd_config.d/, sshd -T reflète exactement ce que le démon en cours d'exécution applique.

describe command('sshd -T') do
  its('stdout') { should match(/^usepam\s+yes$/i) }
end

Comment vérifier qu’elle est appliquée

Exécutez sudo sshd -T | grep -i usepam. La sortie attendue est usepam yes.

Inspecter et investiguer

Les décisions PAM pour SSH (compte refusé, session ouverte/fermée, faillock) apparaissent dans /var/log/auth.log (Debian/Ubuntu) ou /var/log/secure (famille RHEL) ; suivez avec journalctl -u ssh -f (ou -u sshd). Recherchez les messages pam_unix, pam_faillock et pam_access.

Remédiation

pavois harden apply définit la directive sshd_setting usepam sur yes dans un drop-in géré, la valide avec sshd -t -f %{path}, puis déclenche un reload du service ssh pour activer la pile PAM sans couper les sessions actives.

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

directiveusepam
notifyaction: reload, service: ssh.service
resourcesshd_setting
valueyes
verifysshd -t -f %{path}
pavois harden plan local

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

Impact & précautions

Exécuter SSH avec UsePAM no contourne silencieusement les politiques d'expiration, de verrouillage et de contrôle d'accès des comptes, une faille de sécurité sérieuse. L'activer est généralement sûr et requis par la plupart des distributions. Précaution : une configuration PAM cassée (par exemple un module mal ordonné ou absent dans /etc/pam.d/sshd) peut faire échouer toutes les connexions une fois UsePAM yes actif ; vérifiez d'abord que la pile PAM est saine et gardez une deuxième session ou une console ouverte lors de l'application. Le reload préserve votre session SSH en cours, limitant le risque de blocage.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS2.2.6, 5.1.22, 5.1.24directper OS, see the benchmark tablehaute
PCI DSS2.2.6support4.0.1moyenne
DISA STIGUBTU-22-255065, UBTU-24-500050directper 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