tiermutter
Well-known member
[PROLOG]
Backups sind überall Pflicht, so natürlich auch bei Firewalls. Ich setze seit einigen Jahren OPNsense ein und da stellt sich natürlich die Frage, wie eine gute Backupstrategie aussehen kann. Im Folgenden möchte ich kurz erläutern, wie das bei mir im Fall der OPNsense aussieht.
[ALLGEMEIN]
Bevor es ins Detail geht eine kurze Zusammenfassung, welche Möglichkeiten einer Sicherung ich anwende, wie das im Einzelnen aussieht zeige ich später.
OPNsense bietet von Haus aus die Möglichkeit die Konfiguration zu sichern. Dabei wird bei jeder Konfigurationsänderung eine Version des Backups angelegt, sodass man stets auf den Stand vor den letzten Änderungen zurückgehen kann. Die Konfiguration kann auch manuell gesichert werden oder automatisch an z.B. Google Drive, in beiden Fällen hat man die Möglichkeit die gesamte Konfiguration oder auch nur einzelne Abschnitte (z.B. Firewallregeln oder VPN Einstellungen) wiederherzustellen.
Durch die Sicherung der Konfiguration werden allerdings nicht etwaige installierte Plugins wiederhergestellt, diese müssen zuvor manuell installiert werden, dann wird (in den meisten Fällen) auch die Konfiguration wiederhergestellt.
Damit eine Wiederherstellung samt Plugins schnell erledigt ist muss also eine andere Methode herhalten. Hierzu erstelle ich mir regelmäßig immer vor den „großen“ Halbjahresupdates ein Image des Datenträgers mittels CloneZilla, welches ich direkt auf meinem NAS ablegen lasse und das ich auch direkt von hier wiederherstellen kann. In Kombination mit der Sicherung der Konfiguration kann die Firewall somit relativ zügig voll funktionsfähig mit der letzten Konfiguration aufgesetzt werden, lediglich die Versionen von OPNsense und den Plugins werden älter sein und müssen geupdated werden um wirklich auf den neuesten Stand zu kommen.
Seit OPNsense 22.1 kann man direkt bei der Installation auch ZFS als Dateisystem wählen, was einem weitere Möglichkeiten verschafft. Hier können Bootenvironments (BE) auf dem System selbst erstellt werden, sodass man -ähnlich wie bei Snapshots- jederzeit auf einen älteren Stand zurückkehren kann. Auch wenn dies nicht als vollwertiges Backup betrachtet werden kann, da ein BE ja im System selbst hinterlegt ist, eignet sich die Erstellung von BE insbesondere um sich vor Updateproblemen zu schützen. Vor jedem Update erstelle ich so ein neues BE zu dem ich jederzeit zurückkehren kann, vorausgesetzt natürlich dass man in irgendeiner Weise noch Zugriff auf die Konsole hat, sei es via SSH oder direkt mit Bildschirm und Tastatur.
[BACKUP DER KONFIGURATION]
Ein essentielles und geiles Feature ist die bereits angesprochene Versionierung, bzw. Historie der Konfigurationsänderungen. Hier hat man die Möglichkeit zu verschiedenen Ständen der Konfiguration zurückzukehren, die Versionierung/ Historie wird dabei automatisch bei jeder Änderung erstellt. Hier kann man zwei Stände miteinander vergleichen und sehen, was genau verändert wurde. Die Konfiguration eines Zeitpunkts kann direkt wiederhergestellt oder auch heruntergeladen (und bearbeitet) werden, perfekt für den alltäglichen Gebrauch!
Nicht weniger rudimentär geht es mit der Sicherung und Wiederherstellung der Konfigurationdatei vonstatten, denn hierbei kann man nicht nur die gesamte Konfiguration aus der heruntergeladenen Konfigdatei wiederherstellen, sondern eben auch nur einzelne Abschnitte, wie hier im Screenshot z.B. nur die Firewall Regeln, was ich ebenfalls als ein sehr geiles Feature betrachte!
Da die Historie auf dem Gerät selbst abgelegt ist und somit kein richtiges Backup darstellt und die Konfiguration an dieser Stelle nur manuell gesichert werden kann, gibt es hier auch die Möglichkeit die Konfiguration automatisch (nach Zeitplan) nach Google Drive zu sichern. Bei mir läuft das per Default täglich um 01:00 Uhr sofern Änderungen an der Konfiguration stattgefunden haben, man kann per Cron allerdings auch andere Zeitpläne erstellen. Auch ist es möglich das Backup an andere Ziele zu senden, ich begnüge mich der Einfachheit wegen allerdings mit GoogleDrive.
Wie schon erwähnt, werden hier auch die Konfigurationen mancher Plugins gesichert und bei Bedarf wieder hergestellt, dies gilt allerdings nicht für alle Plugins! Um sicherzustellen dass die jeweilige Plugin-Konfiguration gesichert wird, sollte man sich die gesicherte Konfigurationsdatei einmal anschauen.
Damit ich auch meine Plugins (z.B. AdGuardHome) auf einem halbwegs aktuellen Stand gesichert habe geht es im nächsten Abschnitt weiter mit dem Klonen des Datenträgers der Firewall.
[KLON DES DATENTRÄGERS]
Das Klonen eines Datenträgers hat natürlich nichts mit der OPNsense an sich zu tun und eignet sich grundsätzlich für eine „Bare-Metal-Sicherung“ die ich auch immer wieder an anderen Systemen durchführe, entweder klone ich direkt auf einen anderen Datenträger oder wie im Fall meiner OPNsense in ein Image auf das NAS. Selbstredend führt dies eine gewisse Downtime der Firewall mit sich, da das System für die Sicherung heruntergefahren werden muss und anschließend vom USB Stick in CloneZilla gebootet werden kann. Ist das getan wird nach den Sprach- und Tastatureinstellungen der Modus „Device-Image“ gewählt und -in meinem Fall- anschließend „Samba Server“. Daraufhin erfolgt eine Prüfung der vorhandenen Interfaces, was etwa 30s je Interface dauert, anschließend wählt man das gewünschte Interface (eins das mit dem LAN/ Ziel verbunden ist), weist dem Interface eine IP zu (alternativ DHCP sofern die nun abgeschaltete OPNsense nicht der einzige DHCP Server ist) und gibt im Anschluss die IP des Ziels, in meinem Fall des NAS an. Anschließend wird noch der Loginname sowie die entsprechende Freigabe und die SMB Version angegebenen, woraufhin die Passworteingabe für den NAS-Benutzer erfolgt. Im nächsten Step bleibe ich beim „Beginner“ und kann anschließend auswählen ob ich eine Sicherung erstellen will (savedisk) oder ein vorhandenes Image wiederherstellen möchte (restoredisk). Der Vorgang dauert bei mir nun jeweils etwa 20 Minuten (ZFS Dateisystem), sodass ich insgesamt auf eine Downtime von etwa 30min komme, das ist echt gut zu verkraften.
Die Größe des Backups (per Default komprimiert) ist auch recht überschaubar: mit UFS beträgt die Imagegröße einer 20GB SSD etwa 1,4GB, mit ZFS etwa 10GB (wobei ich mir die Größe noch nicht erklären kann).
Solch eine Sicherung erfolgt bei mir etwa jedes halbe Jahr vor den Major-Releases.
Diese Maßnahme kombiniert mit der tagesaktuellen Sicherung sorgt dafür, dass ich das System innerhalb kurzer Zeit auch auf einer neuen (baugleichen) Hardware aufsetzen kann. Die Konfiguration ist dabei tagesaktuell, lediglich Updates und ggf. bestimmte Plugin-Konfigurationen müssen nachgeholt bzw. angepasst werden, aber prinzipiell ist das System somit direkt einsatzbereit.
Backups sind überall Pflicht, so natürlich auch bei Firewalls. Ich setze seit einigen Jahren OPNsense ein und da stellt sich natürlich die Frage, wie eine gute Backupstrategie aussehen kann. Im Folgenden möchte ich kurz erläutern, wie das bei mir im Fall der OPNsense aussieht.
[ALLGEMEIN]
Bevor es ins Detail geht eine kurze Zusammenfassung, welche Möglichkeiten einer Sicherung ich anwende, wie das im Einzelnen aussieht zeige ich später.
OPNsense bietet von Haus aus die Möglichkeit die Konfiguration zu sichern. Dabei wird bei jeder Konfigurationsänderung eine Version des Backups angelegt, sodass man stets auf den Stand vor den letzten Änderungen zurückgehen kann. Die Konfiguration kann auch manuell gesichert werden oder automatisch an z.B. Google Drive, in beiden Fällen hat man die Möglichkeit die gesamte Konfiguration oder auch nur einzelne Abschnitte (z.B. Firewallregeln oder VPN Einstellungen) wiederherzustellen.
Durch die Sicherung der Konfiguration werden allerdings nicht etwaige installierte Plugins wiederhergestellt, diese müssen zuvor manuell installiert werden, dann wird (in den meisten Fällen) auch die Konfiguration wiederhergestellt.
Damit eine Wiederherstellung samt Plugins schnell erledigt ist muss also eine andere Methode herhalten. Hierzu erstelle ich mir regelmäßig immer vor den „großen“ Halbjahresupdates ein Image des Datenträgers mittels CloneZilla, welches ich direkt auf meinem NAS ablegen lasse und das ich auch direkt von hier wiederherstellen kann. In Kombination mit der Sicherung der Konfiguration kann die Firewall somit relativ zügig voll funktionsfähig mit der letzten Konfiguration aufgesetzt werden, lediglich die Versionen von OPNsense und den Plugins werden älter sein und müssen geupdated werden um wirklich auf den neuesten Stand zu kommen.
Seit OPNsense 22.1 kann man direkt bei der Installation auch ZFS als Dateisystem wählen, was einem weitere Möglichkeiten verschafft. Hier können Bootenvironments (BE) auf dem System selbst erstellt werden, sodass man -ähnlich wie bei Snapshots- jederzeit auf einen älteren Stand zurückkehren kann. Auch wenn dies nicht als vollwertiges Backup betrachtet werden kann, da ein BE ja im System selbst hinterlegt ist, eignet sich die Erstellung von BE insbesondere um sich vor Updateproblemen zu schützen. Vor jedem Update erstelle ich so ein neues BE zu dem ich jederzeit zurückkehren kann, vorausgesetzt natürlich dass man in irgendeiner Weise noch Zugriff auf die Konsole hat, sei es via SSH oder direkt mit Bildschirm und Tastatur.
[BACKUP DER KONFIGURATION]
Ein essentielles und geiles Feature ist die bereits angesprochene Versionierung, bzw. Historie der Konfigurationsänderungen. Hier hat man die Möglichkeit zu verschiedenen Ständen der Konfiguration zurückzukehren, die Versionierung/ Historie wird dabei automatisch bei jeder Änderung erstellt. Hier kann man zwei Stände miteinander vergleichen und sehen, was genau verändert wurde. Die Konfiguration eines Zeitpunkts kann direkt wiederhergestellt oder auch heruntergeladen (und bearbeitet) werden, perfekt für den alltäglichen Gebrauch!
Nicht weniger rudimentär geht es mit der Sicherung und Wiederherstellung der Konfigurationdatei vonstatten, denn hierbei kann man nicht nur die gesamte Konfiguration aus der heruntergeladenen Konfigdatei wiederherstellen, sondern eben auch nur einzelne Abschnitte, wie hier im Screenshot z.B. nur die Firewall Regeln, was ich ebenfalls als ein sehr geiles Feature betrachte!
Da die Historie auf dem Gerät selbst abgelegt ist und somit kein richtiges Backup darstellt und die Konfiguration an dieser Stelle nur manuell gesichert werden kann, gibt es hier auch die Möglichkeit die Konfiguration automatisch (nach Zeitplan) nach Google Drive zu sichern. Bei mir läuft das per Default täglich um 01:00 Uhr sofern Änderungen an der Konfiguration stattgefunden haben, man kann per Cron allerdings auch andere Zeitpläne erstellen. Auch ist es möglich das Backup an andere Ziele zu senden, ich begnüge mich der Einfachheit wegen allerdings mit GoogleDrive.
Wie schon erwähnt, werden hier auch die Konfigurationen mancher Plugins gesichert und bei Bedarf wieder hergestellt, dies gilt allerdings nicht für alle Plugins! Um sicherzustellen dass die jeweilige Plugin-Konfiguration gesichert wird, sollte man sich die gesicherte Konfigurationsdatei einmal anschauen.
Damit ich auch meine Plugins (z.B. AdGuardHome) auf einem halbwegs aktuellen Stand gesichert habe geht es im nächsten Abschnitt weiter mit dem Klonen des Datenträgers der Firewall.
[KLON DES DATENTRÄGERS]
Das Klonen eines Datenträgers hat natürlich nichts mit der OPNsense an sich zu tun und eignet sich grundsätzlich für eine „Bare-Metal-Sicherung“ die ich auch immer wieder an anderen Systemen durchführe, entweder klone ich direkt auf einen anderen Datenträger oder wie im Fall meiner OPNsense in ein Image auf das NAS. Selbstredend führt dies eine gewisse Downtime der Firewall mit sich, da das System für die Sicherung heruntergefahren werden muss und anschließend vom USB Stick in CloneZilla gebootet werden kann. Ist das getan wird nach den Sprach- und Tastatureinstellungen der Modus „Device-Image“ gewählt und -in meinem Fall- anschließend „Samba Server“. Daraufhin erfolgt eine Prüfung der vorhandenen Interfaces, was etwa 30s je Interface dauert, anschließend wählt man das gewünschte Interface (eins das mit dem LAN/ Ziel verbunden ist), weist dem Interface eine IP zu (alternativ DHCP sofern die nun abgeschaltete OPNsense nicht der einzige DHCP Server ist) und gibt im Anschluss die IP des Ziels, in meinem Fall des NAS an. Anschließend wird noch der Loginname sowie die entsprechende Freigabe und die SMB Version angegebenen, woraufhin die Passworteingabe für den NAS-Benutzer erfolgt. Im nächsten Step bleibe ich beim „Beginner“ und kann anschließend auswählen ob ich eine Sicherung erstellen will (savedisk) oder ein vorhandenes Image wiederherstellen möchte (restoredisk). Der Vorgang dauert bei mir nun jeweils etwa 20 Minuten (ZFS Dateisystem), sodass ich insgesamt auf eine Downtime von etwa 30min komme, das ist echt gut zu verkraften.
Die Größe des Backups (per Default komprimiert) ist auch recht überschaubar: mit UFS beträgt die Imagegröße einer 20GB SSD etwa 1,4GB, mit ZFS etwa 10GB (wobei ich mir die Größe noch nicht erklären kann).
Solch eine Sicherung erfolgt bei mir etwa jedes halbe Jahr vor den Major-Releases.
Diese Maßnahme kombiniert mit der tagesaktuellen Sicherung sorgt dafür, dass ich das System innerhalb kurzer Zeit auch auf einer neuen (baugleichen) Hardware aufsetzen kann. Die Konfiguration ist dabei tagesaktuell, lediglich Updates und ggf. bestimmte Plugin-Konfigurationen müssen nachgeholt bzw. angepasst werden, aber prinzipiell ist das System somit direkt einsatzbereit.
Zuletzt bearbeitet: