Blacklist mit Fail2Ban

Aus LT42-Wiki
Zur Navigation springen Zur Suche springen

In Anlehnung an Sergej Müller hier eine kurze Anleitung wie eine Blacklist mit Fail2Ban eingerichtet werden kann. Fail2Ban ist klasse, da es die Logdateien überwacht und bei konfigurierbaren Services nach einer konfigurierbaren Anzahl an Fehlversuchen eingreift und die IP-Adressen temporär auf eine Blacklist setzt. Hartnäckige Hacker versuchen es aber weiter und so war schon länger der Wunsch nach einer Blacklist da, die den Zugriff dann dauerhaft sperrt.

Das lösen wir über ein zusätzliches Fail2Ban-Jail. Dafür wird analog zu Sergej Müller Anleitung wie folgt vorgegangen: Wir erweitern die Datei /etc/fail2ban/jail.d/jail.local um

[ip-blacklist]
enabled   = true
action    = iptables-allports[name=ip-blacklist]
filter    = ip-blacklist
logpath   = /etc/fail2ban/ip.blacklist
maxretry  = 0
findtime  = 15552000
bantime   = -1

ganz unten. Dazu kommt eine Datei /etc/fail2ban/filter.d/ip-blacklist.conf mit folgendem Inhalt:

[Definition]

# Option:  failregex
# Notes :  Detection of blocked ip addresses.
# Values:  TEXT
#

failregex = ^<HOST> \[.*\]$

# Option:  ignoreregex
# Notes :  Regex to ignore.
# Values:  TEXT
#

ignoreregex =

und die eigentliche Blacklist in /etc/fail2ban/ip.blacklist, die nach dem folgenden Schema aufgebaut ist:

62.96.248.15 [31/01/2010 16:34:05]

Nach einem Neustart von Fail2Ban wird die Falle aktiv. Die Datei /etc/fail2ban/ip.blacklist muss dann noch einmal neu abgespeichert werden, damit Fail2Ban die neuen IPs übernimmt. Nach jeder Änderung der Datei liest Fail2Ban diese neu ein. Das führt dann zwar zu einem Fehler, weil die bekannten IPs schon gesperrt sind:

2018-04-16 18:04:49,385 fail2ban.actions        [11379]: NOTICE  [ip-blacklist] 62.96.248.15 already banned

Das ist aber unerheblich und zu verkraften. Wichtig ist, hinter jede IP das aktuelle Datum einzutragen. Das soll nicht zuletzt der Dokumentation dienen. Wird eine neue IP eingetragen, ist kein Neustart von Fail2Ban nötig. Die Adressen werden automatisch übernommen:

root@server:/etc/fail2ban# fail2ban-client status ip-blacklist
Status for the jail: ip-blacklist
|- Filter
|  |- Currently failed:	0
|  |- Total failed:	4
|  `- File list:	/etc/fail2ban/ip.blacklist
`- Actions
   |- Currently banned:	1
   |- Total banned:	1
   `- Banned IP list:	62.96.248.15