Dwa polecenia generują parę kluczy WireGuard i oba są dostarczane ze standardowymi narzędziami, więc to zadanie nie potrzebuje strony, która oferuje utworzenie klucza za ciebie. To, co się psuje, nigdy nie jest arytmetyką krzywej; to bity uprawnień, miejsce, w którym ląduje plik, i to, co potem jest wysyłane na drugi koniec. Poniższa sekwencja zaczyna się w pustym katalogu, a kończy u peera, który niesie ruch. Przeczytaj ją raz przed uruchomieniem, bo pierwszy wiersz ma znaczenie tylko wtedy, gdy następny wykona się w tej samej powłoce.

Generowanie pary w jednej powłoce

Udokumentowany przepływ pracy ogranicza tworzenie plików, zanim prywatna wartość istnieje, a następnie wyprowadza z niej wartość publiczną. Wszystkie trzy wiersze należą razem do jednej sesji powłoki:

umask 077  # applies to files created next, so keep the next line in this shell
wg genkey | tee privatekey | wg pubkey > publickey
wg pubkey < privatekey  # re-derive and compare with publickey

wg genkey zapisuje 32-bajtowy prywatny klucz Curve25519 w base64; wg pubkey odczytuje go i wyprowadza pasujący klucz publiczny, a tee zachowuje prywatną wartość, przekazując ją dalej przez potok. Ta kolejność jest powodem, dla którego wiersz uprawnień idzie pierwszy, i tego, że wklejenie potoku do drugiego terminala po cichu go gubi. Nazwy plików są przykładowe, a ważne jest to, że oba pliki lądują tam, gdzie kontrolę ma urządzenie będące właścicielem. Jeśli prywatny plik już istnieje z domyślnymi uprawnieniami, chmod 600 privatekey poprawia bieżący plik i nic nie robi z kopiami wykonanymi wcześniej.

Trzymaj prywatną połowę na jednym urządzeniu

Prywatna wartość należy do maszyny, która będzie właścicielem tożsamości, w katalogu, który ta maszyna chroni i który jej kopie zapasowe traktują jako poświadczenie. Nie należy do wspólnego folderu, do wiadomości do samego siebie ani do fragmentu załączonego do zgłoszenia pomocy, a wbudowana kopia czyni plik konfiguracyjny dokładnie tak samo wrażliwym jak klucz. Klucza, który żył w trzech miejscach, nie da się później przemyśleć, i to jest praktyczny powód trzymania go w jednym.

Celowe zniszczenie wycofanego pliku jest częścią tego samego nawyku. Zostawienie go w folderze pobranych, aż ktoś zauważy, nie jest.

Czego operator peera potrzebuje od ciebie

Druga strona potrzebuje publicznej wartości i układu adresów wybranego przez swojego operatora, niczego więcej. Wyślij ten publiczny ciąg kanałem, którego operator oczekuje, a potem potwierdź, do którego wpisu peera został dołączony, zanim ktokolwiek go przetestuje, bo poprawny klucz w niewłaściwej sekcji zawodzi w sposób, który wygląda jak problem z kluczem. Wysyłaj go jako jeden niezawinięty wiersz, bo klucz złamany na dwa wiersze wkleja się do pliku konfiguracyjnego bez skargi i potem nigdy nie pasuje.

Wygenerowanie klucza samo w sobie niczego nie autoryzuje. Peer musi być skonfigurowany tak, aby go akceptował, a krok konfiguracji należy do tego, kto zarządza tym końcem.

Przetestuj parę prawdziwą wymianą

Para kluczy identyfikuje jeden koniec tunelu; nie tworzy trasy, wpisu resolvera, reguły przekazywania ani zezwolenia firewalla. Po przygotowaniu peera przetestuj wymianę, a nie plik: uścisk dłoni, który pojawia się w wg show, adres, który odpowiada wewnątrz tunelu, i jedno żądanie aplikacji zależne od trasy. Ta trójka oddziela zły klucz od dobrego klucza i brakującej ścieżki.

Trzymaj jedną tożsamość na urządzenie, gdy wdrożenie na to pozwala, aby zgubioną jednostkę można było odwołać osobno, zamiast zmuszać wszystkich do ponownego generowania kluczy. Ta decyzja sprawia też, że poniższa procedura wymiany jest bezpieczna w uruchomieniu.

Wymiana klucza bez luki

Wygeneruj zamiennik na urządzeniu, dodaj nowy klucz publiczny jako dodatkowego peera, potwierdź, że niesie ruch, i dopiero potem usuń stary. Działanie w tej kolejności oznacza, że tunel nigdy nie ma chwili bez ważnej tożsamości, a wycofanie to po prostu usunięcie wpisu, który właśnie dodano.

Zachowaj zastąpiony prywatny plik, dopóki nowy peer nie zostanie potwierdzony, a potem zniszcz go celowo. Szybki start WireGuard jest odniesieniem do samych poleceń i jest wystarczająco krótki, by przeczytać go w całości przed rozpoczęciem.

Powiązane artykuły