Mahlzeit!
Schonmal versucht, eine Liste von Computern und IP-Listen (zum Beispiel aus dem Active Directory?) zur Verwendung für Firewallregeln in die Firewall zu importieren? Im Management Tool des alten 8.x Core’s (FineTune) gab es da die wunderbare, aber umständliche und fehleranfällige Art, die Firewall im Textmode zu editieren. Erfüllte seinen Zweck, aber war nicht immer praktikabel.
Ab Version 9.00 gibt es die wunderbare neue Scripting-Schnittstelle mit der ich Befehle absetzen oder ganze Scripts ausführen kann. Wir beschäftigen uns hier mal mit folgender Anforderung:
- Import einer Liste mit Computern und zugeordneten IP’s
- Import einer Liste mit generierten Benutzern (für VPN oder ContentFilter-Authentifizierung)
Vorbereitungen
Wir benötigen SSH Zugriff auf die Firewall. Dies am einfachsten im Web-Interface unter “System” -> “Remote Management” eine neue Entität SSH anlegen. Nicht vergessen, das eigene Netz als berechtigt zu konfigurieren
! Wichtiger Hinweis an dieser Stelle: Wenn es eine SAT Regel gibt, welche auf dem Anfragenden Interface (Inside) SSH (Port 22 TCP) auf einen anderen Server weiterleitet, dann wird diese Konfiguration danach nicht mehr aktiv sein, denn standardmäßig überschreibt diese “Remote Management” Konfiguration (es sei denn, man deaktiviert in den “Advanced Settings” das Häkchen bei “SSH Before Rules:”.
Los geht’s!
Als erstes brauchen wir eine Liste mit Rechnernamen und zugeordneten IP’s, die wir in Excel importieren, damit diese in zwei nebeneinander stehenden Zellen stehen (nehmen wir mal an, es ist A1 (“Computer 1″) und B1 (“192.168.14.1″). In Zelle C1 geben wir folgendes ein:
="add Address IP4Address "&A1&" "&B1
Daraus ergibt sich jetzt folgendes:
add Address IP4Address Computer1 192.168.14.1
Dieser Befehl wird solange nach unten ausgefüllt, bis eben keine Computer mehr in den Zellen links zu finden sind
. In Spalte C steht nun eine lange Liste an Befehlen, die wir so in das Notepad kopieren (einfach untereinander, bestimmte Syntax oder Zeilenenden müssen nicht berücksichtigt werden). Dieses wiederrum speichern wir unter c:\temp\ mit dem Namen “import.sgs” ab.
Diese Datei wird nun auf die Clavister kopiert. Dies geschieht mit SCP. SCP ist ein Protokoll womit man über SSH Daten verschlüsselt kopieren kann. Normalerweise würde man jetzt WINSCP (eine grafische Benutzeroberfläche) nehmen, aber das geht bei der vorliegenden Firewall nicht…Gott weiß warum.
Also bedienen wir uns dem Tool PSCP, ein kommandozeilenbasiertes Tool zur Dateiübertragung. Mit folgenden Parametern gestartet, wird die Datei (nach Passwortabfrage der Firewall) hochgeladen:
pscp c:\temp\import.sgs admin@[IP der Firewall]:script/
Anmerkung: Das Script mus zwingend im Unterornder “script” der Firewall landen.
Im SSH Client Putty, mit dem wir uns zur Firewall konnektiert und authentifiziert haben, führen wir nun einfach folgenden Befehl aus:
script -execute -name=import.sgs
Das war’s schon! Nun noch schnell ein “activate” und “commit” hinterherschicken, und die Adressobjekte sind da.
Ähnlich verfahren wir auch mit den Benutzern. Wir gehen davon aus, dass eine Liste mit “Benutzername”, “Password” und “Gruppe” besteht.
Der zu generierende und auszufüllende Befehl lautet:
add User [Benutzername] Password=[Password] groups=[Group]
Jedoch gibt es eine Besonderheit. Bevor dieser Befehl ausgeführt werden kann, muss folgender Befehl ausgeführt werden (der in dem Script dann am besten ganz oben stehen sollte):
cc LocalUserDatabase [Usergroup]
Anmerkung: [Usergroup] steht für die Benutzerdatenbank, in der die Benutzer landen müssen. Das hat nichts mit der Gruppe “Group” zu tun.
Das war es schon. Einfach oder? Im übrigen kann man mit der Scripting-Schnittstelle auch automatisiert Backups von der Clavister ziehen. Wie das geht? Vielleicht schreibe ich dazu mal einen Artikel
.
So long,
Florian Thiessenhusen
| add Address IP4Address test ip |