Sophos Firewall reverseproxy.log Analyse Script (v1.0)

Ein Sophos Firewall reverseproxy.log Analyse Script welches bei der Analyse der Fehler und beim Finden von Thread ID’s in der reverseproxy.log Datei unterstützt. Die gefundenen Thread ID’s werden übersichtlich und schnell auffindbar dargestellt.

Update 14.10.2025: Script auf Version 1.0 aktualisiert

getestet mit SFOS 19.5.x bis 22.0.x

Einleitung

Wer schon einmal eine WAF auf der Sophos Firewall eingerichtet hat wird es kennen, dass das Finden von Thread ID’s extrem mühsam ist. Da ich regelmäßig bei meinen Kunden die Konfigurationen von WAF’s vornehme, wurde die Sammlung an Shell Kommandos in meiner Sammlung immer länger. Eine praktischere Lösung musste her. Zumal die Ausgabe weiterhin schlecht lesbar war. Daraus ist das hier angebotenen Sophos Firewall reverseproxy.log Analyse Script geboren.

Lest weiter und findet heraus was das Script kann – oder auch nicht.

Viel Spaß beim analysieren! 😀

Dieses Script führt keinerlei Veränderungen am System durch. Dennoch ist wie immer Vorsicht geboten bei der Nutzung der Shell. Solltet Ihr keine Erfahrung in der Nutzung der Shell haben, holt Euch gerne hier in den Kommentaren Unterstützung, oder geht auf Euren Sophos Partner zu.
Wir übernehmen keine Verantwortung bei Fehlern die durch die Nutzung des Scripts auftreten könnten. Die Nutzung erfolgt auf eigene Gefahr und sollte immer erst in einer Testumgebung erfolgen.

Versionen

  • v0.6
    • erstes Release
  • v1.0 (10/2025)
    • Ausgabe besser formatiert
    • Performance verbessert mit perl (grep und sed haben die Ausgabe durch Buffering stark verzögert)
    • Zeitfilter filtert jetzt auch z.B. “ 9″ und „09“. Die Einträge werden teilweise unterschiedlich geschrieben
    • Farbliche Ausgabe einiger Werte
    • Hilfe überarbeitet
    • Fehlerbehandlung verbessert
    • -s und -e Option verbessert
    • aktuelle Zeitzone wird bei -t Option in der Suche berücksichtigt

Voraussetzungen

Für die Nutzung des Scripts gibt es folgende Voraussetzungen:

  • SFOS 19.5.0 bis 22.0.x (frühere und spätere Versionen müssen ggf. getestet werden)
  • Shellzugang zur Firewall
  • Grundkenntnisse in der Nutzung der Shell

Was kann das Script (nicht)?

Was geht?

Folgende Informationen kann das Script auswerten und lesbar(er) darstellen:

  • Thread ID’s auflisten für aktuelle Ereignisse
  • Thread ID’s auflisten für vergangene Ereignisse
  • Auflisten wie häufig Threads ID’s geloggt wurde im Zeitraum 1-2 Stunden, heute und gestern
  • Filtern nach FQDN und/oder Quell IP
  • Auflisten aller Einträge mit Fehler oder Warnung mit Leerzeile zwischen den Einträgen für eine bessere Lesbarkeit
  • Kombinationen aus den aufgelisteten Funktionen
  • eigene reverseproxy.log Datei auswerten (aus temporären Kopien oder Logrotation)

Was geht nicht?

Folgendes kann das Script nicht:

  • Andere Fehler, als Thread IDs, lesbar auf relevante Daten reduziert anzeigen
  • Fehler anzeigen die nicht auf „Thread IDs“ oder „Warning“ oder „Error“ gefiltert werden können.
  • Garantieren, dass die Ausgabe immer lesbar ist. Da die Variationen der Einträge sehr vielfältig sind, kann ggf. nicht jede Zeile lesbar dargestellt werden.
  • Garantieren, dass die Ausgabe der Thread ID’s vollständig ist
  • Garantieren, dass es nicht noch andere Fehler gibt. welche einfach nicht dargestellt werden

Nutzung / Parameter

Das Script kann über mehrere Parameter gesteuert werden. Generell wird das Script wie folgt gestartet, wenn es im /tmp Verzeichnis liegt.

Advanced Shell – Starten des Scripts
sh /tmp/waf_analyzer.sh

Ohne Parameter wird die Datei „/log/reverseproxy.log“ ausgewertet und die Thread ID’s werden live dargestellt. Es findet keine Filterung nach zum Beispiel der Client IP oder dem Server FQDN statt.

Parameter

Hilfen

-h

Zeigt eine Hilfe zu den Parametern an.

x

Zeigt Beispiele für die Nutzung an.

Filterung der Ausgaben

-c 169.254.254.254

Filtert nach der Quell IP Adresse und gibt nur passende Zeilen aus.
Der Parameter ist optional.

