Fail2ban
Apparence
Principe
Fail2ban analyse les logs et bannit les IPs qui ont essayées de se connecter sans succès.
Fail2ban waits 1 second before checking for new logs to be scanned.
Configuration
Default
/etc/fail2ban/jail.conf |
[DEFAULT]
# les adresses IP à ne pas exclure
ignoreip = 127.0.0.1/8 192.168.x.x
# durée d'exclusion d'une IP en seconde. Utiliser un nombre négatif pour une exclusion permanente
bantime = 600
# exclusion si maxretry correspondances en findtime (secondes)
findtime = 600
maxretry = 5
# "filter" defines the filter to use by the jail. By default jails have names matching their filter name
filter = %(__name__)s
# iptables-multiport
action = %(action_)s
|
/etc/fail2ban/jail.conf |
[ma_section]
# active ma_section
enabled = true
# utilise le filtre /etc/fail2ban/filter.d/mon_filtre.conf
filter = mon_filtre
# exécute l'action /etc/fail2ban/action.d/iptables.conf si le filtre retourne true
action = iptables[name=mon_action, port=xxx, protocol=tcp]
# le fichier de log à scanner
logpath = /var/log/mon_log.log
|
![]() |
Only one filter is allowed per jail, but it is possible to specify several actions, on separate lines. |
Filtres
/etc/fail2ban/filter.d/*.conf
Tests
# affiche la configuration actuelle
fail2ban-client -d
fail2ban-client status
# tester une regex avec une ligne
fail2ban-regex "line" "failregex"
# tester un fichier de filtre avec un fichier de log
fail2ban-regex /chemin/fichier.log /chemin/filtre.conf
# tester une regex avec un fichier de log
fail2ban-regex /chemin/fichier.log "failregex"
|
![]() |
Log: /var/log/fail2ban.log |
Liens
Exemples
/etc/fail2ban/filter.d/mediawiki.conf |
[Definition]
block = \/?(index.php\?title=Sp%%C3%%A9cial:Connexion)\S*
code = (400)
failregex = ^<HOST> \- \S+ \[\] \"(GET|POST) %(block)s \S+\" .+$
^<HOST> \- \S+ \[\] \"[A-Z]+ \S+ \S+\" %(code)s .+$
^<HOST> \- \S+ \[\] \"\\x[0-9A-Z]{2}.+$
ignoreregex =
# 0.0.0.0 - - [20/Jun/2016:06:27:12 +0200] "GET /index.php?title=Sp%C3%A9cial:Connexion&returnto=Surcharge+d%E2%80%99op%C3%A9rateurs HTTP/1.0" 200 11542 "https://wiki.bananeatomic.fr/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"
# 0.0.0.0 - - [24/Jun/2016:16:14:40 +0200] "POST /404 HTTP/1.1" 400 264 "-" "apache" "-"
# 0.0.0.0 - - [20/Jun/2016:06:07:42 +0200] "CONNECT 126mx00.mxmail.netease.com:25 HTTP/1.0" 400 166 "-" "-"
# 0.0.0.0 - - [23/Jun/2016:20:57:04 +0200] "\x08\x02\x8C\x7F\x7F\xD5\xDF\xE8\xBF\x96\x06\xA1\xF7\xFDs\x80#,\xD8\x154V6\x96LIH\xAC~lu\xD8\x04\x18\xFF\x10\x07\xCB\xE3\xDAi\xA8\xD8j\xA9\xDEnP\x0Exkoib8D\xEAz-\xBD\x84gh\x9B" 400 166 "-" "-" "-"
|
Installation
pacman -S fail2ban
systemctl start fail2ban
systemctl enable fail2ban
|