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

Répartir la configuration du serveur SSH dans plusieurs fichiers d'un répertoire de configuration.

Garantir que la configuration sshd est répartie en fichiers drop-in sous /etc/ssh/sshd_config.d/, intégrés via un Include dans sshd_config.

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é →
FedoraRHEL 10 / Rocky 10 / AlmaLinux 10RHEL 9 / Rocky 9 / AlmaLinux 9CIS 2.0.0

Pourquoi cette règle

Les réglages sshd durcis doivent résider dans des fichiers drop-in sous /etc/ssh/sshd_config.d/, le sshd_config principal étant réduit à un Include /etc/ssh/sshd_config.d/*.conf. Toutes les autres règles de durcissement SSH supposent que les directives drop-in sont effectives, cette organisation distribuée doit donc être en place pour qu'elles fonctionnent. Découper la configuration par finalité facilite aussi le partitionnement, la revue et la fusion des changements de durcissement lors des mises à jour de référentiels, au lieu de modifier sans cesse un fichier monolithique.

Ce que vérifie Pavois

Pavois lit la sortie effective de sshd -T plutôt que l'agencement des fichiers. Cela importe justement parce que le modèle en répertoire repose sur Include : seul le démon en cours d'exécution montre si les drop-ins sont réellement analysés et fusionnés, ce que les scanners basés sur les fichiers (OVAL/oscap) manquent précisément. Notez que la chaîne de vérification figée est un artefact hérité du message de remédiation du référentiel source, propre à RHEL 9 / AlmaLinux 9 ; l'objectif réel est un répertoire de drop-ins fonctionnel via Include.

describe command('grep -iE "^[[:space:]]*Include[[:space:]]+/etc/ssh/sshd_config\\.d/\\*\\.conf" /etc/ssh/sshd_config') do
  its('stdout') { should match(/\S/) }
end
describe directory('/etc/ssh/sshd_config.d') do
  it { should exist }
end

Comment vérifier qu’elle est appliquée

Confirmer que l'include et le répertoire sont en place :

  • grep -i '^Include' /etc/ssh/sshd_config doit afficher Include /etc/ssh/sshd_config.d/*.conf
  • ls /etc/ssh/sshd_config.d/ doit lister vos drop-ins de durcissement
  • sshd -T doit rapporter toutes les valeurs durcies attendues, prouvant que les drop-ins sont effectifs

Inspecter et investiguer

L'analyse de la configuration et les rechargements sont journalisés via journalctl -u sshd (famille RHEL) ; une erreur de syntaxe dans un drop-in y apparaît, ainsi que dans la sortie de sshd -t. La bonne application se confirme surtout par les valeurs résolues dans sshd -T.

Remédiation

Cette règle n'a aucun plan de durcissement automatisé dans la référence ; elle doit donc être appliquée manuellement : s'assurer que sshd_config contient Include /etc/ssh/sshd_config.d/*.conf (sauvegarder d'abord l'original), placer les directives de durcissement dans des fichiers .conf sous /etc/ssh/sshd_config.d/, valider avec sshd -t, puis systemctl reload sshd. En pratique, c'est le socle dans lequel écrivent les autres plans de durcissement SSH.

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

commandmkdir -p /etc/ssh/sshd_config.d; grep -qiE '^[[:space:]]*Include[[:space:]]+/etc/ssh/sshd_config\.d/\*\.conf' /etc/ssh/sshd_config || sed -i '1i Include /etc/ssh/sshd_config.d/*.conf' /etc/ssh/sshd_config; sshd -t
namesshd-include-dropin-dir
not_ifgrep -qiE '^[[:space:]]*Include[[:space:]]+/etc/ssh/sshd_config\.d/\*\.conf' /etc/ssh/sshd_config
resourceexec
pavois harden plan local

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

Impact & précautions

Réorganiser sshd_config est délicat : si l'Include manque, est mal placé (il doit apparaître tôt pour que les drop-ins surchargent les valeurs par défaut) ou qu'un drop-in comporte une erreur de syntaxe, le démon peut ignorer votre durcissement ou échouer au rechargement, au risque d'un verrouillage. Sauvegardez toujours la configuration d'origine, validez avec sshd -t avant de recharger, préférez reload à restart, et gardez une seconde session root ouverte jusqu'à confirmation que l'accès fonctionne toujours.

Sources & références