WAF 1MB Limit auf Sophos Firewall

Dieser Beitrag ist auch verfügbar auf: English (Englisch)

Die WAF der Sophos Firewall hat ein Limit der Dateigrößen, welche durch die WAF durchgelassen werden. In diesem Artikel wird vorstellt, wie man das WAF 1MB Limit auf Sophos Firewall anpassen - komplett manuell, oder mit Hilfe eines Scripts.

getestet mit SFOS 19.5.x bis 20.0.x

Einleitung

Sophos nutzt bei seiner WAF das Apache Server Modul "ModSecurity". Dieses Modul hat im Standard ein Limit bei den Dateigrößen die durch die WAF durchgehen dürfen - das ist kein Standard von Sophos. Leider gibt es keine Möglichkeit dieses Limit in der GUI oder der Shell direkt einzustellen. Dazu muss man den Wert in der Datenbank der Firewall über die advanced Shell anpassen.

Wie äußert sich der Fehler?

Generell wird man merken, dass Dateien über 1MB nicht durch gehen. Die Fehlermeldung in der jeweiligen Webanwendung ist dabei nicht immer gleich. Prüft man die Logeinträge in der reverseproxy.log Datei, wird man hier einen solchen Fehler finden:

[DATE] [security2:error] [....] ModSecurity: Request body no files data length is larger than the configured limit (1048576).. Deny with code (413) [....]

Anpassen des Limits

Achtung

Am Anfang wie immer die obligatorische Warnung, dass Änderungen in der advanced Shell immer mit Vorsicht zu genießen sind. Falsche Eingaben können zu unerwünschten Nebenwirkungen, Instabilität oder Abstürzten führen. Im Zweifelsfall sollte die Anpassung durch erfahrene Benutzer, einen Sophos Partner, oder den Sophos Support erfolgen.

Wir übernehmen keine Garantie für Fehler die durch die hier vorgestellten Kommandos oder das Script entstehen könnten. Nutzung ist auf eigene Gefahr. Im Zweifelsfall bitte alles vorher in einer Testumgebung testen.

Voraussetzungen

Für die Umsetzung müssen folgende Voraussetzungen erfüllt sein:

  • Zugang zur Shell
  • Admin Passwort muss bekannt sein
  • SFOS 19.5.x bis 20.0.x muss installiert sein. Andere Versionen werden auch funktionieren. Die genannten sind aber selber getestet.

Info vorab zum Limit

Bitte beachtet, dass die WAF nicht unendlich große Dateien verarbeiten kann. Es handelt sich noch immer um eine Firewall. Die ist nun mal nicht dafür gedacht eine vollwertige WAF zu ersetzen.

In meinen Tests könnte ich ohne Probleme 100-200 MB setzen. Höhere Limits sind denkbar, aber meiner Meinung nach nicht sinnvoll bei der WAF.
Trotzdem: Das maximale Limit liegt theoretisch aufgrund der Integer Limitierung bei 2147483647 ≈ 2147 MB ≈ 2,14 GB.

Bedenkt auch, dass eine XGS3300 mit großen Limits besser umgehen kann als eine XGS87!

Manuell

Der traditionelle Weg ist der manuelle Weg. Dafür geht Ihr wie folgt vor:

Datenbank ID des WAF Profils herausfinden

Ihr last Euch mit diesem Kommando auf der advanced Shell die WAF Profile anzeigen.

Advanced Shell - Auflistung der WAF profile mit ID
psql -U nobody -d corporate -c "select name,id,sec_request_body_no_files_limit from tblwafsecurityprofile;"

Mit dem Kommando werden Euch der Name des Profils, die ID des Profils in der Datenbank und das aktuelle Limit angezeigt. Die ID wird für die weiteren Schritte benötigt.

Anzeigen der aktuellen Limits

Datenbank Limit anpassen

Nun ersetzt Ihr in dem folgenden Kommando YYY mit der ID des Profils welches angepasst werden soll.
Außerdem ersetzt Ihr XXX mit einer Ganzzahl. Sie steht für die neue Größe in MB.

Advanced Shell - WAF Limit in der Datenbank setzen (Template)
psql -U nobody -d corporate -c "update tblwafsecurityprofile set sec_request_body_no_files_limit=(1048576*XXX) where id ='YYY';"

Hier ein Beispiel in dem das Limit von Profil ID 7 auf 10MB gesetzt wird:

Advanced Shell - WAF Limit in der Datenbank setzen (Beispiel)
psql -U nobody -d corporate -c "update tblwafsecurityprofile set sec_request_body_no_files_limit=(1048576*10) where id ='7';"

Ob das Limit erfolgreich gesetzt wurde wird erst mal mit einem "Update 1" in der Konsole quittiert. Prüfen könnt Ihr den Wert mit dem "Auflisten" Befehl von oben.

