Naar de inhoud
Avanet

Sophos Firewall - script uitvoeren zonder cronjob

In dit artikel lees je hoe je op een Sophos Firewall een script kunt uitvoeren zonder een cronjob te gebruiken, omdat Sophos Firewall het aanmaken van cronjobs niet toestaat.

Waarom een script op de Sophos Firewall uitvoeren?

In bepaalde situaties kan het nodig zijn om een eigen script op de Sophos Firewall uit te voeren. Dat kan bijvoorbeeld nodig zijn om netwerkinstellingen aan te passen, regelmatig heartbeat-signalen naar monitoringdiensten te sturen of firewallregels te wijzigen. Vaak moet deze functionaliteit ook na een herstart van de firewall behouden blijven. Daarvoor moet de standaardconfiguratie van de Sophos Firewall worden aangepast.

Schrijfrechten voor het bestandssysteem activeren

Standaard is het bestandssysteem van de Sophos Firewall alleen-lezen. Om wijzigingen aan scripts te kunnen uitvoeren, moet het eerst met schrijfrechten worden gemount:

mount -no remount,rw /

Script maken of bewerken

Daarna kun je een nieuw script maken of een bestaand script aanpassen. In dit voorbeeld wordt een aangepast script gemaakt dat bepaalde netwerkregels instelt:

vi /scripts/system/clientpref/customization_application_startup.sh

Voeg de volgende inhoud toe:

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

Deze opdracht verwijdert een bestaande regel en zet een nieuwe regel om de maximale segmentgrootte (MSS) voor TCP-verbindingen op 900 bytes te zetten.

#!/usr/bin/expect -f
spawn ssh -l admin
expect "password:"
send "\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

Deze opdracht zorgt ervoor dat de Sophos Firewall elke nacht opnieuw opstart.

Wijzigingen opslaan en bestandssysteem weer alleen-lezen maken

Nadat het script is bewerkt, moeten de wijzigingen worden opgeslagen en moet de schrijfbeveiliging van het bestandssysteem weer worden geactiveerd:

mount -no remount,ro /

Om ervoor te zorgen dat het script ook na een herstart van de firewall wordt uitgevoerd, moet het in de startprocedure van de firewall worden opgenomen. Het eerder bewerkte script (customization_application_startup.sh) wordt bij elke start van de firewall uitgevoerd en zorgt ervoor dat de gewenste instellingen worden toegepast.

Voorbeeld van een heartbeat-script

Als het nodig is om een heartbeat naar een monitoringdienst zoals Uptimerobot te sturen, kun je het volgende voorbeeld gebruiken:

  1. Maak een nieuw script:
touch /var/script.sh
  1. Bewerk het script:
vi /var/script.sh
  1. Voeg je eigen inhoud toe, bijvoorbeeld:
#!/bin/sh
while [ 1 ];
do
curl --insecure https://heartbeat.uptimerobot.com/xxxxxxx-20cf67c87a3c0a318820d201f19483e06c99c9f7 >/dev/null 2>&1
sleep 60 ;
done
  1. Maak het script uitvoerbaar:
chmod 755 /var/script.sh
  1. Voer het script uit:
/var/script.sh >> /dev/null 2>&1 &
  1. Om het script ook na een herstart automatisch uit te voeren, voeg je de volgende regel toe aan customization_application_startup.sh:
/var/script.sh >> /dev/null 2>&1 &

Belangrijke opmerkingen

  • High Availability (HA) Cluster: Bij gebruik van een HA-cluster moet het script op beide nodes worden toegepast.
  • Persistentie na herstarts: Als het script bij elke herstart van de firewall moet worden uitgevoerd, moeten de beschreven stappen voor integratie in de startprocedure worden uitgevoerd.
  • Risico’s: Ga voorzichtig om met wijzigingen aan de startscripts van de firewall, omdat verkeerde instellingen de werking van de firewall kunnen verstoren.