Wiki
Accueil › Serveurs root › fail2ban contre le brute-force

fail2ban contre le brute-force

Bloquer automatiquement les adresses IP après des connexions échouées répétées.

Des programmes automatisés essaient en permanence des mots de passe sur les ports SSH ouverts. fail2ban lit les entrées de journal du service SSH et bloque temporairement une adresse qui échoue trop souvent à se connecter. Le blocage passe par le pare-feu : l'attaquant n'atteint alors plus du tout le serveur.

Fonctionnement des réglages

Pourquoi jail.local et non jail.conf

Le fichier /etc/fail2ban/jail.conf contient les valeurs par défaut et est écrasé lors des mises à jour de paquets. Vos valeurs propres vont donc dans jail.local. Ce fichier prime, même s'il ne contient que les différences.

  1. Installer fail2ban :
    sudo apt install -y fail2ban
  2. Créer la configuration locale :
    sudo nano /etc/fail2ban/jail.local
  3. Saisir le contenu :
    [DEFAULT]
    bantime  = 1h
    findtime = 10m
    maxretry = 5
    ignoreip = 127.0.0.1/8 ::1
    [sshd]
    enabled = true

    [sshd] active la protection pour SSH. Les autres services, comme le serveur web ou la messagerie, sont désactivés par défaut et peuvent recevoir leurs propres sections si besoin.

  4. Démarrer le service et vérifier son état :
    sudo systemctl enable --now fail2ban
    sudo fail2ban-client status sshd

    La sortie indique le nombre d'échecs et les adresses actuellement bloquées.

Débloquer une adresse IP

Si vous vous êtes bloqué par erreur, libérez l'adresse ainsi :

sudo fail2ban-client set sshd unbanip ADRESSE-IP
N'ajoutez votre propre IP à ignoreip que si elle est fixe. Si l'adresse change, l'exception ne s'applique plus.

Combinaison avec la connexion par clé

Avec la connexion par clé et la connexion par mot de passe désactivée (voir Clés SSH et Sécuriser SSH), personne ne peut deviner de mot de passe. fail2ban reste néanmoins utile : il garde les entrées de journal lisibles et freine les scanners qui frappent en permanence à la porte.