Sophos Firewall - kör script utan cronjob
Den här artikeln handlar om hur du kan köra ett script på Sophos Firewall utan att använda ett cronjob, eftersom Sophos Firewall inte tillåter att man skapar cronjobs.
Varför köra ett script på Sophos Firewall?
I vissa situationer kan det vara nödvändigt att köra ett anpassat script på Sophos Firewall. Det kan till exempel handla om att justera nätverksinställningar, regelbundet skicka heartbeat-signaler till övervakningstjänster eller ändra firewallregler. Ofta ska funktionen även finnas kvar efter en omstart av firewallen, vilket betyder att standardkonfigurationen på Sophos Firewall behöver anpassas.
Aktivera skrivrättigheter för filsystemet
Som standard är filsystemet på Sophos Firewall skrivskyddat. För att kunna ändra script behöver det först monteras med skrivrättigheter:
mount -no remount,rw /
Skapa eller redigera script
Nästa steg är att skapa ett script eller redigera ett befintligt script. I det här exemplet skapas ett anpassat script som sätter vissa nätverksregler:
vi /scripts/system/clientpref/customization_application_startup.sh
Lägg till följande innehåll:
#!/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;
Kommandot tar bort en befintlig regel och sätter en ny regel för att ställa in maximal segmentstorlek (MSS) för TCP-anslutningar till 900 byte.
#!/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
Det här kommandot gör att Sophos Firewall startas om varje natt.
Spara ändringar och skrivskydda filsystemet igen
När scriptet har redigerats bör ändringarna sparas och filsystemets skrivskydd aktiveras igen:
mount -no remount,ro /
För att säkerställa att scriptet körs även efter en omstart av firewallen behöver det integreras i firewallens startprocedur. Scriptet som redigerades ovan, customization_application_startup.sh, körs vid varje start av firewallen och säkerställer att önskade inställningar tillämpas.
Exempel på heartbeat-script
Om ett heartbeat behöver skickas till en övervakningstjänst som Uptimerobot kan du använda följande exempel:
- Skapa ett nytt script:
touch /var/script.sh
- Redigera scriptet:
vi /var/script.sh
- Lägg till ditt innehåll. Här är ett exempel:
#!/bin/sh
while [ 1 ];
do
curl --insecure https://heartbeat.uptimerobot.com/xxxxxxx-20cf67c87a3c0a318820d201f19483e06c99c9f7 >/dev/null 2>&1
sleep 60 ;
done
- Gör scriptet körbart:
chmod 755 /var/script.sh
- Kör scriptet:
/var/script.sh >> /dev/null 2>&1 &
- För att scriptet även ska köras automatiskt efter en omstart lägger du till följande rad i filen customization_application_startup.sh:
/var/script.sh >> /dev/null 2>&1 &
Viktiga anvisningar
- High Availability (HA) Cluster: Vid användning av ett HA-kluster behöver scriptet läggas in på båda noderna.
- Beständighet över omstarter: Om scriptet ska köras vid varje omstart av firewallen behöver stegen för integration i startproceduren genomföras.
- Risker: Var försiktig vid ändringar i firewallens startscripts, eftersom felaktiga inställningar kan påverka firewallens funktion.