Trzy laptopy w jednym zespole, trzy różne menu VPN i zgłoszenie, które mówi, że połączenie działa wszędzie poza Makiem. Plan stojący za tymi klientami może być identyczny, nawet gdy menu nie są. To, co musi się zgadzać, jest węższe, niż zakłada większość wdrożeń: jedna tożsamość bramy, jeden typ poświadczeń, jeden zestaw tras i jedna polityka resolvera. Zapisz te cztery punkty, zanim ktokolwiek wyeksportuje profil, a praca platformowa zamieni się w listę kontrolną zamiast śledztwa.

Zacznij od kontraktu dostępu, a nie od pliku klienta

Kontrakt dostępu to pięć wierszy, które recenzent może sprawdzić bez otwierania konsoli dostawcy. Wymienia prefiksy prywatne, do których musi być dostęp, nazwy wewnętrzne, które muszą się rozwiązywać, resolver, który na nie odpowiada, ruch dozwolony na ścieżce lokalnej oraz certyfikat bramy, którego klient powinien się spodziewać. Cała reszta wdrożenia to przełożenie tych wierszy na format pliku.

Przykład z biura pokazuje kształt w konkretny sposób: serwery aplikacji w 10.60.0.0/16, nazwy prywatne pod corp.example, wewnętrzny resolver pod 10.61.0.53, a zwykłe przeglądanie zostaje na ścieżce, której urządzenie już używa. Ten ostatni punkt to decyzja polityki, a nie domyślne zachowanie klienta, i kilka klientów wyśle wszystko tunelem, jeśli nikt nie powie inaczej. Zapisz kontrakt z datą i właścicielem, bo to właśnie ten zapis powie ci później, czy zmienił się tunel, czy polityka.

Wybierz jeden protokół i jedną parę uwierzytelniania, której potrafisz bronić

IKEv2 z uwierzytelnianiem bramy opartym na certyfikatach i EAP po stronie użytkownika to zwykły wybór, gdy wszystkie trzy platformy muszą działać bez dodatkowego oprogramowania, ponieważ Windows, macOS i NetworkManager każdy dostarcza klienta IKEv2. Kłopot w tym, że obsługa IKEv2 opisuje etykietę, a nie zestaw funkcji. Metody EAP, klucze wspierane sprzętowo, mapowanie certyfikatu na konto i automatyczne ponowne łączenie są implementowane osobno na każdej platformie. Kombinacja działająca na dwóch z trzech jest dość częsta, by zakładać ją do czasu testu.

Przetestuj tę parę na każdej platformie docelowej przed napisaniem przewodnika wdrożeniowego, a nie po. Brama oferująca zarówno EAP-MSCHAPv2, jak i EAP-TLS daje miejsce na ścieżkę awaryjną, pod warunkiem że jest ona udokumentowana jako obsługiwana, a nie odkryta w trakcie incydentu. Dwie obsługiwane ścieżki to tania polisa; nieudokumentowana trzecia to przyszłe zgłoszenie.

Gdy żadna para nie obejmuje wszystkich trzech klientów, uczciwymi opcjami są dodanie klienta, dodanie profilu na bramie albo zawężenie listy obsługiwanych platform. Wyłączenie walidacji certyfikatów na platformie, która najgłośniej narzeka, nie jest jedną z nich. Ta zmiana zamienia lukę w zgodności w ryzyko przechwycenia i żaden późniejszy krok wdrożenia jej nie naprawi.

Zbuduj jeden artefakt na platformę na podstawie kontraktu

Windows używa profilu VPNv2, dostarczanego przez MDM albo utworzonego lokalnie za pomocą Add-VpnConnection i jego ładunku XML. Kłopotliwe są zakres i zaufanie. Profil w zakresie urządzenia i profil w zakresie użytkownika instalują się w różnych magazynach, więc certyfikat potrzebny klientowi musi leżeć w magazynie odpowiadającym wybranemu zakresowi. Błąd w tym dopasowaniu daje profil, który importuje się bez zarzutu, a potem zawodzi przy pierwszym połączeniu.

macOS używa profilu konfiguracyjnego z zarządzanym ładunkiem VPN, podpisanego i rozprowadzanego przez MDM albo instalowanego ręcznie w pilocie. Tożsamość i łańcuch CA podróżują jako osobne ładunki, i dlatego profil może zainstalować się bez skargi, a potem zawieść w chwili łączenia. Sprawdź listę ładunków, nie tylko wynik instalacji.

Linux zależy od backendu stojącego za NetworkManagerem, a strongSwan i wtyczka NetworkManagera to osobne pakiety. Właściwości połączenia są specyficzne dla wtyczki, a nie ogólnymi kluczami VPN, więc klucz skopiowany z innej wtyczki często zapisuje się bez błędu, a potem zawodzi przy aktywacji. Zbuduj połączenie na czystym obrazie, aby potwierdzić, że wtyczka jest tam, gdzie naprawdę będzie działać.

Trzy artefakty różnią się formatem, ale każdy koduje te same pięć wierszy kontraktu. To jest test na to, czy artefakt jest gotowy: każdy wiersz jest gdzieś odwzorowany i po drodze nie wymyślono niczego dodatkowego.

PlatformArtifactCheck before handoff
WindowsVPNv2 profile or Add-VpnConnectionScope matches certificate store
macOSManaged VPN payload plus certificate payloadBoth payloads present in one profile
LinuxNetworkManager connection with strongSwan backendPlugin package installed on the image

Zweryfikuj trasy, resolver i ponowne łączenie na czystym koncie

Połączono to nie jest test akceptacyjny. W systemie Windows Get-VpnConnection pokazuje profil, a route print pokazuje, czy prefiks prywatny trafił na interfejs tunelu. W macOS scutil --nc list potwierdza aktywną usługę, a scutil --dns pokazuje kolejność resolverów, której system naprawdę użyje.

Na Linuksie nmcli connection show --active dowodzi, że połączenie jest aktywne, a resolvectl status pokazuje DNS na interfejs. Resolver obecny w pliku połączenia, ale nieobecny w wyniku dla interfejsu, oznacza, że podzielony DNS nie jest stosowany. To różnica między nazwami, które się rozwiązują, a nazwami, które rozwiązują się przez tunel, i zmienia to, który zespół wsparcia przejmuje następny krok. Porównaj wynik dla interfejsu przed i po podniesieniu połączenia, nie tylko po.

Wykonaj całą kontrolę na świeżym koncie, bez poświadczeń w pamięci podręcznej i bez certyfikatu zainstalowanego przez administratora. Następnie powtórz ją po uśpieniu i wybudzeniu, i jeszcze raz po wymuszeniu ponownego wprowadzenia poświadczeń. Te dwa przejścia ujawniają większość awarii ponownego łączenia, których pierwsze połączenie nigdy nie pokaże.

Wersjonuj pakiet i utrzymuj ścieżkę wycofania

Oznacz każdy pakiet platformy rewizją kontraktu, którą implementuje, i zanotuj wersje klienta i bramy, z którymi go zaakceptowałeś. Gdy zachowanie zmieni się po aktualizacji klienta, znacznik wskazuje kontrakt do ponownego przetestowania, a nie plik do zgadywania.

Utrzymuj poprzedni pakiet każdej platformy w zasięgu ręki i zapisz obok niego polecenie usunięcia. Odinstalowanie profilu VPN nie jest lustrzanym odbiciem instalacji na Windows, macOS ani Linuksie, a różnice wychodzą w najgorszym możliwym momencie. Przećwicz usunięcie raz na zapasowym urządzeniu, aby archiwum stało się planem, a nie nadzieją.

Powiązane artykuły