Fail2ban

Fail2ban est un script permettant de surveiller les accès réseaux anormaux (tentatives de login répétitives, etc…) par analyse des logs et de réagir à ces accès par un bannissement temporaire de l'adresse IP grâce à iptables.

Pour l'installer, rien de plus simple :

sudo apt-get install fail2ban

Pour éditer la configuration

sudo vi /etc/fail2ban/jail.conf

Paramètres de configuration jail

Si vous désirez recevoir un mail avec les logs des bans modifier la ligne action = %(action_)s par

action = %(action_mwl)s

Liste des adresses IP de confiance à ignorer par fail2ban, par exemple :

  ignoreip = 127.0.0.1 192.168.0.0/24

Temps de bannissement en secondes :

  bantime = 600

Nombre d'essais autorisés avant bannissement :

  maxretry = 5

Adresse e-mail de destination des notifications (laisser par défaut si vous utilisez logwatch)

  destemail = root@localhost

Paramètres de configuration par section

Les paramètres cités ci dessus sont surchargeables dans chaque section.

Activer le monitoring pour la section concernée :

  enabled = true

Sélectionner le port tcp à surveiller, exemple :

  port = ssh

Filtre utilisé pour analyser le log (voir dans le dossier /etc/fail2ban/filter.d pour les filtres), exemple :

  filter = sshd
  

Sections utilisées couramment

ssh Protège contre le bruteforce par SSH
apache Protège contre le bruteforce de type accès par fichier .htpasswd.
apache-noscript 
apache-overflows Protège contre les attques de type overflow sur Apache
proftpd Protège contre le bruteforce par FTP sur ProFTP

Sections optionnelles

Apache Bad Bots

Protège contre le parsing par des bots, le filtre existe par défaut.

ATTENTION : le filtre peut dans certains cas bloquer les bots de Google

[apache-badbots]

enabled  = true
port     = http,https
bantime  = 86400
filter   = apache-badbots
logpath  = /var/log/apache*/*error.log
maxretry = 1
Anti w00tw00t

Permet de filtrer les attaques / parsing de type w00tw00t :

vi /etc/fail2ban/filter.d/apache-w00tw00t.conf

on y insère le code suivant

#<HOST> - - [11/Jan/2010:14:56:27 +0200] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 326

[Definition]
# Option:  failregex
# Notes.:  regex to match the w00tw00t scan messages in the logfile. The
#          host must be matched by a group named "host". The tag "<HOST>" can
#          be used for standard IP/hostname matching.
# Values:  TEXT
failregex = ^<HOST> -.*"GET \/w00tw00t\.at\.ISC\.SANS\.DFind\:\).*".*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
ignoreregex =

on active la règle

vi /etc/fail2ban/jail.conf
[apache-w00tw00t]

enabled = true
filter  = apache-w00tw00t
port    = http,https
logpath  = /var/log/apache*/*access.log
maxretry = 1
bantime = 86400

Après avoir modifié les règles, relancez fail2ban :

sudo service fail2ban restart
  • Dernière modification: 13/03/2021 07:56