Fail2ban Visualisierung – Ablaufplan
Stündlicher Cronjob auf dem Webserver zur Generierung von HTML-Statusseiten für die Fail2ban-Jails.
f2b-cronjob.sh orchestriert den Ablauf, die drei weiteren Scripts übernehmen Datensammlung und Darstellung.
Ablaufplan
flowchart TD
CRON(["f2b-cronjob.sh - stündlich"])
CRON -->|"1"| S1["fail2ban-status.sh"]
CRON -->|"2 - je Jail x 11"| T1["top-country.sh"]
T_END -->|"sleep 10s"| G1["generate-svg.sh"]
CRON -->|"3"| CL1["Aufraeumen"]
S1 --> S2["Jail-Liste via fail2ban-client"]
S2 --> S3["Ban-Zahlen und Trend"]
S3 --> S4[("History-Log")]
S3 --> S5[["f2b-jails.html"]]
T1 --> T3{"Cache-Treffer?"}
T3 -->|"ja"| T5["Land bekannt"]
T3 -->|"nein"| T4["ip-api.com / whois"]
T4 --> T5
T5 --> T6[("jail-IPs-DATUM.txt")]
T6 --> T_END["Cache trimmen max 10000"]
G1 --> G2["generate-svg_modul1.sh"]
G2 --> G3["Laenderdateien lesen"]
G3 --> G4["Statistiken berechnen"]
G4 --> G5[["f2b-jail.html"]]
CL1 --> CL2["> 60 Tage nach f2b_alt"]
CL2 --> CL3["> 180 Tage loeschen"]
Scripts
| Script | Rev. | Funktion |
|---|---|---|
f2b-cronjob.sh |
1.6 | Orchestrierung, Jail-Schleife, Aufräumen |
fail2ban-status.sh |
1.39 | Tortendiagramm aller Jails mit Trend-Pfeilen |
top-country.sh |
1.3 | IP → Land-Auflösung mit Cache |
generate-svg.sh |
1.52 | Historische Balkengrafik je Jail |
generate-svg_modul1.sh |
1.1 | Hilfsfunktionen (wird gesourct) |
Ausgabe-Dateien
| Pfad | Inhalt |
|---|---|
/var/www/mein-server.de/web/f2b-jails.html |
Übersicht alle Jails (D3.js Tortendiagramm) |
/var/www/mein-server.de/web/f2b-<jail>.html |
Balkengrafik je Jail |
/root/f2b/<jail>-IPs-…-YYYY-MM-DD-HH:MM.txt |
Rohdaten (Länder-IP-Listen) |
/root/f2b/ip_country_cache.txt |
IP→Land Cache (max. 10.000 Einträge) |
/var/log/fail2ban_history.dat |
Verlaufsdaten (jail, datum, anzahl) |
Archivierung
Dateien in /root/f2b/ älter als 60 Tage werden nach /root/f2b_alt/ verschoben,
nach 180 Tagen gelöscht.