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

Désactiver le transfert d'agent SSH

Interdit au serveur SSH de relayer la socket de l'agent d'authentification du client (AllowAgentForwarding no). Sans cela, quiconque dispose de root sur le serveur peut détourner la socket d'un administrateur connecté et s'authentifier en son nom sur toutes les machines que ses clés ouvrent.

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 24.04CIS 1.0.0Ubuntu 26.04

Ce que vérifie Pavois

Pavois exécute sshd -T et exige la ligne résolue allowagentforwarding no. sshd -T affiche la configuration réellement appliquée par le démon, après tous les Include et tous les drop-ins de /etc/ssh/sshd_config.d/. Lire directement /etc/ssh/sshd_config manquerait un drop-in qui réactiverait le transfert en aval et produirait un faux négatif.

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

Comment vérifier qu’elle est appliquée

Exécutez sshd -T | grep -i allowagentforwarding en root. Sortie attendue :

allowagentforwarding no

De bout en bout : connectez-vous avec ssh -A user@host et vérifiez que $SSH_AUTH_SOCK est vide dans le shell distant.

Inspecter et investiguer

Au niveau par défaut LogLevel INFO, le refus d'une demande de transfert d'agent ne produit aucune ligne de journal : sshd n'émet agent forwarding disabled qu'en niveau debug. Le signal observable est côté client ($SSH_AUTH_SOCK non défini dans la session). Les événements de connexion et d'authentification restent dans /var/log/auth.log (Debian/Ubuntu), /var/log/secure (RHEL) ou journalctl -u ssh.

Remédiation

Le plan de durcissement Pavois utilise la ressource sshd_setting pour forcer la directive allowagentforwarding à no dans le drop-in Pavois sous /etc/ssh/sshd_config.d/. Le fichier généré est validé par sshd -t -f <fichier> avant d'être conservé, et tout changement déclenche un reload de ssh.service : pas de redémarrage, les sessions en cours ne sont donc pas coupées.

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

directiveallowagentforwarding
notifyaction: reload, service: ssh.service
resourcesshd_setting
valueno
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

Laisser le transfert d'agent actif transforme chaque serveur sur lequel un administrateur se connecte avec ssh -A en tremplin : root sur cette machine peut utiliser la socket transférée pour signer des défis avec les clés privées de l'administrateur, sans jamais les lire. Avant d'appliquer, recherchez les usages qui reposent sur ForwardAgent (git push depuis le serveur, rebonds ssh -A, scripts de déploiement ou de CI). Le remplacement recommandé est le ProxyJump côté client (ssh -J bastion hote), qui n'expose jamais l'agent à la machine intermédiaire. Le reload n'interrompt pas les sessions en cours : le transfert cesse uniquement pour les nouvelles sessions.

Sources & références