Central Management
Update
Eine ausführliche Anleitung zu unserem Plugin finden Sie hier …
Intro
In etwa zur gleichen Zeit wie Deciso, haben auch wir ein Plugin zur zentralen Steuerung von OPNsense Firewalls released. Deciso ist dabei den Weg der Business Edition gegangen und bietet das Plugin mit einer gültigen Lizenz an. Es können somit auch nur die Firewalls verwaltet werden, auf denen eine gültige Business Edition aktiviert ist. Unsere Lizensierung hingegen, errechnet sich anhand der Firewalls die darüber verwaltet werden.
Im ersten Release unterstützten beide Versionen eine Inventarisierung und ein Dashboard um den Versionsstand und die Verfügbarkeit zu checken, und sowohl Updates einzuspielen, als auch einen Button zum Öffnen der WebUI anzubieten. Wir haben uns nach Absprache mit den OPNsense Entwicklern dazu entschieden, erst einmal andere Plugins anzubieten und den aktuellen Stand ruhen zu lassen, während die Entwickler von OPNsense die Features immer weiter ausbauten.
Einziges Manko (Stand 07/2023) bei Deciso ist das gruppen-basierte Ausrollen von Konfigurationen. Eine Regel oder ein Alias kann nur auf ALLE Firewalls ausgerollt werden, für MSP’s oder Kunden mit Sonderlocken ein Graus.
Mittlerweile arbeiten wir daran, ebenfalls Firewallregeln zu deployen und das auch nur auf eine bestimmte Hostgruppe. Wir werden nach und nach weitere Features hinzufügen und sind gespannt auf das Feedback!
Installation
Vorab muss das Repository der m.a.x. it aktiviert sein. Hierzu per SSH auf die Console und folgendes eingeben:
# pkg add https://support.max-it.de/os-maxit-14-1.2.pkg
Anschließend die Weboberfläche neu laden und unter System : Firmware ist ein neues Untermenü „Maxit“. Dort die Checkbox auf „Enabled“, die bekannten Zugangsdaten hinterlegen und nach Updates prüfen.
Die Installation des Plugins ist denkbar einfach, wie üblich über System : Firmware : Plugins und dort nach „cm“ suchen. Die Standardvariante ist „os-cm“ und die Entwicklungsversion mit zentraler Regelverwaltung „os-cm-ansible“. Installieren und einmal die Seite neu laden, es erscheint ein neuen Hauptmenü „Central Management“.
Achtung: Für den Betrieb den CM empfehlen wir eine dedizierte Installation (VM/Hardware), falls diese wegen Update neu gestartet werden muss etc.
Bedienung
Dashboard
Herzstück ist das Dashboard, dort werden die Firewalls nach Name sortiert gelistet. Pro Zeile gibt es den WebUI Button der direkt auf die Oberfläche der Firewall führt, Buttons für Update und Upgrade, die Info zur aktuell installierten Version und die Erreichbarkeit des Systems. Beim Aufruf des Dashboards werden alle Einträge für 5 Sekunden geladen. Langsame Systeme können beim ersten Aufruf noch als offline gekennzeichnet werden, dies aktualisiert sich mit jedem Aufruf im Hintergrund (minütlich). Updates können nur durchgeführt werden, wenn die Firewalls auch erreichbar sind, anderenfalls sind die Buttons grau hinterlegt. Die Major Upgrades funktionieren erst wenn das letzte minor Update installiert ist, einfach mehrmals Updates durchführen bis kein Update mehr angeboten wird. Sowohl Updates als auch der Zugriff auf die entfernte WebUI kann über Multiselect auf mehreren Firewalls gleichzeitig durchgeführt werden.
Inventory
Im Inventory werden alle Firewalls gepflegt. Jeden Firewall auf die zugegriffen wird, benötigt für einen Adminuser API Keys und Secret. Ebenfalls muss das entfernte Systeme vom CM aus erreichbar sein. Vorab muss also für jede Firewall lokal in System : Access : Users und dort für einen Adminuser der API Key erstellt werden. Auf der Seite unten auf das + und eine Datei mit Key und Secret wird automatisch geladen. Bitte nicht vergessen mit „Save“ zu bestätigen. Nun neben Namen die IP, Port, Key und Secret hinterlegen, SSH Daten sind momentan noch optional.
Firewall
Vor der Nutzung von Firewallregeln muss auf allen Systemen das Plugin os-firewall (ab Version 23.7) installiert sein!
Im Menü Firewall werden einzelne Regeln gepflegt. Sequenznummern können doppelt vergeben werden, da nicht jede Regel auf jede Firewall deployt wird. Einzig der Regelname muss eindeutig sein. Der Rest funktioniert ähnlich wie man es gewohnt ist. Gateways und Interfaces können nicht festgelegt werden, da diese sich i.d.R. immer unterscheiden. Dafür werden aber auch keine bestehenden Regeln auf den Firewalls überschrieben (sofern es keine API Regeln sind). Es können auch Aliase verwendet werden, allerdings nicht aus einem Dropdown-Feld sondern einfach mit dem hinterlegten Namen.
Gruppen
Wichtig zu verstehen ist, dass es sich hierbei im Hostgruppen handelt. Es ist tunlichst zu vermeiden, dass Hosts in mehreren Gruppen sind in denen unterschiedliche Regelsätze deployt werden, da mit jedem Deploy der gesamte, via API hinzugefügte Regelsatz, entfernt wird. Das gilt nicht für lokal angelegte Regeln! Es wird je Gruppe ein Name vergeben, die Members ausgewählt und dann die Regelsätze die auf die Member verteilt werden sollen.
Zum Ausrollen in der Übersicht auf den Papierflieger klicken und bestätigen. Das Deployment läuft im Status-Tab weiter und bitte diesen genau verfolgen und am Ende auf mögliche Fehler achten (z.B. Firewall offline, kein Firewall Plugin installiert etc.)
Über den Button mit dem Stecker können Plugins auf den entfernten Systemen installiert werden, sofern die Firewallversion auch aktuell ist (Vorgabe von OPNsense). Da für das Ausrollen von Firewallregeln das os-firewall Plugin notwendig ist, kann dieses bequem über die zentrale Verwaltung installiert werden, gleich über mehrere Hosts in einer Gruppe hinweg
Im Reiter „Update“ wird das geplante Updaten von Hostgruppen angeboten.
Ein Feature das bei OPNsense regelmäßig angefragt wird, um zum Beispiel auf einen Schlag 20 Firewalls zu aktualisieren, ohne sich einen Wecker um 2 Uhr stellen zu müssen. Hierfür gibt es einen extra Reiter, da Funktion doch etwas sensibler ist. Bitte darauf achten, dass die Sortierung der Reiter Gruppen und Update identisch ist! Über die jeweiligen Buttons kann das Startdatum und -zeit gewählt werden.
Anschließend wird das Kommando an die lokale Scheduling-Queue geschickt und wartet auf Ausführung. Die einzelnen Jobs lassen sich über die Buttons „Show all jobs“ anzeigen und falls etwas versehentlich geplant wurde, über „Clear all jobs“ wieder entfernen.