← Toutes les règles
SOCLE-CLD-FSP-159// File permissionsmoyenneconfig persistante

Vérifier les permissions du répertoire de drop-ins du serveur SSH

Garantit que le répertoire de drop-ins /etc/ssh/sshd_config.d appartient à root sans accès pour le groupe ou les autres, afin que les fragments de politique SSH ne puissent être injectés ni lus par des utilisateurs non privilégiés.

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

Sur Ubuntu et RHEL 9 / Fedora, le sshd_config principal inclut chaque fragment de /etc/ssh/sshd_config.d, ces drop-ins définissent donc la politique SSH effective (par ex. 50-cloud-init.conf d'Ubuntu). Si le répertoire est modifiable par le groupe ou les autres, un utilisateur non privilégié peut y ajouter un fragment qui réactive la connexion root, affaiblit les chiffrements ou installe une porte dérobée au prochain rechargement ; s'il est lisible au-delà de root, la politique est divulguée. Le répertoire doit appartenir à root sans lecture/écriture/exécution pour le groupe ou les autres ni bits spéciaux.

Ce que vérifie Pavois

Pavois lit le mode effectif du répertoire /etc/ssh/sshd_config.d et vérifie l'absence de lecture/écriture/exécution pour le groupe ou les autres et l'absence de bits setuid/setgid/sticky. Protégé par only_if { file('/etc/ssh/sshd_config.d').exist? }. C'est précisément l'angle de Pavois : un scanner basé sur les fichiers qui ne vérifie que sshd_config rate les drop-ins Include qui définissent réellement la politique, sécuriser ce répertoire ferme la voie d'injection, et sshd -T confirme le résultat résolu.

only_if { file('/etc/ssh/sshd_config.d').exist? }
describe file('/etc/ssh/sshd_config.d') do
  it { should_not be_executable.by('owner') }
  it { should_not be_setuid }
  it { should_not be_executable.by('group') }
  it { should_not be_writable.by('group') }
  it { should_not be_readable.by('group') }
  it { should_not be_setgid }
  it { should_not be_executable.by('other') }
  it { should_not be_writable.by('other') }
  it { should_not be_readable.by('other') }
  it { should_not be_sticky }
end

Comment vérifier qu’elle est appliquée

Exécutez stat -c '%a %U %G' /etc/ssh/sshd_config.d. La sortie attendue est 700 root root (ou plus strict) : aucune lecture, écriture ou exécution pour le groupe ou les autres. Ensuite sshd -T affiche la politique effective assemblée depuis les fragments.

Inspecter et investiguer

stat /etc/ssh/sshd_config.d affiche le mode du répertoire ; sshd -T affiche la politique effective après assemblage des drop-ins. Les événements SSH/authentification sont dans journalctl -u ssh / /var/log/auth.log (Ubuntu) ou journalctl -u sshd / /var/log/secure (RHEL/Fedora). Les modifications du répertoire apparaissent dans /var/log/audit/audit.log si surveillées.

Remédiation

Aucun plan de durcissement automatisé n'est défini pour cette règle, appliquez-la donc manuellement : chown root:root /etc/ssh/sshd_config.d puis chmod 0700 /etc/ssh/sshd_config.d.

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

mode0600
path/etc/ssh/sshd_config.d
resourcefile
pavois harden plan local

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

Impact & précautions

Comme les drop-ins surchargent la configuration principale, un sshd_config.d modifiable par le groupe ou tous est un risque encore plus aigu qu'un sshd_config modifiable : un utilisateur non privilégié peut discrètement l'emporter sur la précédence du dernier appliqué et réactiver la connexion root ou une authentification faible au prochain rechargement. Précautions : modifier uniquement les permissions du répertoire ne coupe pas les sessions actives, c'est donc sûr ; conservez 0700 root:root, et validez tout changement de configuration avec sshd -t avant de recharger pour éviter un démon qui ne démarre pas et vous verrouille dehors.

Mapping des normes

NormeRéférenceTypeVersionConfiance
CIS5.1.1directper OS, see the benchmark tablehaute
NISTAC-17(a), AC-6(1), CM-6(a)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne

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