Fail2ban
Lit les fichiers de journaux, repère les motifs qui ressemblent à des échecs de connexion et bloque l'IP source dans le pare-feu pendant un moment. Écrit en Python par Cyril Jaquier en 2004.
Il se configure en « jails » (prisons), une par service : un filtre à base d'expressions régulières qui reconnaît les lignes de log, plus des règles disant combien de tentatives dans quelle fenêtre de temps valent quelle durée de bannissement. La jail sshd fournie par défaut est le point de départ de tout le monde, mais le même modèle marche pour Postfix, nginx, Apache et les applications qui tiennent leurs propres journaux. Le principal bénéfice : les logs redeviennent lisibles — le bruit des scans automatisés disparaît. Contre une attaque ciblée, l'aide est marginale, et il ne remplace jamais l'authentification par clé avec la connexion par mot de passe désactivée. Alternatives : CrowdSec, qui partage en plus les observations entre installations, et sshguard.