← Toutes les règles
SOCLE-CLD-PKG-029// Packagesfaibleétat d’inventaire

Installer fail2ban (protection contre les attaques par force brute)

fail2ban surveille les journaux d'authentification et, lorsqu'une même adresse IP source échoue trop souvent dans une fenêtre de temps, insère une règle de pare-feu qui la bloque pendant un bantime. Sur Debian et Ubuntu, la prison (jail) sshd est active par défaut : installer le paquet émousse donc déjà les campagnes de devinette de mots de passe SSH et le bourrage d'identifiants. Aucune norme ne l'impose : Pavois le porte comme pratique de défense en profondeur. C'est un limiteur de débit sur les échecs de connexion, pas un contrôle d'authentification.

Vérifié sur ce qui est installé ou enregistré, paquets présents/absents, bases de comptes.

Un PASS prouve✓ actif maintenant✓ sur disque✓ survit au rebootle verdict qualifié →
Debian 12CIS 1.1.0Debian 13CIS 1.0.0Ubuntu 24.04CIS 1.0.0Ubuntu 26.04

Ce que vérifie Pavois

Pavois vérifie la présence de fail2ban dans l'inventaire dpkg. C'est un contrôle d'état d'inventaire : il prouve que le paquet est installé, pas que fail2ban-server tourne, qu'une prison est active, ni que la source de journaux de cette prison voit réellement quelque chose. Ce dernier point compte : une prison pointant sur /var/log/auth.log, sur un hôte qui ne journalise que dans le journal systemd, lit un fichier vide et ne bannit personne, alors que la règle reste au vert. Lisez ce contrôle comme « l'outil est là », et confirmez la prison séparément.

describe package('fail2ban') do
  it { should be_installed }
end

Comment vérifier qu’elle est appliquée

Exécutez dpkg -l fail2ban et vérifiez que la colonne d'état affiche ii :

ii  fail2ban  1.0.2-2  all  ban hosts that cause multiple authentication errors

Puis contrôlez qu'il travaille : systemctl is-active fail2ban renvoie active, fail2ban-client status liste les prisons actives (Jail list: sshd), et fail2ban-client status sshd affiche les compteurs et les adresses actuellement bannies :

|- Currently failed: 2
|- Total failed:     41
`- Banned IP list:   203.0.113.10

Inspecter et investiguer

fail2ban tient son propre journal, /var/log/fail2ban.log, avec une ligne par décision (prison, action, adresse) :

fail2ban.actions [1234]: NOTICE  [sshd] Ban 203.0.113.10
fail2ban.actions [1234]: NOTICE  [sshd] Unban 203.0.113.10

Le cycle de vie du démon est dans le journal systemd (journalctl -u fail2ban), et les échecs d'authentification auxquels il réagit sont dans /var/log/auth.log (ou journalctl -u ssh). C'est le seul paquet de cette famille à produire une véritable piste d'audit exploitable : grep Ban /var/log/fail2ban.log est la preuve que la protection s'est déclenchée.

Remédiation

Le plan de durcissement Pavois installe le paquet fail2ban avec le gestionnaire de paquets du système (ressource package, action install). Il n'écrit aucune configuration de prison : ce qui devient actif, c'est la prison sshd par défaut de la distribution (/etc/fail2ban/jail.d/defaults-debian.conf). Le réglage de bantime, maxretry et surtout d'ignoreip vous revient, dans un jail.local.

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

actioninstall
namefail2ban
resourcepackage
pavois harden plan local

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

Impact & précautions

Sans fail2ban, un port SSH exposé encaisse indéfiniment les tentatives de force brute : l'authentification par clé seule et MaxAuthTries bornent le risque réel, mais le bruit, le volume de journaux et le coût processeur demeurent. Les effets de bord sont précisément la raison de réfléchir avant de l'installer. Il peut vous bannir : un administrateur qui se trompe de mot de passe depuis l'adresse du bureau, ou une sonde de supervision qui s'authentifie mal, subit exactement le même sort qu'un attaquant, et sur un hôte sans console c'est un verrouillage. Renseignez ignoreip avec vos plages d'administration avant le premier bannissement, et gardez une seconde session ouverte. Il écrit dans le pare-feu (nftables ou iptables) : il peut donc entrer en collision avec un jeu de règles géré déclarativement ailleurs, et une purge de ce jeu de règles efface silencieusement ses bannissements. Enfin, un fail2ban dont la prison lit la mauvaise source de journaux tourne, se déclare active et ne protège rien : vérifiez les compteurs de bannissement, jamais le seul état du service.

Sources & références