VPN psuje się po aktualizacji klienta? Porównaj negocjację
Zachowaj pierwszy nowy błąd i wersję, która go wywołała. Zmieniona negocjacja lub wymóg platformy wymaga jednej konkretnej poprawki, a nie wycofania.
Aktualizacje zastępują komponent, który analizuje profil i negocjuje tunel. Pierwsza awaria po aktualizacji jest dowodem na konkretną zmianę, a nie wyrokiem o wydaniu. Zapisanie tego błędu wraz z wersją i znacznikiem czasu to najcenniejszy krok, jaki możesz zrobić przed ponowną instalacją czegokolwiek.
Dwa mechanizmy wyjaśniają większość tych zerwań. Rozdzielenie ich to właśnie robota.
Co zmieniło się w negocjacji pod tobą
OpenVPN negocjuje szyfr kanału danych, zamiast brać go z jednej dyrektywy, a opcje sterujące tą negocjacją zmieniły znaczenie między wydaniami. Profil napisany dla starszego klienta może się połączyć, a potem nie dojść do porozumienia w sprawie kanału danych, co objawia się rozłączeniem, a nie jasnym błędem konfiguracji. Nowsze wydania także zaostrzają lub wycofują odziedziczone zachowanie i dostarczają tryb zgodności dla partnerów, którzy jeszcze się nie przenieśli. Aktualizacja może więc zepsuć działający profil, nie dotykając ani jednego bajtu pliku.
Wpływ na klienta jest asymetryczny. Kanał kontrolny wstaje, uwierzytelnianie się udaje, a potem tunel ginie, co jest sygnaturą niezgodności negocjacji, a nie odrzuconego profilu.
Przeczytaj zainstalowaną wersję, zanim zaczniesz teoretyzować o serwerze. Ten ciąg jest lokalnym faktem, który możesz sprawdzić, nie prosząc nikogo o dostęp.
Profil może się sparsować i znaczyć coś innego
Dyrektywa, która przechodzi parsowanie, niekoniecznie nadal robi to, co zamierzał jej autor. Opcje mogą być przyjmowane ze względu na zgodność i ignorowane, przemianowywane albo stosowane w węższym przypadku niż wcześniej. Ponieważ nic nie zgłasza błędu, profil wygląda poprawnie, choć zachowanie pod nim się zmieniło. Właśnie ta cisza czyni takie regresje kosztownymi.
Zapytaj, które linie naprawdę odpowiadają za wynegocjowany wynik, a następnie porównaj je z dokumentacją wersji, którą teraz uruchamiasz. To porównanie jest krótkie i to w nim tkwi różnica między poprawką a wycofaniem.
openvpn --version | head -n 2
openvpn --show-ciphers | head -n 10
grep -nE '^(cipher|data-ciphers|ncp-|tls-)' office.ovpn
Platforma ruszyła w tym samym czasie
Wydania klienta rzadko przychodzą same. Aktualizacja systemu operacyjnego, prośba o uprawnienie, która teraz wymaga wyraźnej zgody, albo zarządzana polityka zastosowana do urządzenia mogą pojawić się w tym samym tygodniu i wywołać awarię, o którą obwinia się klienta. Platformy mobilne dokładają własną warstwę, ponieważ aplikacja prosi system o tunel, a system decyduje, co ten tunel może trasować.
Zapisz te zmiany osobno na osi czasu. Gdy uwierzytelnianie się udaje, ale trasy lub rozwiązywanie nazw zawodzą, ciekawym etapem jest ten po uścisku dłoni, a osłabienie walidacji certyfikatu go nie dotknie.
Przetestuj ponownie zdarzenie, które rozpoczęło zgłoszenie
Odtwórz pierwotną sekwencję, a nie jej uproszczoną wersję: pierwsze połączenie, aplikację, która zawiodła, i zwykłe ponowne połączenie po zmianie sieci. Tunel, który wstaje w warunkach testowych i mimo to pada na ścieżce ponownego połączenia, nie został naprawiony, a różnica zwykle wskazuje, gdzie tkwi prawdziwy defekt. Zgłoszenie, które pomija krok ponownego połączenia, zamyka błąd, który nadal jest otwarty.
Uzyskaj wspierany profil operatora lub poprawkę dostawcy zweryfikowanym kanałem, zamiast wycofywać wszystko. Szeroki downgrade przywraca też poprawki bezpieczeństwa, które przyniosła aktualizacja, a ta wymiana rzadko jest warta jednego działającego połączenia.