Ceci est une ancienne révision du document !


Fail2Ban

Fail2Ban est un petit utilitaire très pratique pour bloquer les attaques brute force inhérentes à toute machine directement accessible sur Internet.

Le principe est simple :

  • les journaux de logs sont analysés en permanence
  • en cas d'échec trop importants dans une courte période, l'IP source est bloquée temporairement via iptables
  • à la fin de la période de ban, l'IP est à nouveau autorisée

Installation

L'installation est réalisée sur Debian en ajoutant le paquet :

  • fail2ban

Configuration

La structure de la configuration de fail2ban est la suivante :

  • /etc/fail2ban/jail.conf constitue le majeure partie de la configuration, notamment les services à protéger.
  • /etc/fail2ban/filter.d/ contient les filtres appliqués sur les logs afin d'identifier une tentative d'attaque
  • /etc/fail2ban/action.d/ contient les actions utilisables en cas d'attaque
  • /etc/fail2ban/fail2ban.conf contient quelques paramètres de configuration supplémentaires

Par défaut, sous Debian, fail2ban est configuré ainsi :

  • seul le serveur ssh est protégé
  • un attaquant est bloqué après 6 tentatives de connexions infructueuses
  • le temps de ban est 10 minutes
  • l'IP 127.0.0.1 est exclue du ban
  • une ligne est ajoutée au log de fail2ban sans envoie de mail

Alerte par mail

Il est possible d'activer l'alerte par mail en changeant le paramètre suivant :

# Choose default action.  To change, just override value of 'action' with the
# interpolation to the chosen action shortcut (e.g.  action_mw, action_mwl, etc) in jail.local
# globally (section [DEFAULT]) or per specific section
action = %(action_)s

Les valeurs suivantes sont des raccourcis :

  • action_ : blocage sans mail
  • action_mw : blocage avec envoie du whois de l'attaquant
  • action_mwl : blocage avec envoie du whois de l'attaquant et des logs générant le blocage

Exclure des IP

Vous pouvez empêcher Fail2ban de bloquer vos IP avec le paramètre “ignoreip”, par exemple :

ignoreip = 127.0.0.1 192.168.1.1

Changer la durée de ban

La durée est configurée avec “bantime”, pour bloquer pendant 5 minutes :

bantime  = 300

Définition d'un service à protéger

Les services sont déclarés ainsi :

[ssh]
enabled = true
port    = ssh
filter  = sshd
logpath  = /var/log/auth.log
maxretry = 6

Description des paramètres :

  • enabled : permet d'activer ou de désactiver la protection
  • port : définit le port à bloquer
  • filter : définit le filtre à utiliser, les filtres sont situés dans le sous répertoire filter.d
  • logpath : le fichier de log à parser
  • maxretry : le nombre de tentatives autorisées avant blocage

Protéger phpmyadmin

Il est possible de protéger phpmyadmin avec fail2ban, pour cela il faut :

  • modifier le log apache pour loguer les actions phpmyadmin
  • créer un filtre pour identifier les tentatives de connexion
  • ajouter une configuration de service dans fail2ban

Loguer les actions phpmyadmin

linux/fail2ban.1326144020.txt.gz · Dernière modification: 2012/01/09 22:20 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki