Ich habe ja bereits schon ein paar Male über fail2ban geschrieben: fail2ban Monitoring und fail2ban und dynamische IP-Adressen. Heute mal ein ganz anderes Thema: Eine Übersicht über die geblockten IP-Adressen. Das kann zum Beispiel als wöchentlicher Bericht versendet werden.
Mit fail2ban-client status
kann man sich die Anzahl der Jails ansehen, mit fail2ban-client status <jail>
dann den Status des jeweiligen Jails. Aber halt nur von einem Jail. Will man mehrere auf einmal betrachten: Fehlanzeige.
Also rasch zum Editor gegriffen und ein paar Zeilen bash Code eingetippt. Hierfür werte ich einfach die bei Status gelisteten Jails aus und lege eine Schleife über diese um dann separat zu jedem Jail die Details anzufordern. Damit das ganze etwas Luxus bietet und nicht nur aus schnöden IPs besteht noch rasch GeoIP installiert. Das sind unter Ubuntu die beiden Pakete geoip-bin
und geoip-database
. Heraus kam folgendes, kurzes Skript welches ich fail2ban-overview
genannt habe:
#!/bin/bash # # Erzeugt eine einfache Uebersicht von fail2ban - gehirn-mag.net # # Allgemeiner Status F2BSTAT=$(fail2ban-client status) echo "${F2BSTAT}" # Details zu den einzelnen Jails F2BDETAIL=$(for SERVICE in $(echo -e "${F2BSTAT}" | tail -1 | cut -d: -f2 | sed -e "s/, / /g"); do echo fail2ban-client status $SERVICE done) echo "${F2BDETAIL}" # GeoIP ermitteln - Spielzeug, just for fun... echo -e "\n\n" for IP in $(echo "${F2BDETAIL}" | grep "IP list:" | cut -d: -f2); do echo echo $IP geoiplookup $IP done
Zugegeben, das mit der GeoIP ist eine Spielerei. Aber eine ganz nette da man auf diese Art sieht woher die geblockten IPs kamen. Das als täglicher Bericht via Mail und schon hat man einen ganz guten Überblick.
Und so sieht eine Beispielausgabe eines frisch aufgesetzten Jitsi-Servers aus (noch ohne Luxus – die IP-Adressen habe ich anonymisiert):
Status |- Number of jail: 3 `- Jail list: fail2ban, prosody, sshd Status for the jail: fail2ban |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/fail2ban.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: Status for the jail: prosody |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/prosody/prosody.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list: Status for the jail: sshd |- Filter | |- Currently failed: 1 | |- Total failed: 32 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 2 |- Total banned: 3 `- Banned IP list: 85.xxx.xxx.xxx 49.xxx.xxx.xxx 85.xxx.xxx.xxx GeoIP Country Edition: RU, Russian Federation 49.xxx.xxx.xxx GeoIP Country Edition: CN, China