Ihr Client verbindet sich noch an dem Tag, an dem das Außerbetriebnahme-Ticket aufgeht. Ein Profil liegt in der App, es verhandelt, und der Tunnel kommt hoch, als hätte sich nichts geändert. Das ist der Moment, in die entgegengesetzte Richtung zu arbeiten, in der Sie den Dienst aufgebaut haben: Beginnen Sie bei der Clientliste, gehen Sie nach außen zum Listener, dann zur Firewall, und enden Sie bei den Anmeldedaten, die all das überleben. Die VM herunterzufahren ist der letzte Schritt, nicht der erste. Diese Anleitung setzt voraus, dass Sie Konsolenzugriff auf den Host und die Befugnis haben, Client-Einträge und DNS zu bearbeiten.

Gehen Sie zuerst die Clientliste durch

Öffnen Sie, was auch immer Ihre Profile verteilt, und lesen Sie die Liste, bevor Sie den Server anfassen. Jeder Eintrag ist ein Gerät, das glaubt, Zugriff zu haben: Telefone, Laptops, ein Filialrouter, ein Container, der sich jede Nacht synchronisiert. Exportieren Sie diese Liste ins Ticket, denn sobald der Host weg ist, gibt es kein wg show mehr, das Ihnen sagt, wer verbunden war.

Sortieren Sie jedes Gerät in Ersatz-Endpunkt, nicht mehr benötigt oder unbekannt. Der Unbekannt-Eimer ist der wichtige, denn das sind die Profile, die jemand in Monaten in einer Schublade findet und ausprobiert. Senden Sie die Mitteilung auf demselben Kanal, den Sie für Zugriffsanfragen nutzen, und setzen Sie ein Datum hinein, wann der alte Endpunkt aufhört zu antworten.

Widerrufen Sie die Identität, nicht nur die Datei

Zwei verschiedene Aktionen werden beide Widerruf genannt. Bei WireGuard ist ein Peer nur durch seinen öffentlichen Schlüssel autorisiert, der in einem Peer-Abschnitt mit einem AllowedIPs-Eintrag erscheint; das Löschen der Konfigurationsdatei vom Laptop ändert also nichts auf dem Server. Entfernen Sie den Peer-Block und wenden Sie die Datei erneut an, ohne die Peers fallen zu lassen, die Sie behalten, wie es das wg(8)-Handbuch beschreibt:

wg show
wg set wg0 peer <CLIENT_PUBLIC_KEY> remove
wg syncconf wg0 <(wg-quick strip wg0)

wg syncconf ist der Teil, der Ihnen ein Wartungsfenster erspart. Es baut die Schnittstelle aus der Datei an Ort und Stelle neu auf, sodass das Entfernen eines Peers nicht den Tunnel abreißt, den alle anderen nutzen. Wenn Sie den ganzen Host statt eines Peers außer Betrieb nehmen, spielt die Reihenfolge weiterhin eine Rolle, weil diesen Schlüsseln anderswo vertraut werden kann.

Bei einem X.509-Setup ist der Widerrufsschritt das Zertifikat, nicht die Datei: openssl ca -revoke client.crt und dann openssl ca -gencrl -out crl.pem. Das wirkt nur dort, wo der Prüfer es liest, was bedeutet, dass ein OpenVPN-Server mit konfiguriertem crl-verify und danach neu geladen wird. Ist dieses Gateway der einzige Nutzer dieser CA, verliert die CRL an dem Tag an Bedeutung, an dem sie stirbt; signiert dieselbe CA für ein zweites Gateway, funktioniert ein Zertifikat, das Sie nie widerrufen haben, dort weiter.

Konten sind der dritte Fall und der am häufigsten übersprungene. Wenn sich das Gateway gegen RADIUS, LDAP oder einen gehosteten Identitätsanbieter authentifiziert hat, lebt das Konto außerhalb des VPN. Deaktivieren Sie es im Verzeichnis. Das Löschen einer Benutzer-Stanza auf dem Server hinterlässt gültige Anmeldedaten, die der Ersatz-Endpunkt in dem Moment akzeptiert, in dem er auf dasselbe Verzeichnis zeigt.

Schließen Sie die Listener und die Wege zu ihnen

