Warenkorb

keine Produkte im Warenkorb

Sophos Firewall – Script ausführen ohne Cronjob

In diesem Beitrag geht es darum, wie man auf einer Sophos Firewall ein Skript ausführen kann, ohne einen Cronjob zu verwenden, da es die Sophos Firewall nicht erlaubt, dass man einen Cronjob erstellt.

Warum ein Skript auf der Sophos Firewall ausführen?

In bestimmten Situationen kann es notwendig sein, ein benutzerdefiniertes Skript auf der Sophos Firewall auszuführen. Dies kann zum Beispiel zur Anpassung von Netzwerkeinstellungen, zum regelmässigen Senden von Heartbeat-Signalen an Überwachungsdienste oder zum Ändern von Firewall-Regeln dienen. Oftmals soll diese Funktionalität auch nach einem Neustart der Firewall erhalten bleiben, was bedeutet, dass man die Standard-Konfiguration der Sophos Firewall anpassen muss.

Schreibrechte für das Dateisystem aktivieren


Standardmässig ist das Dateisystem der Sophos Firewall schreibgeschützt. Um Änderungen an Skripten vorzunehmen, muss es zunächst mit Schreibrechten gemountet werden:

mount -no remount,rw /

Skript erstellen oder bearbeiten


Als nächstes kann man ein Skript erstellen oder ein bestehendes Skript bearbeiten. In diesem Beispiel wird ein benutzerdefiniertes Skript erstellt, das bestimmte Netzwerkregeln setzt:

vi /scripts/system/clientpref/customization_application_startup.sh


Füge folgenden Inhalt hinzu:

#!/bin/sh
iptables -t mangle -D POSTROUTING -d 172.19.0.0/16 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 900
exit 0;


Dieser Befehl entfernt eine vorhandene Regel und setzt eine neue Regel, um die maximale Segmentgrösse (MSS) für TCP-Verbindungen auf 900 Bytes zu setzen.

#!/usr/bin/expect -f
spawn ssh <Sophos Firewall IP> -l admin
expect "password:"
send "<Admin Password>\r"
expect "Select Menu Number \\\[0-7\\\]:"
send "7\r"
expect "Shutdown(S/s) or Reboot(R/r) Device  (S/s/R/r):  No (Enter) >"
send "r\r"
expect eof
exit

Dieser Befehl sorgt dafür, dass die Sophos Firewall jede Nacht neu startet.

Änderungen speichern und Dateisystem wieder schreibschützen


Nachdem das Skript bearbeitet wurde, sollten die Änderungen gespeichert und der Schreibschutz des Dateisystems wieder aktiviert werden:

mount -no remount,ro /

Um sicherzustellen, dass das Skript auch nach einem Neustart der Firewall ausgeführt wird, muss es in die Startprozedur der Firewall integriert werden. Das zuvor bearbeitete Skript (customization_application_startup.sh) wird bei jedem Start der Firewall ausgeführt und stellt sicher, dass die gewünschten Einstellungen angewendet werden.

Beispiel für ein Heartbeat-Skript

Falls es notwendig ist, einen Heartbeat an einen Überwachungsdienst wie Uptimerobot zu senden, kann man das folgende Beispiel verwenden:

1. Erstelle ein neues Skript:

touch /var/script.sh


2. Bearbeite das Skript:

vi /var/script.sh

3. Füge den euren Inhalt hinzu, hier ein Beispiel:

#!/bin/sh
while [ 1 ];
do
curl --insecure https://heartbeat.uptimerobot.com/xxxxxxx-20cf67c87a3c0a318820d201f19483e06c99c9f7 >/dev/null 2>&1
sleep 60 ;
done

4. Mache das Skript ausführbar:

chmod 755 /var/script.sh

5. Führe das Skript aus:

/var/script.sh >> /dev/null 2>&1 &


6. Um das Skript auch nach einem Neustart automatisch auszuführen, füge die folgende Zeile in die Datei customization_application_startup.sh ein:

/var/script.sh >> /dev/null 2>&1 &

Wichtige Hinweise

  • High Availability (HA) Cluster: Bei der Verwendung eines HA-Clusters muss das Skript auf beiden Knoten angewendet werden.
  • Persistenz über Neustarts: Wenn das Skript bei jedem Neustart der Firewall ausgeführt werden soll, müssen die beschriebenen Schritte zur Integration in die Startprozedur durchgeführt werden.
  • Risiken: Bei Änderungen an den Startskripten der Firewall sollte man vorsichtig vorgehen, da falsche Einstellungen die Funktionalität der Firewall beeinträchtigen können.