Twój klient nadal łączy się w dniu, w którym otwiera się zgłoszenie o likwidacji. Profil siedzi w aplikacji, negocjuje połączenie, a tunel wstaje tak, jakby nic się nie zmieniło. To moment, aby pracować w odwrotnym kierunku niż przy budowie usługi: zacznij od listy klientów, przejdź na zewnątrz do nasłuchu, potem do zapory i skończ na poświadczeniach, które przetrwają je wszystkie. Wyłączenie maszyny wirtualnej to ostatni krok, a nie pierwszy. Ten przewodnik zakłada, że masz dostęp konsolowy do hosta i uprawnienia do edycji rekordów klientów oraz DNS.

Najpierw przejdź listę klientów

Otwórz cokolwiek rozprowadza Twoje profile i przeczytaj listę, zanim dotkniesz serwera. Każdy wpis to urządzenie, które sądzi, że ma dostęp: telefony, laptopy, router oddziału, kontener synchronizujący się co noc. Wyeksportuj tę listę do zgłoszenia, bo gdy host zniknie, nie ma wg show, które powiedziałoby Ci, kto był podłączony.

Posortuj każde urządzenie do jednej z kategorii: endpoint zastępczy, już niepotrzebne, nieznane. Liczy się właśnie kategoria nieznanych, bo to te profile ktoś znajdzie w szufladzie kilka miesięcy później i spróbuje użyć. Wyślij powiadomienie tym samym kanałem, którego używasz do wniosków o dostęp, i wpisz w nie datę, w której stary endpoint przestanie odpowiadać.

Unieważnij tożsamość, nie tylko plik

Dwie różne czynności nazywa się unieważnieniem. W WireGuard peera autoryzuje wyłącznie jego klucz publiczny występujący w sekcji peer z wpisem AllowedIPs, więc skasowanie pliku konfiguracji z laptopa nic nie zmienia na serwerze. Usuń blok peera i zastosuj plik ponownie, nie wyrzucając peerów, których pilnujesz, dokładnie tak, jakwg(8) opisuje w podręczniku:

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

wg syncconf to ten fragment, który oszczędza Ci okna serwisowego. Odbudowuje on interfejs z pliku w miejscu, więc usunięcie jednego peera nie zrywa tunelu, z którego korzystają wszyscy pozostali. Jeśli likwidujesz cały host, a nie jednego peera, kolejność nadal ma znaczenie, bo te klucze mogą być zaufane gdzie indziej.

W konfiguracji X.509 unieważnia się certyfikat, a nie plik: openssl ca -revoke client.crt, a następnie openssl ca -gencrl -out crl.pem. Działa to tylko tam, gdzie weryfikator to czyta, co oznaczaOpenVPN serwer z crl-verify skonfigurowanym i przeładowanym później. Jeśli ta brama jest jedynym konsumentem tego CA, CRL przestaje mieć znaczenie w dniu, w którym ona padnie; jeśli ta sama CA podpisuje certyfikaty dla drugiej bramy, certyfikat, którego nigdy nie unieważniłeś, nadal tam działa.

Konta to trzeci przypadek i ten najczęściej pomijany. Gdy brama uwierzytelniała się przez RADIUS, LDAP lub zewnętrznego dostawcę tożsamości, konto żyje poza VPN. Wyłącz je w katalogu. Skasowanie wpisu użytkownika na serwerze zostawia ważne poświadczenie, które endpoint zastępczy przyjmie w momencie, gdy wskaże na ten sam katalog.

Zamknij nasłuchy i drogi do nich

Zatrzymaj usługę tak, aby przetrwała restart, a potem potwierdź to listą gniazd, a nie stanem unitu. systemctl disable --now wg-quick@wg0 zatrzymuje interfejs i usuwa trasy oraz reguły dodane przez wg-quick; systemctl disable --now openvpn-server@server robi to samo dla instancji OpenVPN szablonowej. Każdą z nich uzupełnij o ss -lunp i ss -ltnp. Pusty wynik dla starego portu to jedyny dowód, który się liczy.

