Gefahrlose Updates von OPNsense mit Boot-Environments
- Christian Süßenguth
- 10.03.2023, aktualisiert am
- Kurz notiert
Aktualität des Artikels
Die genannten Schritte gelten auch für das Upgrade von OPNsense 22.7.11_1 auf 23.7.
Bitte den Hinweis im gelben Kasten weiter unten beachten.
Es immer gut, eine Notlösung parat zu haben, wenn bei einem Major-Update von OPNsense etwas schiefgeht. Vor allem, wenn man nicht vor Ort ist und die Maschine händisch neustarten oder per KVM bedienen kann.
Daher sind ZFS Boot-Environments eine tolle Sache.
Voraussetzung ist ZFS als Dateisystem, UFS funktioniert nicht. Letzteres ist auch nicht empfohlen, da hier bei einem Stromausfall das gesamte Dateisystem Schaden nehmen kann – also besser gleich ZFS einsetzen.
Mit dem folgenden Befehl kannst du prüfen, ob die Voraussetzungen erfüllt sind (keine Ausgabe heißt OK):
root@OPNsense:~ # bectl check
In der Shell von OPNsense steuerst du mit dem Befehl bectl
das Boot-Environment (im Folgenden BE genannt). Eine vollständige Übersicht aller Parameter des Befehls findest du hier.
Beispiel: Major-Update einer OPNsense-Firewall von 22.7.11 auf 23.1
Als Erstes listen wir uns die bestehenden BEs auf:
root@OPNsense:~ # bectl list
BE Active Mountpoint Space Created
default NR / 1.43G 2022-12-28 20:27
Das N hinter dem Namen steht dabei für das aktuell gestartete BE.
Das R hinter dem Namen für das BE, welches bei einem Reboot gestartet wird.
Vor dem Update legen wir uns ein neues BE (z.B. mit dem Namen der aktuellen OPNsense-Version) an:
root@OPNsense:~ # bectl create 22.7.11
Anschließend ein Blick in die Übersicht der BEs:
root@OPNsense:~ # bectl list
BE Active Mountpoint Space Created
22.7.11 - - 76K 2023-03-10 22:26
default NR / 1.43G 2022-12-28 20:27
Nun aktivieren wir das gerade erstellte BE bei einem Reboot (Das ist unser Fallback):
root@OPNsense:~ # bectl activate 22.7.11
Successfully activated boot environment 22.7.11
Ein Blick in die Übersicht zeigt, dass hinter dem neuen BE nun das R (für Reboot) steht:
root@OPNsense:~ # bectl list
BE Active Mountpoint Space Created
22.7.11 R - 1.43G 2023-03-10 22:26
default N / 4.18M 2022-12-28 20:27
Würden wir jetzt das Update einspielen und die Firewall anschließend neu starten, würden wir wieder bei der alten Version 22.7.11 landen. Daher aktivieren wir das BE default
, in welchem wir auch das Update installieren, als temporäres BE:
root@OPNsense:~ # bectl activate -t default
Successfully activated boot environment default
for next boot
In der Übersicht steht nun hinter default
zusätzlich zum N (für Now) ein T (für Temporary):
root@OPNsense:~ # bectl list
BE Active Mountpoint Space Created
22.7.11 R - 1.43G 2023-03-10 22:26
default NT / 4.13M 2022-12-28 20:27
In diesem Zustand können wir nun das Major-Update durchführen.
Sollte die Firewall nach dem Neustart nicht mehr hochfahren, reicht es, sie einmal vom Strom zu trennen bzw. neu zu starten. Daraufhin bootet das alte BE 22.7.11
(das mit dem R) und wir können das Update wiederholen oder einen Vor-Ort-Termin ausmachen, um das Problem mittels Terminal zu analysieren.
WICHTIGER HINWEIS
Das Major-Update auf 23.1 startet die Firewall mehr als einmal neu. Dadurch wird die Firewall spätestens beim zweiten Neustart wieder mit BE 22.7.11 hochfahren (das mit dem R). Logge dich in diesem Fall als root
ein, führe erneut bectl activate -t default
aus und starte die Firewall neu. Ich musste diesen Schritt zweimal wiederholen, bis ich auf Version 23.1 war.
Sobald das Update vollständig durchgelaufen ist, steht beim Verbinden per SSH die neue Versionsnummer in der Headline:
------------------------------------------
| Hello, this is OPNsense 23.1 | @@@@@@@@@@@@@@@
| | @@@@ @@@@
| Website: https://opnsense.org/ | @@@\\\ ///@@@
| Handbook: https://docs.opnsense.org/ | )))))))) ((((((((
| Forums: https://forum.opnsense.org/ | @@@/// \\\@@@
| Code: https://github.com/opnsense | @@@@ @@@@
| Twitter: https://twitter.com/opnsense | @@@@@@@@@@@@@@@
------------------------------------------
Auch steht nach dem erfolgreichen Boot der neuen Version hinter dem BE default
der Buchstabe N:
root@OPNsense:~ # bectl list
BE Active Mountpoint Space Created
22.7.11 R - 1.53G 2023-03-10 22:26
default N / 1.22G 2022-12-28 20:27
Jetzt aktivieren wir das aktuelle BE wieder als Boot-Environment bei einem Reboot:
root@OPNsense:~ # bectl activate default
Successfully activated boot environment default
Ein letztes Mal die Übersicht:
root@OPNsense:~ # bectl list
BE Active Mountpoint Space Created
22.7.11 - - 405M 2023-03-10 22:26
default NR / 2.57G 2022-12-28 20:27
Wenn wir wollen, können wir nun noch das alte BE entfernen:
root@OPNsense:~ # bectl destroy 22.7.11
Viel Erfolg beim zukünftig krisensicheren Update deiner OPNsense-Firewall 🥳
Ich möchte Boot-Environments nutzen und meine OPNsense-Firewall updaten, habe dabei aber Schwierigkeiten
Ich unterstütze dich gerne beim Umgang mit Boot-Environments und beim Update deiner OPNsense-Firewall.
Schreib mir hierzu einfach über Kontakt, per Telegram oder unten in die Kommentare eine Nachricht.
Quellen und weiterführende Links
Hi, ich bin Christian und Inhaber der Firma SWEETGOOD. Mit dem andersGOOD Blog möchte ich auch dich für datensichere IT-Lösungen begeistern. So bringst du dein Unternehmen voran, ohne großen Konzernen deine wertvollen Daten zu liefern. Probiers mal anders!
Kommentarbereich
Die Kommentare sind für dich noch deaktiviert, da du dem Setzen von Cookies bisher nicht zugestimmt hast.
Klicke oben rechts auf "Ja, klar!" und lade die Seite neu, um die Kommentare anzuzeigen.
Seite neu laden