GNU/Linux >> Tutoriels Linux >  >> Linux

Fail2Ban Howto :Bloquer l'adresse IP à l'aide de Fail2ban et IPTables

Fail2ban analyse les fichiers journaux de divers services ( SSH, FTP, SMTP, Apache, etc., ) et interdit le IP qui fait trop d'échecs de mot de passe. Il met également à jour les règles du pare-feu pour rejeter ces adresses IP.

Fail2ban est un cadre de prévention des intrusions écrit dans le langage de programmation Python.

L'objectif principal de Fail2ban est d'empêcher les attaques de connexion par force brute.

Reportez-vous également à notre article précédent sur Tripwire (système de détection d'intrusion basé sur l'hôte Linux).

Installer Fail2ban

Pour installer fail2ban depuis la source, téléchargez-le depuis sourceforge..

Utilisez apt-get pour installer Fail2ban sur un système basé sur Debian, comme indiqué ci-dessous.

# apt-get install fail2ban

Vous pouvez également installer Fail2ban manuellement en téléchargeant le package deb fail2ban.

# dpkg -i fail2ban_0.8.1-1_all.deb

Comment configurer fail2ban

Tous les fichiers de configuration Fail2ban sont situés dans le répertoire /etc/fail2ban.

/etc/fail2ban/fail2ban.conf

L'objectif principal de ce fichier est de configurer les directives relatives au journal fail2ban.

  • Loglevel :définissez le niveau de journalisation de la sortie.
  • logtarget :spécifiez le chemin du fichier journal

Les actions prises par le Fail2ban sont consignées dans le fichier /var/log/fail2ban.log. Vous pouvez modifier la verbosité dans le fichier conf en l'une des valeurs suivantes :1 - ERROR, 2 - WARN, 3 - INFO ou 4 - DEBUG.

/etc/fail2ban/jail.conf

Le fichier jail.conf contient la déclaration des configurations du service. Ce fichier de configuration est divisé en différents contextes. Les paramètres PAR DÉFAUT s'appliquent à toutes les sections.

La section DEFAULT suivante de jail.conf indique qu'après cinq tentatives d'accès infructueuses à partir d'une seule adresse IP en 600 secondes ou 10 minutes (findtime), cette adresse sera automatiquement bloquée pendant 600 secondes (bantime).

[DEFAULT]
ignoreip = 127.0.0.1
maxretry = 5
findtime = 600
bantime = 600
  • ignoreip :il s'agit d'une liste d'adresses IP séparées par des espaces qui ne peuvent pas être bloquées par fail2ban.
  • maxretry :nombre maximal de tentatives de connexion infructueuses avant qu'un hôte ne soit bloqué par fail2ban.
  • bantime :temps en secondes pendant lequel un hôte est bloqué s'il a été intercepté par fail2ban (600 secondes =10 minutes).

Configuration des services

Par défaut, certains services sont insérés en tant que modèles. Voici un exemple de la section des services ssh.

[ssh]
enabled = true
port	= ssh
filter	= sshd
logpath  = /var/log/auth.log
action = iptables
  • enabled :Activer la vérification fail2ban pour le service ssh
  • port :port de service (référencé dans le fichier /etc/services)
  • filter :nom du filtre à utiliser par le service pour détecter les correspondances. Ce nom correspond à un nom de fichier dans ‘/etc/fail2ban/filter.d’ ; sans l'extension '.conf'. Par exemple :"filter =sshd" fait référence à "/etc/fail2ban/filter.d/sshd.conf".
  • logpath :le fichier journal que fail2ban vérifie pour les tentatives de connexion infructueuses.
  • Action :cette option indique à fail2ban quelle action entreprendre une fois qu'un filtre correspond. Ce nom correspond à un nom de fichier dans ‘/etc/fail2ban/action.d/’ sans l’extension ‘.conf’. Par exemple :"action =iptables" fait référence à /etc/fail2ban/action.d/iptables.conf".

Fail2ban surveillera le fichier /var/log/auth.log pour les tentatives d'accès infructueuses, et s'il trouve des tentatives répétées de connexion ssh échouées à partir de la même adresse IP ou hôte, fail2ban arrête les tentatives de connexion ultérieures à partir de cette adresse IP/hôte en le bloquant avec règle de pare-feu iptables fail2ban.

Filtres Fail2ban

Le répertoire /etc/fail2ban/filter.d contient des expressions régulières utilisées pour détecter les tentatives d'effraction, les échecs de mot de passe, etc., pour divers services.

Par exemple :

  • sshd.conf – Filtres liés à Fail2ban ssh
  • apache-auth.conf – Filtres de service apache Fail2ban

Nous pouvons également ajouter notre propre expression régulière pour trouver une action indésirable.

Actions Fail2ban

Le répertoire /etc/fail2ban/action.d contient différents scripts définissant des actions qui s'exécuteront une fois qu'un filtre correspondra. Un seul filtre est autorisé par service, mais il est possible de spécifier plusieurs actions, sur des lignes distinctes.

Par exemple :

  • IPtables.conf – bloquer et débloquer l'adresse IP
  • Mail.conf - Envoi de courrier à l'utilisateur configuré

Démarrer/arrêter le service Fail2ban

Après avoir apporté des modifications à la configuration, arrêtez et démarrez le démon Fail2ban comme indiqué ci-dessous.

# /etc/init.d/fail2ban stop

# /etc/init.d/fail2ban start

Linux
  1. Comment bloquer les adresses usurpées locales à l'aide du pare-feu Linux

  2. Comment bloquer l'adresse IP sur le serveur Linux

  3. Des questions sur IPTables et DHCP ?

  4. Problèmes d'utilisation du tri et de la communication

  5. Iptables - Chaîne Bridge et Forward

Comment bloquer/autoriser le ping en utilisant iptables dans Ubuntu

Comment bloquer une adresse IP en utilisant .htaccess ?

Tutoriel Unix Sed :Impression de lignes de fichier à l'aide d'adresses et de modèles

Tutoriel Unix Sed :Supprimer des lignes de fichier à l'aide d'adresses et de modèles

CentOS / RHEL :Comment bloquer les ports entrants et sortants à l'aide d'iptables

En utilisant Linux IPTables, comment bloquer les torrents ou tout protocole P2P ?