Live-Analyse fĂŒr gebannte IPs, Jails und Angriffsverhalten

Einleitung
Das folgende BashâSkript bietet ein kompaktes, auditâfĂ€higes Dashboard fĂŒr Fail2ban auf deinem Webserver. Es zeigt:
- aktive Jails
- aktuell gebannte IPs
- RecidiveâStatistik
- BanâVerhalten pro Stunde
- JailâVerteilung
- LiveâLogauszug
Das Skript ist ideal fĂŒr Admins, die Fail2ban nicht nur konfigurieren, sondern auch forensisch auswerten wollen.
đ Skript: `/usr/local/bin/fail2ban-dashboard`
#!/bin/bash
LOG="/var/log/fail2ban.log"
echo "==============================="
echo " FAIL2BAN DASHBOARD"
echo "==============================="
echo
# Aktive Jails
echo "đ Aktive Jails:"
jails=$(fail2ban-client status 2>/dev/null \
| grep "Jail list:" \
| cut -d: -f2 \
| tr ',' ' ' \
| tr -d '\t' \
| xargs)
if [ -z "$jails" ]; then
echo " Keine aktiven Jails gefunden."
else
echo " $jails"
fi
echo
# Aktuell gebannte IPs pro Jail
echo "đ Aktuell gebannte IPs pro Jail:"
for jail in $jails; do
jail_clean=$(echo "$jail" | xargs)
banned=$(fail2ban-client status "$jail_clean" 2>/dev/null \
| grep -E "Currently banned" \
| awk -F':' '{print $2}' \
| xargs)
[ -z "$banned" ] && banned=0
printf " %-25s %s\n" "$jail_clean:" "$banned"
done
echo
# Top 20 gebannte IPs (Recidive)
echo "đ Top 20 gebannte IPs (Recidive-Analyse):"
grep "Ban " "$LOG" | awk '{print $NF}' \
| sort | uniq -c | sort -nr | head -20
echo
# Bans pro Stunde (letzte 24h)
echo "đ Bans pro Stunde (letzte 24h):"
grep "Ban " "$LOG" | tail -n 50000 \
| awk '{print $1" "$2}' \
| sed 's/T/ /' \
| cut -d: -f1 \
| sort | uniq -c
echo
# Bans pro Jail (letzte 24h)
echo "đ Bans pro Jail (letzte 24h):"
grep "Ban " "$LOG" | tail -n 50000 \
| grep -o "\[[a-zA-Z][a-zA-Z0-9._-]*\]" \
| tr -d '[]' \
| sort | uniq -c | sort -nr
echo
# Live-Log
echo "đ Live-Log (tail -n 20):"
tail -n 20 "$LOG"
echo
đ Funktionen im Ăberblick
| Abschnitt | Funktion |
|---|---|
| Aktive Jails | Listet alle laufenden Jails |
| Aktuell gebannte IPs | Zeigt pro Jail die Anzahl aktiver Bans |
| RecidiveâAnalyse | Top 20 IPs mit hĂ€ufigsten Bans |
| Bans pro Stunde | Zeitliche Verteilung der Bans |
| Bans pro Jail | JailâVerteilung der letzten 24h |
| LiveâLog | Letzte 20 Logzeilen aus /var/log/fail2ban.log |
đ§Ș Einsatzempfehlung
- Aufruf:
sudo fail2ban-dashboard - Cronjob möglich:
FĂŒr regelmĂ€Ăige Reports oder Monitoring via Mail/Slack. - Erweiterbar:
Du kannst das Skript um GeoIPâLookup, AbuseIPDBâReporting oder HTMLâExport erweitern.
đ Fazit
Dieses Dashboard ist ein ideales Werkzeug fĂŒr alle, die Fail2ban nicht nur konfigurieren, sondern auch verstehen und auswerten wollen. Es liefert dir in Sekunden eine forensisch verwertbare Ăbersicht ĂŒber Angriffsverhalten, JailâEffektivitĂ€t und RecidiveâRisiken. (Anm.: âRecidiveâ bedeutet WiederholungstĂ€ter â also IPâAdressen, die mehrmals von Fail2ban gebannt wurden, oft in verschiedenen Jails oder ĂŒber lĂ€ngere ZeitrĂ€ume hinweg.)