Ein Wiki privater Natur

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.