-d demo.it-tech.wiki

Filtert nach FQDN der WAF und gibt nur passende Zeilen aus..
Groß- und Kleinschreibung ist egal.
Es kann auch nur nach Teilen des FQDN gesucht werden. Z.B.: -d it-tech
Der Parameter ist optional -> bei „-s“ aber Pflicht.

-e

Mit diesem Parameter werden nicht die Thread ID’s ausgewertet. Es werden alle Zeilen ausgegeben die das Wort „error“ oder „warning“ beinhalten. Zwischen den Einträgen wird eine Leerzeile zur besseren Lesbarkeit ausgegeben. Ein Teil der einzelnen Werte wird farblich hervorgehoben.
Kombinierbar mit -c, -d, -t
Der Parameter ist optional.

-t option

Zeigt die Daten für einen vergangenen Zeitraum an – kein Live-Update.
Mögliche Werte sind:
– „lh“ oder „lasthour“ = die letzten 60-120 Minuten (je nach aktueller Uhrzeit)
– „td“ oder „today“ = alles vom aktuellen Tag
– „yd“ oder „yesterday“ = alles vom gestrigen Tag
– „all“ = alle Daten die das Logfile enthält
Kann mit allen Parametern kombiniert werden.

s

Zeigt die Häufigkeit des Vorkommens von Thread ID’s im Zeitraum vom Parameter „-t“ an. Ist -t nicht gesetzt wird hier „lasthour“ gewählt.
Es wird zusätzlich der Parameter „-d domain“ benötigt.
Der Parameter ist optional.

Sonstiges

-f /tmp/otherlog.log

Soll ein anderes Logfile als „/log/reverseproxy.log“ verwendet werden, kann dies mit diesem Parameter gesetzt werden.
Der Parameter ist optional.

-r

Im Standard gibt das Script vor der Ausführung noch eine kleine Zusammenfassung der Parameter und die auszuführende Befehlszeile aus und startet dann nach 5 Sekunden.
Mit -r wird dies übersprungen und die Ausgabe startet direkt.
Der Parameter ist optional.

Screenshots

Sophos Firewall reverseproxy.log Analyse Script
Anzeige der Hilfe
Sophos Firewall reverseproxy.log Analyse Script
Auflistung von Thread IDs
Sophos Firewall reverseproxy.log Analyse Script
Darstellung Fehler
Sophos Firewall reverseproxy.log Analyse Script
Zähler Thread IDs
Sophos Firewall reverseproxy.log Analyse Script
Beispiele

Installation

Direkter Download

Der einfachste Weg ist das Aufrufen des folgenden Befehls auf der advanced Shell. Der „Installer“ läd die aktuelle Version in das /tmp Verzeichnis und benennt evtl alte Versionen des Scripts um. Danach kann das Script direkt genutzt werden.

Bash
curl -L -s -o /tmp/install_waf_analyzer.sh  https://it-tech.wiki/wafinstaller && sh /tmp/install_waf_analyzer.sh && rm /tmp/install_waf_analyzer.sh

Manueller Upload

Wenn Ihr lieber das Script manuell auf die Firewall laden wollt, könnt Ihr es hier herunterladen und selber auf der Firewall ablegen.

waf_analyzer.sh (Version: 1.0)
15.75 KB

Zum Upload auf die Sophos Firewall können zum Beipspiel Tools wie WinSCP genutzt werden, oder der Inhalt wird direkt in den Editor „vi“ kopiert.

Fragen

  • Führt das Script Veränderungen an der Firewall durch?
    Nein, das Script liest nur die Zeilen des Logfiles aus und gibt die Ergebnisse direkt auf der Shell aus. Es werden keine Datein im System verändert.
    Da das Script im Klartext zu lesen ist, kann dies gerne überprüft werden.
  • Ich habe einen Fehler gefunden. Wo kann ich den melden?
    Fehler könnt Ihr gerne über das Kontaktformular oder in den Kommentaren melden.
  • Wie entfernt man das Script vom System?
    Dazu einfach die Datei waf_analyzer_X.X.sh im Verzeichnis /tmp löschen. Zum Beispiel: rm /tmp/waf_analyzer_0.7.sh
  • Ich habe einen Wunsch für das Script. Wo kann ich das melden?
    Fehler könnt Ihr gerne über das Kontaktformular oder in den Kommentaren melden.

Urheberrecht

Die Weitergabe der Dateien ist erlaubt. Ein Verweis auf die IT-Tech.wiki Webseite wäre dabei nett.

Die öffentliche Bereitstellung auf anderen Webservern ist nicht gestattet! Bei Bedarf bitte nachfragen.

Schreibe einen Kommentar

Kommentare werden nicht direkt angezeigt, da sie moderiert freigegeben werden.


WordPress Cookie Plugin von Real Cookie Banner