Váš klient se stále připojuje v den, kdy se otevře tiket na vyřazení. V aplikaci sedí profil, vyjednává a tunel se zvedne, jako by se nic nezměnilo. To je okamžik pracovat opačným směrem, než jste službu stavěli: začněte seznamem klientů, jděte ven k listeneru, potom k firewallu a skončete u přihlašovacích údajů, které všechny přežijí. Vypnutí VM je poslední krok, ne první. Tento postup předpokládá, že máte konzolový přístup k hostiteli a oprávnění upravovat klientské záznamy a DNS.

Nejprve projděte seznam klientů

Otevřete cokoli, co distribuuje vaše profily, a přečtěte si seznam, než se dotknete serveru. Každá položka je zařízení, které věří, že má přístup: telefony, notebooky, pobočkový router, kontejner, který se každou noc synchronizuje. Vyexportujte ten seznam do tiketu, protože až hostitel zmizí, nebude žádný wg show, který by vám řekl, kdo byl připojený.

Roztřiďte každé zařízení na náhradní koncový bod, již nepotřebné nebo neznámé. Právě kbelík neznámých je důležitý, protože to jsou profily, které někdo za měsíce najde v šuplíku a zkusí. Pošlete oznámení stejným kanálem, jaký používáte pro žádosti o přístup, a napište do něj datum, kdy starý koncový bod přestane odpovídat.

Odvolejte identitu, ne jen soubor

Dvě různé akce se obě nazývají odvolání. Na WireGuardu je peer autorizován pouze svým veřejným klíčem, který se objeví v sekci peeru s položkou AllowedIPs, takže smazání konfiguračního souboru z notebooku nic na serveru nezmění. Odstraňte blok peeru a znovu použijte soubor, aniž byste zahodili peery, které si ponecháváte, jak popisuje wg(8) manuál:

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

wg syncconf je část, která vám ušetří maintenance okno. Přestaví rozhraní ze souboru na místě, takže odebrání jednoho peeru nezboří tunel, který používají všichni ostatní. Pokud vyřazujete celý hostitel místo jednoho peeru, pořadí je stále důležité, protože těm klíčům se může důvěřovat jinde.

Při nastavení X.509 je krokem odvolání certifikát, ne soubor: openssl ca -revoke client.crt a potom openssl ca -gencrl -out crl.pem. To má účinek jen tam, kde ho ověřovatel čte, což znamená OpenVPN server s nakonfigurovaným crl-verify a následně znovu načteným. Pokud je tato brána jediným konzumentem té CA, CRL přestane mít význam v den, kdy zemře; pokud stejná CA podepisuje pro druhou bránu, certifikát, který jste nikdy neodvolali, tam funguje dál.

Účty jsou třetí případ a ten nejčastěji vynechávaný. Když se brána autentizovala proti RADIUS, LDAP nebo hostovanému poskytovateli identity, účet žije mimo VPN. Zakažte ho v adresáři. Smazání uživatelské stanzy na serveru zanechá platné přihlašovací údaje, které náhradní koncový bod přijme ve chvíli, kdy bude ukazovat na stejný adresář.

Zavřete listenery a cesty k nim

Zastavte službu tak, aby přežila restart, a potom to potvrďte výpisem socketů, ne stavem unit. systemctl disable --now wg-quick@wg0 zastaví rozhraní a odstraní trasy a pravidla, která přidal wg-quick; systemctl disable --now openvpn-server@server udělá totéž pro šablonovou instanci OpenVPN. Po kterémkoli z nich spusťte ss -lunp a ss -ltnp. Prázdný výsledek pro starý port je jediný důkaz, který se počítá.

Co wg-quick přidal, wg-quick odstraní. Co jste přidali ručně, zůstává: trvalé NAT pravidlo, povolení ve firewallu, přesměrování portu na routeru, vstupní pravidlo cloudové bezpečnostní skupiny, listener load balanceru. Ty potřebují výslovné odstranění, a stejně tak DNS záznam, tedy A, AAAA a jakýkoli CNAME ukazující na jméno. Jméno, které se překládá na mrtvý hostitel, selhává jinak než jméno, které se nepřekládá, a ten rozdíl někoho bude stát odpoledne.

Kopie, kterou zapomenete, je klon. Snapshot nebo VM obnovená ze zálohy stále drží klíče hostitele a starý seznam peerů, a pokud ji něco vrátí na stejnou adresu, klienti se znovu připojí ke službě, kterou považujete za vyřazenou. Označte záložní sadu jako patřící vyřazené službě a držte ji mimo automatické cesty obnovy.

Dohánějte, co stále ukazuje na starý koncový bod

Cacheované profily přežívají DNS. Uložená konfigurace s číselnou adresou vytáčí dál poté, co záznam zmizí, a stále zapnutý klient to zkouší při každé změně sítě. To je šum, ne přístup, protože listener je zavřený, ale vědět, na kterou z těch dvou věcí se díváte, rozhoduje o tom, jak tiketu odpovíte.

Pak pročesejte závislosti, které nikdo nearchivuje pod VPN: kontroly dostupnosti, které osahávají port, úlohy zálohování, které tahaly konfigurace z hostitele, automatizační přihlašovací údaje používané k protlačení peer položek, účty pro obnovu vytvořené jen pro tento koncový bod. Každá je přístupová cesta s vlastní životností a vlastním vlastníkem, takže každá dostane rozhodnutí místo tichého smazání.

Ověřte, a pak to zapište

Vyřazení je hotové, když test zvenčí selže tak, jak očekáváte. Ze sítě, kterou nekontrolujete, se připojte na starou adresu a port. Filtrovaný nebo odmítnutý výsledek je úspěšný případ. V klientské aplikaci potvrďte, že profil byl odstraněn, ne jen vypnut, a že ho žádný správcovský profil tiše znovu nepřidá.

Potom zapište, co jste udělali: koncový bod, datum, odvolané klíče a certifikáty, zakázané účty, kde žijí zálohy. Kdokoli příště najde starou konfiguraci, musí odpovědět, zda byla odvolána, nebo jen smazána, bez hádání, a krátká tabulka v tiketu to udělá.

Před zavřením tiketu:

  • klientské profily odstraněny nebo nahrazeny, neznámá zařízení vyřešena
  • peery odstraněny a konfigurace znovu použita, nebo certifikáty odvolány a CRL publikován
  • účty v adresáři zakázány, ne jen smazány místní soubory
  • služba zakázána, na starém portu nezůstal žádný listener
  • firewall, přesměrování portu, bezpečnostní skupina a DNS položky odstraněny
  • zálohy označeny, snapshot vyloučen z cest obnovy
  • monitorovací a automatizační přihlašovací údaje vyřazeny

Ověřte náhradu samostatně, od klienta, který starý profil nikdy neměl. Ten jediný test vám řekne, zda jste vyřadili službu, nebo jen přejmenovali problém.

Související články