Vérifier le propriétaire du fichier de configuration du serveur SSH
Garantit que le fichier de configuration du serveur SSH /etc/ssh/sshd_config appartient à root (uid 0).
Vérifié sur les métadonnées d’un chemin, mode, propriétaire, groupe, SUID/SGID.
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 contrôle tous les aspects de sécurité du serveur SSH : méthodes d'authentification, connexion root, algorithmes de chiffrement, port et restrictions d'accès. Une mauvaise configuration ici mène directement à un hôte exploitable à distance. Si un utilisateur non-root possède le fichier, il peut l'éditer pour activer PermitRootLogin yes, affaiblir l'authentification ou ouvrir une porte dérobée, puis déclencher un rechargement de sshd, faisant passer un compte local à un accès root distant. Restreindre la propriété à root (uid 0) garantit que seul le superutilisateur peut modifier la politique du serveur SSH.
Ce que vérifie Pavois
Pavois vérifie que le fichier réel /etc/ssh/sshd_config a l'uid de propriétaire 0, ignoré via only_if s'il est absent. Il lit le propriétaire effectif depuis le système de fichiers (stat), de sorte qu'un chown manuel du fichier de politique SSH principal est détecté même en l'absence de tout enregistrement de gestion des changements. (Note : Pavois audite le comportement du serveur SSH via sshd -T dans d'autres règles ; cette règle de propriété protège l'intégrité du fichier que sshd -T reflète in fine.)
only_if { file('/etc/ssh/sshd_config').exist? }
describe file('/etc/ssh/sshd_config') do
its('uid') { should eq 0 }
endComment vérifier qu’elle est appliquée
Exécutez stat -c '%U %u' /etc/ssh/sshd_config. Sortie attendue : root 0. ls -l /etc/ssh/sshd_config doit de même afficher root comme propriétaire.
Inspecter et investiguer
La propriété ne génère pas de journal continu ; interrogez-la avec stat /etc/ssh/sshd_config. Les événements du service SSH et les erreurs de chargement de configuration apparaissent dans /var/log/auth.log (Debian/Ubuntu) ou via journalctl -u ssh. sshd refusera de démarrer s'il juge la configuration non sûre, en journalisant la raison à cet endroit.
Remédiation
Aucun plan de durcissement automatisé n'est défini, appliquez-la donc manuellement : chown root:root /etc/ssh/sshd_config. Réinstaller openssh-server restaure également la bonne propriété.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| owner | root |
|---|---|
| path | /etc/ssh/sshd_config |
| resource | file |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Un propriétaire non-root de ce fichier peut réécrire la politique SSH et obtenir un accès root distant, l'une des escalades local-vers-distant les plus puissantes. Restaurer la propriété root est sans danger et ne coupe pas les sessions en cours. Précaution : après avoir corrigé la propriété, exécutez sshd -t pour confirmer que la configuration se parse toujours, n'assouplissez pas le mode du fichier (conservez 0600/0644 selon le référentiel), et gardez une seconde session SSH ou une console ouverte avant de recharger sshd en cas d'erreur.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| ANSSI BP-028 | R50 | direct | 2.0 | haute |
| CIS | 5.1.1, 5.1.2 | direct | per OS, see the benchmark table | haute |
| NIST | AC-17(a), AC-6(1), CM-6(a) | support | 800-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.