Co dodał wg-quick, to wg-quick usuwa. To, co dodałeś ręcznie, zostaje: trwała reguła NAT, zezwolenie w zaporze, przekierowanie portu na routerze, reguła ingress w grupie bezpieczeństwa chmury, nasłuch w load balancerze. To wymaga jawnego usunięcia, podobnie jak rekord DNS, czyli A, AAAA i każdy CNAME wskazujący na tę nazwę. Nazwa, która wskazuje na martwy host, zawodzi inaczej niż nazwa, która nie rozwiązuje się wcale, a ta różnica kosztuje kogoś popołudnie.

Kopia, którą zapominasz, to klon. Snapshot lub maszyna wirtualna przywrócona z kopii zapasowej nadal trzyma klucze hosta i starą listę peerów, a jeśli cokolwiek przywróci ją na ten sam adres, klienci połączą się z usługą, którą uważasz za zamkniętą. Oznacz zestaw kopii zapasowych jako należący do wycofanej usługi i trzymaj go poza automatycznymi ścieżkami przywracania.

Ścigaj to, co nadal wskazuje na stary endpoint

Profile w pamięci podręcznej przeżywają DNS. Zapisana konfiguracja z adresem numerycznym nadal dzwoni, gdy rekord zniknie, a klient zawsze włączony ponawia próbę przy każdej zmianie sieci. To szum, a nie dostęp, bo nasłuch jest zamknięty, ale wiedza, na który patrzysz, decyduje o tym, jak odpowiesz w zgłoszeniu.

Potem przeszukaj zależności, których nikt nie klasyfikuje jako VPN: kontrole uptime sondujące port, zadania backupu ciągnące konfiguracje z hosta, poświadczenia automatyzacji służące do wpychania wpisów peerów, konta odzyskiwania utworzone wyłącznie dla tego endpointu. Każda z nich jest ścieżką dostępu z własnym czasem życia i własnym właścicielem, więc każda dostaje decyzję zamiast cichego usunięcia.

Zweryfikuj, a potem zapisz

Likwidacja jest skończona, gdy test z zewnątrz zawodzi dokładnie tak, jak się spodziewasz. Z sieci, której nie kontrolujesz, połącz się ze starym adresem i portem. Odfiltrowany lub odrzucony wynik to przypadek sukcesu. W aplikacji klienta potwierdź, że profil został usunięty, a nie wyłączony, i że żaden profil zarządzający po cichu go nie dodaje.

Następnie zapisz, co zrobiłeś: endpoint, datę, unieważnione klucze i certyfikaty, wyłączone konta, miejsce, w którym leżą kopie zapasowe. Ktoś, kto następny znajdzie stary plik konfiguracyjny, musi odpowiedzieć, czy został unieważniony, czy tylko skasowany, bez zgadywania, a krótka tabela w zgłoszeniu to umożliwia.

Przed zamknięciem zgłoszenia:

  • profile klientów usunięte lub zastąpione, nieznane urządzenia wyjaśnione
  • peery usunięte i konfiguracja zastosowana ponownie albo certyfikaty unieważnione i CRL opublikowana
  • konta w katalogu wyłączone, a nie tylko lokalne pliki skasowane
  • usługa wyłączona, żaden nasłuch nie został na starym porcie
  • zapora, przekierowanie portu, grupa bezpieczeństwa i rekordy DNS usunięte
  • kopie zapasowe oznaczone, snapshot wyłączony ze ścieżek przywracania
  • poświadczenia monitoringu i automatyzacji wycofane

Zweryfikuj zastępczy endpoint osobno, od klienta, który nigdy nie miał starego profilu. Ten jeden test mówi Ci, czy wycofałeś usługę, czy tylko zmieniłeś nazwę problemu.

Powiązane artykuły