Eine Konfigurationsdatei zu kopieren ist kein Backup, und ein Backup, das niemand wiederherstellen kann, ist kein Plan. Das Archiv muss die Identität des Dienstes, die Richtlinie darum herum und den Zustand enthalten, der sagt, welche Geräte noch zugelassen sind. Es muss außerdem geschützt werden, denn in den meisten Umgebungen gewährt das Archiv genau das, was das VPN gewährt. Die Entscheidung, was wiederherstellbar sein muss, kommt zuerst; die Dateiliste folgt aus dieser Entscheidung.

Beginnen Sie beim Wiederaufbauziel

Schreiben Sie auf, was ein wiederaufgebauter Server leisten muss, bevor Sie eine einzige Datei auflisten: dieselben Tunnel beenden, dieselbe Identität vorweisen und die Geräte abweisen, die derzeit widerrufen sind. Dieser Satz schließt die meisten naiven Kopien aus, denn ein Konfigurationsverzeichnis enthält selten die Widerrufsliste oder die externe Identitätsabhängigkeit. Er legt auch die Teile offen, die außerhalb des Hosts leben, etwa DNS-Einträge, Cloud-Firewall-Regeln und das Verzeichnis, gegen das das Gateway authentifiziert. Ein Plan, der sie ignoriert, erzeugt einen wiederhergestellten Server, der gesund aussieht und niemanden hereinlässt.

Gruppieren Sie das Material in drei Körbe: Identität, Konfiguration und Zustand. Die Identität sind die Schlüssel, die Zertifikate und die Autorität, die sie signiert. Die Konfiguration sind die Daemon-Einstellungen, Pools, Routen und die Firewall-Richtlinie, während der Zustand die Menge der Peers, Konten und Widerrufe ist, die sich jeden Tag ändert.

Die Identität ist der Teil, den Sie nicht neu erzeugen können

Private Schlüssel lassen sich nicht aus dem Gedächtnis neu erzeugen, und die davon abhängigen Zertifikate laufen nach einem Zeitplan ab, den Sie erben, statt ihn zu wählen. Sichern Sie den Serverschlüssel, das Client-Bereitstellungsmaterial und die Zertifizierungsstelle, und notieren Sie dann, welche davon offline bleiben sollen. Ein Autoritätsschlüssel, der nur auf dem laufenden Gateway lebt, ist eine Kompromittierung von einem vollständigen Identitätsreset für jeden Client entfernt. Halten Sie fest, was bewusst anderswo gespeichert wird, damit niemand es in ein Archiv mit geringerem Schutz dupliziert.

Der Widerruf verdient eine eigene Zeile im Plan. Die Wiederherstellung der gestrigen Konfiguration kann eine Identität wieder einsetzen, die Sie heute entfernt haben, was eine Wiederherstellung in einen Sicherheitsvorfall verwandelt. Bewahren Sie den aktuellen Widerrufszustand an einem Ort auf, der unabhängig von dem Snapshot ist, auf den Sie zurückrollen würden, und prüfen Sie ihn nach jeder Wiederherstellung.

Sichern Sie den Zustand in einem Moment

Eine Kopie, die während des Schreibens des Dienstes entsteht, erzeugt ein inkonsistentes Inventar, und inkonsistente Identitätsdaten sind schlimmer als eine ältere saubere Kopie. Verwenden Sie den unterstützten Exportpfad für jeden Speicher und halten Sie dann den Snapshot-Zeitpunkt fest, denn jede spätere Frage zur Wiederherstellung hängt davon ab.

wg showconf wg0 > /srv/backup/wg0.runtime.conf
sqlite3 /var/lib/vpn/admin.db ".backup '/srv/backup/admin.db'"
cp -a /etc/wireguard /srv/backup/etc-wireguard
sha256sum /srv/backup/*.conf > /srv/backup/MANIFEST

Der erste Befehl gibt die laufende Schnittstelle als Konfiguration wieder aus, was der schnellste Weg ist, von Hand statt von einem Verwaltungswerkzeug hinzugefügte Peers zu erfassen; das wg(8)-Handbuch dokumentiert es. Die sqlite-Zeile ist das Muster für eine Verwaltungsdatenbank: Der Backup-Befehl erzeugt eine konsistente Kopie, während der Schreiber weiterläuft. Die Verzeichniskopie erhält die Berechtigungen, was zählt, weil diese Schlüsseldateien nur von root gelesen werden können. Das Manifest ist es, das Sie ein vollständiges Archiv von einem abgeschnittenen unterscheiden lässt.

Machen Sie die Wiederherstellung möglich, und testen Sie sie dann

Verschlüsseln Sie das Archiv und bewahren Sie den Wiederherstellungsschlüssel an einem anderen Ort als dem Rechner auf, von dem es stammt. Ein Backup, dessen Passphrase nur auf dem ausgefallenen Server existiert, ist ein Backup, das niemand öffnen wird. Beschränken Sie den Abruf auf die Personen, die das Gateway ohnehin verwalten konnten, und protokollieren Sie jeden Abruf. Testen Sie die Wiederherstellung in einem isolierten Netz, denn eine geklonte Identität, die neben der Produktion hochgefahren wird, erzeugt zwei Server, die für denselben Peer-Schlüssel antworten.

Dokumentieren Sie die Ausschlüsse ebenso sorgfältig wie den Inhalt. Cloud-Firewall-Regeln, DNS-Einträge und ein externes Verzeichnis brauchen jeweils möglicherweise einen eigenen Wiederherstellungsschritt. Eine erfolgreiche Dateikopie ist kein Beweis dafür, dass der Dienst zurückkehrt; der einzige Beweis, der zählt, ist ein wiederaufgebauter Endpunkt, der denselben Abnahmetest wie das Original besteht.

Ähnliche Artikel