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

Vérifier les permissions du fichier de configuration du serveur SSH

Garantit que /etc/ssh/sshd_config appartient à root sans lecture/écriture/exécution pour le groupe ou les autres, protégeant la politique maîtresse du démon SSH contre l'altération et la divulgation.

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 4 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

/etc/ssh/sshd_config est la configuration maîtresse du démon SSH et active ou désactive des fonctionnalités critiques (connexion root, authentification par mot de passe ou par clé, chiffrements, utilisateurs autorisés). S'il est modifiable par le groupe ou les autres, un utilisateur non privilégié pourrait l'altérer pour affaiblir l'accès distant ou installer une porte dérobée prenant effet au prochain rechargement ; s'il est lisible par le groupe/les autres, la politique d'accès est divulguée à quiconque sur l'hôte. Le fichier doit appartenir à root sans lecture/écriture/exécution pour le groupe ou les autres ni bits spéciaux, afin que seul l'administrateur contrôle la politique du serveur SSH.

Ce que vérifie Pavois

Pavois lit le mode effectif de l'inode de /etc/ssh/sshd_config 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').exist? }. Note : ce contrôle couvre les permissions du fichier ; la politique SSH effective elle-même (qui peut être surchargée par des drop-ins Include) est ce que rapporte sshd -T, les contrôles de service de Pavois auditent cet état résolu, tandis que cette règle verrouille le fichier qui l'amorce.

only_if { file('/etc/ssh/sshd_config').exist? }
describe file('/etc/ssh/sshd_config') 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. La sortie attendue est 600 root root (ou plus strict) : aucune lecture, écriture ou exécution pour le groupe ou les autres.

Inspecter et investiguer

stat /etc/ssh/sshd_config affiche le mode courant ; sshd -T affiche la politique effective qu'il produit. Les événements de service et d'authentification SSH sont dans journalctl -u ssh / /var/log/auth.log (Debian/Ubuntu) ou journalctl -u sshd / /var/log/secure (famille RHEL). Les modifications du fichier 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 puis chmod 0600 /etc/ssh/sshd_config.

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

grouproot
mode0600
ownerroot
path/etc/ssh/sshd_config
resourcefile
pavois harden plan local

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

Impact & précautions

Un sshd_config modifiable par le groupe ou tous permet à un utilisateur non privilégié de réactiver la connexion root, d'activer l'authentification par mot de passe ou d'autoriser un compte dérobé au prochain rechargement, une compromission critique de l'accès distant ; un fichier lisible divulgue la politique d'accès. Précautions : le resserrement à 0600 root:root n'interrompt pas les sessions SSH actives et correspond au défaut de la distribution, le risque est donc faible. Lancez sshd -t pour valider la syntaxe avant tout rechargement afin d'éviter d'arrêter le démon et de vous verrouiller dehors, et gardez au moins une session authentifiée ouverte pendant les modifications.

Mapping des normes

NormeRéférenceTypeVersionConfiance
ANSSI BP-028R50direct2.0haute
CIS2.2.6, 5.1.1, 5.1.2directper OS, see the benchmark tablehaute
NISTAC-17(a), AC-6(1), CM-6(a)support800-53 Rev 5 · 800-171 Rev 2 (pinned)moyenne
PCI DSS2.2.6support4.0.1moyenne

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