Interdire la connexion SSH root par mot de passe (non sécurisé)
Exige PermitRootLogin prohibit-password afin que root ne puisse se connecter en SSH qu'avec une clé, jamais avec un mot de passe.
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.
Pourquoi cette règle
C'est l'alternative plus faible, orientée compatibilité, à la désactivation complète du SSH root : prohibit-password autorise encore la connexion root directe mais uniquement par clé publique (ou autre authentification non interactive), bloquant les connexions par mot de passe. Cela retire le mot de passe de root de la surface de force brute en ligne tout en conservant l'automatisation par clé qui a légitimement besoin de root. Préférez PermitRootLogin no lorsque c'est opérationnellement possible.
Ce que vérifie Pavois
Pavois lit la valeur effective via sshd -T, après tous les Include, drop-ins de /etc/ssh/sshd_config.d/ et blocs Match. La distinction entre no, prohibit-password et yes n'est fiable que depuis la sortie résolue ; une lecture de /etc/ssh/sshd_config pourrait être surchargée par un drop-in ultérieur.
describe command('sshd -T') do
its('stdout') { should match(/^permitrootlogin\s+(prohibit\-password|without\-password|no)$/i) }
endComment vérifier qu’elle est appliquée
Exécutez sshd -T | grep -i '^permitrootlogin'. La sortie attendue est permitrootlogin prohibit-password.
Inspecter et investiguer
Les tentatives de connexion root sont journalisées dans /var/log/secure ou via journalctl -u sshd (famille RHEL) ; une tentative par mot de passe pour root est rejetée et apparaît comme une ligne d'échec d'authentification.
Remédiation
Pas de remédiation automatique pour cette règle, à appliquer manuellement selon la norme.
Impact & précautions
Avant d'appliquer, assurez-vous que root dispose d'une clé SSH autorisée (/root/.ssh/authorized_keys) si un flux nécessite le SSH root, ou qu'un compte admin avec sudo existe, sinon vous risquez de couper le seul accès root. Testez une deuxième session SSH avant de fermer la session courante. Notez que cela autorise toujours la connexion root directe par clé, donc c'est plus faible que PermitRootLogin no ; l'automatisation root par mot de passe seul cassera et devra passer aux clés.