Reboot der WatchGuard per Script

Dass ein zeitgesteuerter Reboot einer WatchGuard eingerichtet werden kann, dürfte allgemein bekannt sein (im Policy Manager unter Setup > Global Settings > Automatic Reboot). Neulich fragte ein Kunde, ob ein solcher Reboot auch event-gesteuert eingerichtet werden kann. Konkret sollte die WatchGuard jede Nacht durchbooten – aber erst dann, wenn die nächtlichen Online-Backup Jobs zu Ende gelaufen waren. Die verwendete Backup-Software hat die Option, abschließend ein Programm/Script zu starten, das diese Aufgabe übernehmen könnte.
Eine mögliche Lösung sieht so aus: Auf dem Backup-Server wird die 3rd-Party Software Cygwin installiert (http://cygwin.com). Bei der Installation müssen die Module expect und openssh mitinstalliert werden. Das auszuführende Skript sieht in etwa so aus:

#!/usr/bin/expect

set firebox    “a.b.c.d”   ;# IP-Adresse der WatchGuard
set fbusername “admin”     ;# admin Account verwenden
set fbpassword “xxxxxxxx”  ;# admin Kennwort

spawn ssh $fbusername@$firebox -p 4118

# SSH Warnmeldung übergehen bei erstmaliger Anmeldung

set logged_in 0
while {!$logged_in} {
   expect timeout {
    } “Are you sure you want to continue connecting (yes/no)? ” {
      exp_send “yesr”
    } “[Pp]assword*” {
      exp_send “$fbpasswordr”
    } -re “WG.*(#|>)” {
      set logged_in 1
    }
}

# Reboot-Befehl absetzen und SSH Verbindung beenden

set timeout 20
exp_send “rebootr”
  expect timeout {
    } “Reboot (yes or no)?” {
      exp_send “yesr”
    }
expect -re “WG.*(#|>)”
exp_close
exp_wait

Dieses Script kann nun über die Cygwin-Umgebung ausgeführt werden: C:cygwinbinbash.exe –login -c [Dateiname].

Und kann somit flexibel in jegliche Scripting-/Batch-Umgebungen eingebunden werden. Natürlich kann der v.g. Befehl auch wiederum zeitgesteuert ausgeführt werden, wenn über den Task Scheduler / Aufgabenplanung entsprechende Tasks eingerichtet werden. Während die integrierte Funktion “Automatic Reboot…” nur tägliche oder wöchentliche Intervalle zulässt, können auf diesem Weg also auch davon abweichende Reboot-Zyklen umgesetzt werden. Auch alle anderen Command Line Interface (CLI) Befehle lassen sich auf die o.g. Methode von außen scripten… Damit sind viele kreative Ideen umsetzbar, z.B. auch das regelmäßige Auslesen der XML-Konfigurationsdatei und Ablegen auf einen FTP-Server… Die vollständige Referenz der Kommandozeilen-Befehle findet sich auf der WatchGuard Website unter http://www.watchguard.com/help/documentation/xtm.asp

5 Kommentare zu “Reboot der WatchGuard per Script”

  1. Anonym

    Vielen Dank.

    hat mir sehr weitergeholfen auch wenn das Skript so bei uns unter Debian nicht funktioniert hat.
    Wir nutzen es um Livsecurity model Fireware etc. bei unseren Kunden über Nagios abzufragen. Und wir machen gleichzeitig einen FTP Upload der Config auf unseren Server inkl Datum im Namen um so mehrere Versionen vorzuhalten. Hat den Vorteil das wir nicht bei allen Boxen den Fully Managed Mode nutzen müssen.

    Mfg

  2. Anonym

    exp_close
    exp_wait

    scheint die Verbindung nicht korrekt zu beenden. Zumindest ist minutenlang ein neuer Login in die Box nicht möglich:

    admin is currently logged in from….

  3. norman schmiedt

    Hallo,
    hat schon mal jemand ein script erstellt um nachts das wlan aus zu schalten und morgens wieder ein ?
    ich versuche das gerade mit plenk ( cli version von putty )

    alternative wäre per cli verschiedene confi.xml hoch zu laden.

    1. Bernd Och Post Author

      Hallo Herr Schmiedt,
      bauen Sie doch für die WLAN-Clients eigene Firewall-Policies, die über ein Scheduling (Zeitsteuerung) verfügen (Registerkarte “Advanced” bei jeder Firewall-Regel). Damit sendet das WLAN zwar nach wie vor und die Clients sind auch im WLAN drin – sie kommen aber eben zu ungenehmigten Uhrzeiten einfach nirgendwo hin… Bei Verwendung der separaten Access Points von WatchGuard (AP100, AP102, AP120, AP200, AP300, AP320) und deren Verwaltung über den in der WatchGuard eingebauten “Gateway Wireless Controller” kann sogar wirklich das WLAN zeitgesteuert ein- und ausgeschaltet werden. Hope this helps… 😉

Leave a Reply

Your email address will not be published. Required fields are marked *