Stoppen Sie den Dienst so, dass er einen Neustart übersteht, und bestätigen Sie dann mit einer Socket-Auflistung statt mit dem Unit-Status. systemctl disable --now wg-quick@wg0 stoppt die Schnittstelle und entfernt die Routen und Regeln, die wg-quick hinzugefügt hat; systemctl disable --now openvpn-server@server tut dasselbe für eine templatebasierte OpenVPN-Instanz. Folgen Sie beidem mit ss -lunp und ss -ltnp. Ein leeres Ergebnis für den alten Port ist der einzige Beweis, der zählt.

Was wg-quick hinzugefügt hat, entfernt wg-quick. Was Sie von Hand hinzugefügt haben, bleibt: eine dauerhafte NAT-Regel, eine Firewall-Freigabe, eine Router-Portweiterleitung, eine Ingress-Regel einer Cloud-Sicherheitsgruppe, ein Load-Balancer-Listener. Diese brauchen eine ausdrückliche Entfernung, und der DNS-Eintrag ebenso, also das A, das AAAA und jeder CNAME, der auf den Namen zeigt. Ein Name, der auf einen toten Host auflöst, scheitert anders als ein Name, der nicht auflöst, und dieser Unterschied kostet jemanden einen Nachmittag.

Die Kopie, die Sie vergessen, ist der Klon. Ein Snapshot oder eine aus dem Backup wiederhergestellte VM hält noch die Host-Schlüssel und die alte Peer-Liste, und wenn etwas sie auf derselben Adresse zurückbringt, verbinden sich Clients mit einem Dienst, den Sie für außer Betrieb genommen halten. Kennzeichnen Sie das Backup-Set als zu einem stillgelegten Dienst gehörend und halten Sie es aus automatischen Wiederherstellungspfaden heraus.

Jagen Sie, was noch auf den alten Endpunkt zeigt

Zwischengespeicherte Profile überleben DNS. Eine gespeicherte Konfiguration mit numerischer Adresse wählt weiter, nachdem der Eintrag weg ist, und ein immer aktiver Client versucht es bei jeder Netzwerkänderung erneut. Das ist Rauschen statt Zugriff, weil der Listener geschlossen ist, aber zu wissen, welches von beidem Sie sehen, entscheidet, wie Sie das Ticket beantworten.

Durchkämmen Sie dann die Abhängigkeiten, die niemand unter VPN ablegt: Uptime-Prüfungen, die den Port abtasten, Backup-Jobs, die Konfigurationen vom Host gezogen haben, Automatisierungs-Anmeldedaten zum Einschieben von Peer-Einträgen, Wiederherstellungskonten, die nur für diesen Endpunkt angelegt wurden. Jede ist ein Zugriffsweg mit eigener Lebensdauer und eigenem Eigentümer, also bekommt jede eine Entscheidung statt einer stillen Löschung.

Überprüfen, dann aufschreiben

Die Außerbetriebnahme ist fertig, wenn ein Test von außen so fehlschlägt, wie Sie es erwarten. Verbinden Sie sich aus einem Netz, das Sie nicht kontrollieren, mit der alten Adresse und dem Port. Ein gefiltertes oder abgelehntes Ergebnis ist der Erfolgsfall. Bestätigen Sie in der Client-App, dass das Profil entfernt und nicht nur abgeschaltet wurde, und dass kein Verwaltungsprofil es still wieder hinzufügt.

Schreiben Sie dann auf, was Sie getan haben: Endpunkt, Datum, widerrufene Schlüssel und Zertifikate, deaktivierte Konten, wo die Backups liegen. Wer als Nächstes eine alte Konfiguration findet, muss ohne Raten antworten können, ob sie widerrufen oder nur gelöscht wurde, und eine kurze Tabelle im Ticket leistet das.

Bevor Sie das Ticket schließen:

  • Clientprofile entfernt oder ersetzt, unbekannte Geräte geklärt
  • Peers entfernt und die Konfiguration erneut angewendet oder Zertifikate widerrufen und die CRL veröffentlicht
  • Verzeichniskonten deaktiviert, nicht nur lokale Dateien gelöscht
  • Dienst deaktiviert, kein Listener auf dem alten Port übrig
  • Firewall, Portweiterleitung, Sicherheitsgruppe und DNS-Einträge entfernt
  • Backups gekennzeichnet, Snapshot aus Wiederherstellungspfaden ausgeschlossen
  • Überwachungs- und Automatisierungs-Anmeldedaten außer Betrieb genommen

Überprüfen Sie den Ersatz getrennt, von einem Client, der das alte Profil nie hatte. Dieser eine Test sagt Ihnen, ob Sie einen Dienst außer Betrieb genommen oder nur das Problem umbenannt haben.

Ähnliche Artikel