Skopiowany profil WireGuard: dlaczego oba urządzenia zawodzą
Skopiowany profil duplikuje klucz, a nie urządzenie. Przejrzyj dziennik uzgadniania, potwierdź wspólną tożsamość, a następnie poprawnie wydaj drugi.
Tunel działał na laptopie, więc plik konfiguracyjny trafił na telefon i tablet, a teraz uzgadniania raz są, raz ich nie ma na wszystkich trzech. Nic nie zostało wpisane błędnie i konfiguracja serwera nie została zmieniona. Profil WireGuard nie jest kontem z hasłem, którego może używać kilka urządzeń; to para kluczy, a tylko publiczna połowa identyfikuje partnera. Kopiowanie pliku kopiuje tożsamość, więc serwer próbuje teraz utrzymać jedną relację punktu końcowego dla kilku urządzeń, które wszystkie twierdzą, że są tym samym. Ze strony serwera nie ma drugiego urządzenia do zauważenia, jest tylko partner, którego adres stale się przesuwa.
Zacznij od dziennika uzgadniania na każdym urządzeniu
Otwórz klienta na każdym urządzeniu i zapisz czas ostatniego uzgadniania oraz bieżący punkt końcowy, zanim cokolwiek zmienisz. W zdrowym układzie te wartości pozostają stabilne, dopóki urządzenie jest używane; przy zduplikowanej tożsamości znaczniki czasu występują naprzemiennie, a punkt końcowy zapisany na serwerze może opisywać inne urządzenie niż to, które ma profil. Ta naprzemienność jest sygnaturą i wyjaśnia, dlaczego objaw wygląda na niestabilne połączenie, a nie na błąd konfiguracji. Urządzenia nie są zepsute; przeszkadzają sobie nawzajem.
Czytaj na samych urządzeniach, aby każde obserwacja była powiązana z konkretną maszyną. Znacznik czasu skopiowany z czatu pomocy traci to powiązanie i potem niewiele znaczy.
Potwierdź, czy dwa urządzenia dzielą jedną tożsamość
Porównuj klucze publiczne, nigdy prywatne. Klucz publiczny jest wyprowadzany z prywatnego, więc dwa profile z tym samym kluczem prywatnym dają ten sam klucz publiczny i są dla serwera nierozróżnialne. Jeśli dwa urządzenia zgłaszają ten sam klucz publiczny, sprawa jest rozstrzygnięta i żadne dostrajanie keepalive nie pomoże. Dwa różne klucze z niestabilnymi uzgodnieniami wskazują zupełnie gdzie indziej, dlatego porównanie musi nastąpić przed jakąkolwiek zmianą.
wg show wg0 public-key
wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer
Te polecenia wypisują tylko materiał publiczny i liczniki, a to wszystko, czego potrzebuje rozmowa z pomocą techniczną. Wpis partnera na serwerze z jednym kluczem publicznym i punktem końcowym, który stale przemieszcza się między dwiema sieciami, jest oczekiwanym wynikiem duplikacji, ponieważ uwierzytelniony pakiet z nowego źródła aktualizuje miejsce wysyłania ruchu. Takie zachowanie to protokół działający zgodnie z projektem, dlatego tak łatwo pomylić je z awarią sieci.
Zapewnij drugą tożsamość poprawnie
Wygeneruj nową parę kluczy na urządzeniu, które jej potrzebuje, a następnie dodaj uzyskany klucz publiczny do serwera jako osobnego partnera z własnymi dozwolonymi adresami. Klucz prywatny powinien powstać na urządzeniu i tam pozostać; klucz wygenerowany gdzie indziej i wklejony przeszedł przez co najmniej jedno dodatkowe miejsce, a ta podróż jest teraz częścią historii zaufania.
umask 077
wg genkey > newdevice.key
wg pubkey < newdevice.key
Strona serwera potrzebuje klucza publicznego oraz przypisania dozwolonego adresu, które nie koliduje z pierwotnym urządzeniem. Profil, który zachowuje stary adres tunelu, ale przedstawia nowy klucz, tworzy partnera, którego serwer może zaakceptować, a następnie źle trasować, co jest subtelniejszą awarią niż odrzucone uzgadnianie. Sprawdź przypisanie adresu przed połączeniem, a nie po pierwszej mylącej utracie pakietów.
Wycofaj duplikat bez łamania oryginału
Gdy nowa tożsamość zacznie działać, usuń skopiowany profil z otoczenia pierwotnego urządzenia, zamiast usuwać wpis serwera, którego oryginał nadal używa. Jeśli kopia mogła zostać ujawniona, zamiast tego natychmiast ją unieważnij, a następnie wydaj nową; wygoda nie jest powodem, by zostawiać wspólny sekret w obiegu.
Usługa zarządzana, która naprawdę obsługuje kilka urządzeń na subskrypcję, powie ci o tym i wyda osobne dane logowania ze swojego interfejsu. Ręczne duplikowanie jednego profilu nigdy nie jest tym modelem, nawet gdy marka usługi sugeruje nieograniczoną liczbę urządzeń.
Przetestuj oba urządzenia osobno i razem
Najpierw sprawdź każde urządzenie osobno: uzgadnianie, poruszające się liczniki transferu i cel, do którego dociera tylko tunel. Następnie uruchom oba jednocześnie i obserwuj, jak serwer widzi punkty końcowe; dwa różne klucze powinny dać dwa stabilne wpisy partnerów, a nie jeden skaczący.
Przechowuj nowe klucze publiczne razem z notatkami wdrożeniowymi i zapisuj, które urządzenie ma który. Bez tej listy następna osoba, która skopiuje profil, powtórzy ten sam błąd, a naprzemienne uzgadniania znów zostaną zwalone na sieć.