WAF 1MB Limit auf Sophos Firewall
Setzen des neuen Limits
Anzeige des neuen Limits

Neues Limit aktivieren

Zuletzt muss das neue Limit noch aktiviert werden. Dazu muss der folgende Befehl abgeschickt werden, welcher die WAF Konfiguration einmal neu einliest.

ShellScript
opcode waf_reconfig -t json -b '{"Entity": "waf_advanced_config", "Event": "UPDATE"}' -ds nosync
Übernahme des neuen Limits

Der Vorgang wird mit einem "200 OK" quittiert. Fertig, das neue Limit ist aktiv. 😀

Per Script

Ihr wollte das Limit häufiger anpassen, seid nicht so sicher im Umgang mit der CLI, oder habt Angst bei Anpassungen in der Datenbank? Kein Problem! Hier hilft unser ITW Script. Es muss nur ausgeführt werden und Ihr werden durch die Konfiguration geführt. Ihr braucht kein Wissen über die nötigen Kommandos und müsst Euch keine Gedanken zu Tippfehlern machen! 😀

Nutzen des Scripts

Wenn das Script auf Eurer Firewall liegt, dann könnt Ihr es ganz einfach so starten. Beachtet, dass das Script immer mit einem sh vorab gestartet werden muss aufgrund von Reglementierungen der Shell.

Nach Aufruf werden Euch die verfügbaren Profile aufgelistet und Ihr könnt das Profil und das zu setzende Limit eingeben.

ShellScript
sh /pathtoscript/waf_1mb_change.sh

Anschließend erfolgt eine Sicherheitsabfrage und nach Bestätigung ist die Anpassung schon fertig.

Setzen eines Limit per Script

Information

Das Script ist auf ein 200 MB Limit limitiert und akzeptiert keine größeren Werte.

Parameter für das Script
  • -h
    Zeigt eine Hilfe an
  • -d
    Macht einen Trockenlauf ohne Werte zu verändern. Am Ende werden die Befehle angezeigt mit denen Ihr die Anpassung auch selber machen könnt.
  • -i
    Ignoriert die Version (SFOS) der Firewall. Zur Sicherheit werden nicht getestete Versionen nicht akzeptiert und das Script bricht ab. Soll das Script trotzdem laufen, muss dieser Parameter gesetzt werden
  • -s suchtext
    Grenzt die Auflistung der verfügbaren Profile ein falls Ihr sehr viele haben solltet. Die Suche erfolgt partiell und ignoriert die Groß/Kleinschreibung.

Download

Selber hochladen

Ihr wollt das Script selber auf die Firewall hochladen? Dann nutzt diesen Download.

Download

WAF_1MB_Limit (Version: 1.0)
8.66 KB
Download direkt auf die Firewall

Noch einfacher geht es hiermit. Ihr ladet das Script direkt in der advanced Shell herunter und könnt direkt starten.

Advanced Shell - Download des Script auf der Firewall
curl -s -L -o /tmp/waf_1mb_change.sh https://it-tech.wiki/sdc_download/2741/?key=2otn2oerlxhgxsj72esfre99kvvqat && echo -en "\n\nUse \"sh /tmp/waf_1mb_change.sh -h\" to get help for first use\n\n"

Fragen

  • Ist die Konfiguration bootfest?
    Ein ganz klares JEIN 😉 In den letzten Versionen war es so, aber früher war es nicht so. Vermutlich hat Sophos was geändert. Nach einem Reboot probiert einfach das Limit zur Sicherheit noch einmal aus
  • Ist die Konfiguration updateresistent?
    Auch ein ganz klares JEIN 😉 In den letzten Versionen war es so, aber früher war es nicht so. Vermutlich hat Sophos was geändert. Nach einem Update probiert einfach das Limit zur Sicherheit noch einmal aus
  • Wie sicher ist das Script?
    Das Script wurde von uns soweit es geht getestet und sollte alle möglichen Eingabefehler abfangen. Durch die vordefinierten CLI Kommandos kann aber auch nicht wirklich was passieren. Trotzdem übernehmen wir keine Garantie für eventuelle Folgeschäden.
    Wer möchte, schaut sich auch gerne den Quelltext an und prüft, was das Script so macht.
    Noch mal der Hinweis: Testumgebungen sind immer gut! 😉
  • Kann man die Konfiguration zurück setzen?
    Ja, dazu einfach den Standardwert wieder setzen: 1MB = 1048576

Andere Artikel

Schaut Euch auch gerne eine andere Eigenentwicklung von uns an:

Ein Kommentar

Schreibe einen Kommentar

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


WordPress Cookie Plugin von Real Cookie Banner