Przejdz do tresci
Avanet

Uruchamianie skryptów na Sophos Firewall

W tym artykule pokazujemy, jak uruchomić skrypt na Sophos Firewall bez używania zadania cron, ponieważ Sophos Firewall nie pozwala tworzyć własnych cronjobów.

Dlaczego uruchamiać skrypt na Sophos Firewall?

W określonych sytuacjach może być potrzebne uruchomienie własnego skryptu na Sophos Firewall. Może to służyć na przykład do dostosowania ustawień sieciowych, regularnego wysyłania sygnałów heartbeat do usług monitorujących albo zmiany reguł firewall. Często taka funkcjonalność ma pozostać aktywna również po restarcie firewalla, co oznacza konieczność dostosowania standardowej konfiguracji Sophos Firewall.

Aktywowanie praw zapisu w systemie plików

Domyślnie system plików Sophos Firewall jest tylko do odczytu. Aby wprowadzać zmiany w skryptach, trzeba go najpierw zamontować z prawem zapisu:

mount -no remount,rw /

Utworzenie lub edycja skryptu

Następnie można utworzyć nowy skrypt albo edytować istniejący. W tym przykładzie tworzony jest własny skrypt ustawiający określone reguły sieciowe:

vi /scripts/system/clientpref/customization_application_startup.sh

Dodaj następującą treść:

#!/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;

To polecenie usuwa istniejącą regułę i ustawia nową, aby maksymalny rozmiar segmentu (MSS) dla połączeń TCP wynosił 900 bajtów.

#!/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

To polecenie powoduje, że Sophos Firewall restartuje się każdej nocy.

Zapisanie zmian i ponowne zabezpieczenie systemu plików przed zapisem

Po edycji skryptu należy zapisać zmiany i ponownie włączyć ochronę systemu plików przed zapisem:

mount -no remount,ro /

Aby upewnić się, że skrypt zostanie uruchomiony również po restarcie firewalla, trzeba zintegrować go z procedurą startową firewalla. Wcześniej edytowany skrypt customization_application_startup.sh jest wykonywany przy każdym starcie Sophos Firewall i zapewnia zastosowanie wymaganych ustawień.

Przykład skryptu heartbeat

Jeżeli trzeba wysyłać heartbeat do usługi monitorującej, takiej jak Uptimerobot, można użyć poniższego przykładu:

  1. Utwórz nowy skrypt:
touch /var/script.sh
  1. Edytuj skrypt:
vi /var/script.sh
  1. Dodaj własną treść, tutaj przykład:
#!/bin/sh
while [ 1 ];
do
curl --insecure https://heartbeat.uptimerobot.com/xxxxxxx-20cf67c87a3c0a318820d201f19483e06c99c9f7 >/dev/null 2>&1
sleep 60 ;
done
  1. Nadaj skryptowi prawa wykonywania:
chmod 755 /var/script.sh
  1. Uruchom skrypt:
/var/script.sh >> /dev/null 2>&1 &
  1. Aby skrypt uruchamiał się automatycznie także po restarcie, dodaj poniższą linię do pliku customization_application_startup.sh:
/var/script.sh >> /dev/null 2>&1 &

Ważne wskazówki

  • High Availability (HA) Cluster: Przy użyciu klastra HA skrypt trzeba zastosować na obu węzłach.
  • Trwałość po restartach: Jeżeli skrypt ma być wykonywany przy każdym restarcie firewalla, trzeba wykonać opisane kroki integracji z procedurą startową.
  • Ryzyka: Zmiany w skryptach startowych firewalla należy wykonywać ostrożnie, ponieważ błędne ustawienia mogą wpłynąć na działanie firewalla.