Définir la limite de tentatives d'authentification SSH
Limiter les tentatives d'authentification SSH par connexion à 4 via MaxAuthTries.
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.
Pavois vérifie la configuration effective, l’état résolu et réellement appliqué, pas un fichier. Les scanners basés fichier (OVAL/SCAP, Lynis) ratent les Include, drop-ins et défauts runtime ; ce check voit ce qui est réellement en vigueur.
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
MaxAuthTries limite le nombre de tentatives d'authentification autorisées par connexion avant que sshd ne la ferme. La valeur par défaut (6) offre à un attaquant plus d'essais par session, facilitant les attaques par force brute et par pulvérisation de mots de passe. L'abaisser à 4 oblige l'attaquant à ouvrir bien plus de connexions pour effectuer le même nombre d'essais, ce qui est plus lent, plus bruyant et plus facile à détecter ou à limiter.
Ce que vérifie Pavois
Pavois vérifie que la sortie effective de sshd -T rapporte maxauthtries 4. Lire le démon en cours d'exécution reflète la valeur après fusion de tous les Include et des drop-ins de /etc/ssh/sshd_config.d/, un scan de fichiers peut manquer une surcharge et signaler un faux succès ou échec.
describe command('sshd -T') do
its('stdout') { should match(/^maxauthtries\s+[1-4]$/i) }
endComment vérifier qu’elle est appliquée
Exécuter sshd -T | grep -i maxauthtries. Sortie attendue :
maxauthtries 4
Inspecter et investiguer
Les tentatives échouées et épuisées apparaissent dans /var/log/auth.log (Debian/Ubuntu) ou via journalctl -u ssh / journalctl -u sshd (famille RHEL). À l'atteinte de la limite, vous voyez error: maximum authentication attempts exceeded puis une déconnexion.
Remédiation
Le plan de durcissement de Pavois règle la ressource sshd_setting pour la directive maxauthtries sur 4, valide la configuration candidate avec sshd -t, puis déclenche un reload du service ssh. À appliquer avec pavois harden apply.
Pavois applique ceci avec son propre moteur harden, le plan ci-dessous, pas un script shell :
| directive | maxauthtries |
|---|---|
| notify | action: reload, service: ssh.service |
| resource | sshd_setting |
| value | 3 |
| verify | sshd -t -f %{path} |
pavois harden plan localoù la cible est local, un alias SSH user@hôte, ou un conteneur , Docs
Impact & précautions
Notez que sshd compte chaque clé publique proposée par le client comme une tentative. Un utilisateur dont l'agent détient de nombreuses clés peut atteindre la limite avant que la bonne clé soit essayée et être rejeté avec Too many authentication failures. Avant d'appliquer, élaguez les clés inutilisées des agents ou définissez IdentitiesOnly yes pour l'hôte cible, gardez une seconde session ouverte, et appuyez-vous sur la validation intégrée sshd -t pour ne pas casser le service en écoute.
Mapping des normes
| Norme | Référence | Type | Version | Confiance |
|---|---|---|---|---|
| CIS | 2.2.6, 5.1.16, 5.1.18 | direct | per OS, see the benchmark table | haute |
| PCI DSS | 2.2.6 | support | 4.0.1 | 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.