Jak skonfigurować Wireguard VPN na Linuksie

Jak skonfigurować Wireguard VPN na Linuksie
Zdjęcie laptopa z monitorem komputera stacjonarnego obok niego.

Wireguard to potężny demon wirtualnej sieci prywatnej (VPN) typu open source, który może działać zarówno na komputerach stacjonarnych, jak i urządzeniach mobilnych. Zapewnia szybką i lekką alternatywę dla tradycyjnych rozwiązań VPN, takich jak IPsec i OpenVPN. Tutaj pokazujemy, jak zainstalować Wireguard i utworzyć prostą konfigurację VPN przy użyciu trzech maszyn Linux.

Dlaczego warto wybrać Wireguard jako rozwiązanie VPN?

Jedną z największych zalet Wireguard jest to, że jest to szybki i lekki demon VPN. W przeciwieństwie do tradycyjnych rozwiązań, Wireguard nie dodaje wiele narzutu do Twojej sieci. Powoduje to mniejsze opóźnienie i wysoką ogólną przepustowość w Twoich węzłach.

Terminal pokazujący test iperf3 między dwoma węzłami Wireguard wykazujący wysoką przepustowość.

Kolejną kluczową cechą Wireguard jest to, że jest to moduł wewnątrz jądra Linux. Dzięki temu może działać bez zajmowania dodatkowych zasobów systemowych komputera, co czyni go idealnym wyborem do wdrażania na urządzeniach low-end i SOC.

Terminal pokazujący Wireguard załadowany do jądra Linux.

Na koniec, Wireguard korzysta również z nowoczesnych standardów kryptograficznych i praktyk rozwojowych. Przeszedł również wiele formalnych weryfikacji, które potwierdzają poprawność kodu Wireguard, gwarancje bezpieczeństwa i zdolność do przeciwstawiania się atakom.

Uzyskanie Wireguard

Pierwszym krokiem do skonfigurowania Wireguard na Linuksie jest pobranie jego podstawowych narzędzi z repozytorium dystrybucji. Pozwala to kontrolować wbudowany moduł jądra Wireguard za pomocą poleceń przestrzeni użytkownika.

Aby zainstalować podstawowe narzędzia w Ubuntu i Debianie, uruchom następujące polecenie:

W Fedorze możesz użyć dnfmenedżera pakietów:

pacmanW przypadku Arch Linux podstawowe narzędzia Wireguard można pobrać, uruchamiając :

Potwierdź, że poprawnie zainstalowałeś narzędzia Wireguard, otwierając ekran pomocy:

Terminal pokazujący menu pomocy dla narzędzia przestrzeni użytkownika Wireguard.

Konfigurowanie serwera Wireguard

Założenie: W tym artykule zakładamy, że instalujesz serwer Wireguard w systemie Linux z publicznie dostępnym adresem IPv4. Instrukcje nadal będą działać na serwerze za NAT, ale nie znajdzie on węzłów poza swoją podsiecią.

Dzięki podstawowemu zestawowi narzędzi Wireguard na komputerach z systemem Linux możesz teraz skonfigurować węzeł serwera VPN. Będzie on służył jako brama internetowa dla węzłów klienckich w sieci.

Zacznij od przejścia do katalogu konfiguracji Wireguard i ustawienia domyślnych uprawnień na „tylko root”:

Wygeneruj klucz publiczny i prywatny dla swojego serwera Wireguard:

Utwórz plik konfiguracyjny serwera korzystając z ulubionego edytora tekstu:

Wklej następujący blok kodu do pliku konfiguracyjnego serwera:

Otwórz nową sesję terminala, a następnie wydrukuj prywatny klucz Wireguard swojego serwera:

Skopiuj klucz prywatny serwera do schowka.

Terminal pokazujący proces kopiowania klucza prywatnego serwera w systemie Ubuntu.

Zastąp wartość zmiennej PrivateKeykluczem ze schowka.

