Kanał sterowania i kanał danych VPN: sprawdź właściwą warstwę
Tunel może negocjować i mimo to nic nie przenosić. Sprawdź, który kanał zawiódł: konfiguracja sterowania, ochrona danych czy trasa i DNS poza oboma.
Klient mówi połączony, serwer widzi partnera, a aplikacja nadal nic nie osiąga. W tym momencie użyteczne pytanie nie brzmi, który szyfr zmienić, ale który kanał zawiódł. OpenVPN nazywa dwie funkcje wprost: kanał sterowania, który negocjuje sesję i nią zarządza, oraz kanał danych, który przenosi chroniony ruch. IKEv2 wyraża podobny podział przez asocjację IKE i asocjację CHILD. Wykonaj poniższe kontrole po kolei, ponieważ poprawka ścieżki danych zastosowana do usterki ścieżki sterowania marnuje okno zmian.
Nazwij kanał, zanim zaczniesz go debugować
Strona sterowania negocjuje materiał zabezpieczeń, uwierzytelnia partnerów i zarządza połączeniem. Strona danych przenosi wybrany ruch, gdy istnieje wymagany stan.
Zawodzą inaczej. Awaria sterowania zwykle zostawia cię całkiem bez użytecznej sesji albo z sesją, która w pętli negocjuje od nowa. Awaria danych zostawia sesję, która wygląda zdrowo, podczas gdy pakiety są odrzucane, źle kierowane lub chronione parametrami, których druga strona nie zaakceptuje. Linia logu, którą czytasz, mówi, w którym z dwóch przypadków jesteś, więc przeczytaj etykietę przed tekstem błędu.
Sprawdź wymianę sterowania
Potwierdź, że uzgadnianie kończy się i że obie strony zgadzają się co do transportu, wersji TLS i metody uwierzytelniania. Logi OpenVPN drukują osobne linie kanału sterowania i kanału danych, a to w linii sterowania pojawia się niezgodność certyfikatu, wersji TLS lub tls-crypt.
Jeśli wymiana sterowania zawiedzie, sprawdź osiągalny port, łańcuch certyfikatów i jego daty ważności, zegar systemowy, nakładanie się szyfrów klienta i serwera oraz każdy klucz tls-auth lub tls-crypt. Duży łańcuch certyfikatów może też zawieść na MTU ścieżki, zanim zakończy się jakiekolwiek uwierzytelnianie, co wygląda jak przekroczenie czasu, a nie błąd kryptograficzny.
Naprawiaj usterki sterowania ustawieniami sterowania. Podniesienie szyfru danych albo złagodzenie polityki uwierzytelniania danych nie zakończy uzgadniania, które nigdy nie przeszło wymiany certyfikatów.
Sprawdź kanał danych osobno
Gdy sesja stoi, potwierdź wynegocjowany szyfr i tryb danych, wyprowadzanie kluczy i zachowanie przy odświeżaniu klucza. W OpenVPN linia kanału danych podaje szyfr i rozmiar klucza, które faktycznie zainicjowano, i mogą się one różnić od pierwszego szyfru w profilu.
Następnie sprawdź, co sesja zainstalowała. PUSH_REPLY może dodać trasy, serwer DNS i dyrektywę redirect-gateway, a każde z nich może wysłać ruch tam, gdzie aplikacja nie może go użyć. W IKEv2 równoważne pytanie brzmi, czy selektory asocjacji CHILD pasują do adresów w rzeczywistym przepływie.
tls-auth i tls-crypt należą do kanału sterowania. Uwierzytelniają lub szyfrują uzgadnianie i nie wybierają szyfru danych aplikacji. Jeśli dodasz jeden z nich, oczekując zmiany ścieżki danych, jedyną rzeczą, którą zmieniłeś, jest uzgadnianie.
Powiąż nazwy z IKEv2 i OpenVPN
IKEv2 ma asocjację bezpieczeństwa IKE i jedną lub więcej asocjacji CHILD. Asocjacja IKE przenosi wymiany sterowania; asocjacja CHILD przenosi chroniony ruch i jej selektory. Są negocjowane i otrzymują nowe klucze według osobnych harmonogramów, więc jedna może być zdrowa, gdy druga nie jest.
ESP nie ma w środku kanału sterowania w stylu TLS. Protokołem sterowania jest IKE, a ESP jest chronionym ładunkiem. Nazywanie ESP kanałem danych to luźny skrót, który staje się mylący przy czytaniu zrzutu pakietów, ponieważ zrzut pokazuje komunikaty IKE i pakiety ESP jako różne protokoły na łączu.
Trzymaj przyporządkowanie jasno w notatkach: kanał sterowania OpenVPN i IKE SA to strona zarządzania, kanał danych OpenVPN i CHILD SA to strona ruchu, a implementacje nie są wymienne, nawet gdy podział wygląda podobnie.
Przestań zmieniać niewłaściwe ustawienie
Przejdź ścieżkę w jednym kierunku: wymiana sterowania, ochrona danych, przekazywanie, a potem rozwiązywanie nazw. Zatrzymaj się na pierwszym etapie, który zawiedzie, i napraw tylko ten etap. Połączona sesja z działającym pingiem do bramy, ale bez ruchu aplikacji, to problem przekazywania lub selektorów, a nie uzgadniania.
Zapisz dowody dla każdego etapu osobno w zgłoszeniu: linię logu sterowania, wynegocjowane parametry danych, zainstalowane trasy i jedno prawdziwe żądanie. Ta struktura nie pozwala osłabić działającej weryfikacji tożsamości, by naprawić późniejszy problem z routingiem, którego nigdy nie spowodowała, i nie pozwala sprzedać zmiany szyfru danych jako naprawy błędu certyfikatu.
Dokumentacja protokołu OpenVPN jest odniesieniem dla podziału na sterowanie i dane; użyj jej, gdy interfejs dostawcy używa innych słów na te same dwie funkcje.