Terminal pokazujący prywatny klucz serwera w konfiguracji Wireguard serwera.

Znajdź interfejs sieciowy, który ma dostęp do Internetu, korzystając z polecenia ip:

Terminal podświetlający nazwę interfejsu sieciowego z dostępem do Internetu.

Ustaw wartość flagi -ow obu zmiennych PostUpi PostDownna interfejs z dostępem do Internetu, a następnie zapisz plik konfiguracyjny.

Terminal pokazujący prawidłową nazwę urządzenia w pliku konfiguracyjnym serwera Wireguard.

Otwórz plik serwera „/etc/sysctl.conf” za pomocą ulubionego edytora tekstu:

Przewiń w dół do wiersza zawierającego net.ipv4.ip_forward=1, a następnie usuń znak funta (#) znajdujący się przed nim.

Terminal podświetlający lokalizację opcji przekazywania IPv4 w pliku sysctl.conf.

Załaduj ponownie nową konfigurację sysctl, uruchamiając: sudo sysctl -p.

Terminal pokazujący proces ponownego ładowania pliku sysctl.conf.

Konfigurowanie i podłączanie klienta Wireguard

W tym momencie masz już poprawnie skonfigurowany serwer Wireguard bez żadnych równorzędnych serwerów. Aby go użyć, musisz skonfigurować i podłączyć swojego pierwszego klienta Wireguard.

Przejdź do katalogu konfiguracyjnego Wireguard w systemie klienckim i ustaw jego domyślne uprawnienia:

Wygeneruj parę kluczy Wireguard swojego klienta, używając następującego polecenia:

Utwórz plik konfiguracyjny Wireguard klienta przy użyciu ulubionego edytora tekstu:

Wklej następujący blok kodu do pliku konfiguracyjnego klienta:

Zastąp PrivateKeyzmienną prywatnym kluczem klienta.

Terminal podświetlający klucz prywatny pierwszego klienta Wireguard.

Otwórz sesję terminala serwera Wireguard, a następnie wydrukuj jego klucz publiczny:

Ustaw wartość zmiennej PublicKeyna klucz publiczny swojego serwera.

Terminal podświetlający klucz publiczny serwera Wireguard w pliku konfiguracyjnym drugiego klienta.

Zmień Endpointzmienną na adres IP serwera Wireguard.

Terminal podświetlający adres IP serwera Wireguard.

Zapisz plik konfiguracyjny, a następnie użyj polecenia wg-quick, aby uruchomić klienta Wireguard:

Terminal pokazujący proces uruchamiania demona klienta Wireguard.

Łączenie serwera Wireguard z klientem

Przejdź do sesji terminala serwera Wireguard i otwórz jego plik konfiguracyjny:

Wklej poniższy blok kodu po [Interface]sekcji:

Ustaw PublicKeyzmienną na klucz publiczny swojego klienta Wireguard.

Terminal pokazujący lokalizację bloku [Peer] i podświetlający klucz publiczny klienta.

Zapisz plik konfiguracyjny, a następnie uruchom następujące polecenie, aby uruchomić usługę Wireguard na swoim serwerze:

Dodawanie drugiego klienta do serwera

Jedną z kluczowych cech każdej usługi VPN jest to, że może ona łączyć ze sobą wiele maszyn z różnych sieci. Jest to przydatne, jeśli masz komputery w różnych lokalizacjach lub chcesz hostować prywatny serwer gier dla swoich znajomych.

Aby to zrobić w Wireguard, musisz utworzyć plik konfiguracyjny dla nowego interfejsu VPN na swoim serwerze. Najłatwiejszym sposobem na to jest skopiowanie bieżącej konfiguracji serwera i nadanie kopii nowej nazwy:

Otwórz nowy plik konfiguracyjny za pomocą ulubionego edytora tekstu:

Ustaw ListenPortzmienną na 60102. Zapobiegnie to wszelkim kolizjom portów pomiędzy interfejsami VPN wg0 i wg1.

Terminal podświetlający zmodyfikowaną zmienną ListenPort dla drugiego interfejsu Wireguard.

Przejdź do [Peer]sekcji i zmień AllowedIPszmienną z „10.0.0.2/32” na „10.0.0.3/32”, a następnie zapisz plik konfiguracyjny.

Terminal podświetlający zmodyfikowaną zmienną AllowedIPs dla drugiego klienta Wireguard.

Konfigurowanie drugiego klienta Wireguard

Zaloguj się na drugim komputerze, a następnie przygotuj katalog konfiguracyjny Wireguard:

Wygeneruj nową parę kluczy Wireguard przy użyciu następującego polecenia:

Utwórz nowy plik konfiguracyjny przy użyciu swojego ulubionego edytora tekstu:

Wklej następujący blok kodu do nowego pliku konfiguracyjnego:

Ustaw PrivateKeyzmienną na klucz prywatny drugiego komputera, a następnie zmień PublicKeyzmienną na klucz publiczny swojego serwera.

Terminal podświetlający klucz prywatny drugiego klienta i klucz publiczny serwera Wireguard.

Zastąp zmienną Endpoint adresem IP swojego serwera, a następnie „:60102”.

Terminal podświetlający adres IP serwera Wireguard w konfiguracji drugiego klienta.

Zapisz plik konfiguracyjny, a następnie uruchom klienta Wireguard na drugim komputerze:

Łączenie drugiego klienta z serwerem Wireguard

Zaloguj się ponownie do serwera Wireguard, a następnie otwórz konfigurację interfejsu VPN dla drugiego klienta:

Przewiń w dół do [Peer]sekcji, a następnie zamień PublicKeyzmienną na klucz publiczny drugiego klienta.

Terminal podświetlający klucz publiczny drugiego klienta w pliku konfiguracyjnym wg1 serwera.

Zapisz plik konfiguracyjny, a następnie uruchom drugi interfejs VPN za pomocą polecenia wg-quick:

Sprawdź, czy pierwszy i drugi klient Wireguard wyświetlają się prawidłowo na serwerze, uruchamiając wg.

Terminal pokazujący dwa węzły klienckie komunikujące się z serwerem Wireguard.

Testowanie sieci Wireguard

Mając zarówno serwer, jak i klientów w sieci Wireguard, możesz teraz przetestować łączność i opóźnienie między węzłami. Aby to zrobić, upewnij się, że masz zainstalowane narzędzia diagnostyki sieci w swoim systemie:

W systemie Fedora wystarczy zainstalować tylko kilka curlnarzędzi sieciowych, ponieważ są one dostarczane od razu po instalacji:

W przypadku Arch Linux możesz pacmanzainstalować narzędzia sieciowe i curl:

Zacznij od śledzenia trasy pakietu między dwoma klientami. Poniżej pokazano, jak pakiet IP przechodzi z „10.0.0.2” do „10.0.0.3”:

Terminal pokazujący pomyślne wykonanie polecenia traceroute między dwoma węzłami Wireguard.

Sprawdź, czy którykolwiek z Twoich węzłów ma dostęp do publicznego Internetu, wysyłając polecenie ping na wspólny adres IP:

Terminal pokazujący opóźnienie między siecią Wireguard a witryną zewnętrzną.

Na koniec sprawdź, czy Twoje węzły współdzielą ten sam publiczny adres IP z serwerem Wireguard:

Terminal podświetlający podobny zewnętrzny adres IP na trzech węzłach Wireguard.

Nauka konfiguracji sieci Wireguard w systemie Linux to pierwszy krok w eksploracji fascynującego świata sieci VPN. Zanurz się głęboko i zapoznaj z naszymi typami najlepszych dostawców sieci VPN skoncentrowanych na bezpieczeństwie, których możesz otrzymać już dziś.

Źródło obrazu: Kari Shea przez Unsplash i Wikimedia Commons . Wszystkie zmiany i zrzuty ekranu autorstwa Ramces Red.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *