Instalacja serwera VPN na routerze z OpenWrt (WireGuard)

Zawarto┼Ť─ç

Je┼╝eli posiadasz w┼éasny router z oprogramowaniem OpenWrt, zapewne nie raz my┼Ťla┼ée┼Ť jak ustawi─ç na nim serwer VPN, aby spoza domu/biura po┼é─ůczy─ç si─Ö z nasz─ů sieci─ů lokaln─ů i mie─ç dost─Öp do lokalnych danych tj. dysk sieciowy czy te┼╝ drukarka.

W przypadku OpenWrt, je┼╝eli zaczniesz szuka─ç informacji o VPN, od razu natrafisz na informacj─Ö o OpenVPN.

Wst─Öpnie my┼Ťla┼éem o stworzeniu posta odno┼Ťnie instalacji OpenVPN na routerze z OpenWrt, jednak┼╝e im bardziej w las, tym wi─Öcej drzew. Konfiguracja mo┼╝e i zaczyna si─Ö prosto. Mo┼╝na doda─ç nawet interfejs z poziomu przegl─ůdarki, jednak┼╝e wszystko jest dalekie od prostoty i przejrzysto┼Ťci. B─Öd─ůc w po┼éowie mojego posta, stwierdzi┼éem, ┼╝e dalsze jego tworzenie wprowadzi wi─Öcej komplikacji, ni┼╝ pocz─ůtkowo za┼éo┼╝y┼éem. W tym momencie przypomnia┼éem sobie o WireGuard.

Zar├│wno OpenVPN oraz WireGuard nie s─ů standardowo dost─Öpne w systemach operacyjnych (Windows, macOS, jak r├│wnie┼╝ Android czy iOS). O obu przypadkach nale┼╝y u┼╝y─ç dedykowanej aplikacji w celu nawi─ůzania po┼é─ůczenia.

WireGuard w por├│wnaniu z OpenVPN wygra┼é dla mnie tym, ┼╝e jego konfiguracja i zarz─ůdzanie jest znacznie prostsze. Opr├│cz tego jest on znacznie szybszy, oferuje wy┼╝szy poziom bezpiecze┼ästwa oraz w przypadku urz─ůdze┼ä mobilnych, nie zjada naszej baterii, tak jak to robi OpenVPN.

Strona VPN Ranks zestawi┼éa kompleksowe por├│wnanie obu rozwi─ůza┼ä, wi─Öc je┼╝eli jeste┼Ť zainteresowany, odsy┼éam do niej.

O ile w przypadku OpenVPN, szereg komend zwi─ůzanych z ustawieniem serwera musia┼ée┼Ť wykonywa─ç z poziomu terminala SSH, w przypadku WireGuard, mo┼╝emy ustawi─ç nasz serwer z jego minimalnym wykorzystaniem a reszt─Ö dokona─ç przez przegl─ůdark─Ö internetow─ů. Wszystko w spos├│b przyjazny u┼╝ytkownikowi.

A wi─Öc zacznijmyÔÇŽ

Sprawdzone w wersji OpenWrt 21.02 oraz OpenWrt 22.03

WireGuard i OpenWrt (Serwer) #

W pierwszej kolejno┼Ťci musimy zainstalowa─ç kilka pakiet├│w do samego WireGuard oraz tych, dodaj─ůcych mo┼╝liwo┼Ť─ç jego zarz─ůdzania z poziomu przegl─ůdarki internetowej.

Z poziomu po┼é─ůczenia z naszym routerem przez SSH wydajemy poni┼╝sze komendy.

W celu zaktualizowania informacji o pakietach:

opkg update

Oraz w celu instalacji pakiet├│w wykonujemy nast─Öpuj─ůc─ů komend─Ö:

opkg install luci-app-wireguard luci-proto-wireguard kmod-wireguard wireguard-tools

Mo┼╝emy tego r├│wnie┼╝ dokona─ç z poziomu przegl─ůdarki internetowej, loguj─ůc si─Ö na naszym routerze i przechodz─ůc do System > Software (Oprogramowanie)

OpenWrt - Instalacja WireGuard. System (System) > Software (Oprogramowanie)

I tak przy pakietach luci-app-wireguard luci-proto-wireguard kmod-wireguard wireguard-tools klikamy na przyciski Install (Instaluj).

OpenWrt - Instalacja WireGuard. Aktualizacja i instalacja pakiet├│w.

Jeżeli nie widzisz odpowiednich pakietów po wprowadzeniu słowa wireguard w pasku wyszukiwania, kliknij przycisk Update list w celu zaktualizowania informacji od dostępnych pakietach (wymagane po każdym uruchomieniu routera).


Jako ┼╝e WireGuard wykorzystuje do swojej funkcjonalno┼Ťci elementy z poziomu kernelÔÇÖa, aby wszystko zosta┼éo poprawnie za┼éadowane na tym etapie, musimy ponownie uruchomi─ç nasz router

reboot

Nie przechod┼║ dalej je┼╝eli nie uruchomi┼ée┼Ť ponownie routera po zainstalowaniu pakiet├│w.


Nim przejdziemy dalej, musimy utworzy─ç unikalny klucz dla naszego serwera, kt├│ry b─Ödzie niezb─Ödny do nawi─ůzania po┼é─ůczenia, oraz klucz dla pierwszego klienta (zwanego peer).

Tworzymy folder do przechowania klucza serwera

mkdir -p /etc/wireguard

Generujemy klucz serwera

wg genkey | tee /etc/wireguard/server-privatekey | wg pubkey > /etc/wireguard/server-publickey

Generujemy klucz pierwszego klienta

wg genkey | tee client1-privatekey | wg pubkey > client1-publickey

Teraz mo┼╝emy przej┼Ť─ç dalej.


Nast─Öpnym krokiem, z poziomu przegl─ůdarki jest utworzenie interfejsu WireGuard, podobnie jak mamy ustawione po┼é─ůczenie lan0, wan0 czy inne ustawienia sieciowe routera.

Przechodzimy do Network > Interfaces i dodajemy nowy interfejs przy pomocy przycisku Add new interface.

Open

openwrt wireguard screen 4

Nazywamy nasz interfejs np. wg0 oraz jako protokuł (Protocol) wybieramy WireGuard VPN. Klikamy na Create interface (Utwórz interfejs)

openwrt wireguard screen 5

W nast─Öpnym kroku potrzebowa─ç b─Ödziemy nieco informacji.

W pierwszej kolejno┼Ťci zobaczymy pod┼Ťwietlone na czerwono pole z brakuj─ůcym kluczem.

Pod┼Ťwietlone na czerwono pole z brakuj─ůcym kluczem w ustawieniach WireGuard na OpenWrt

Z poziomu terminala odczytujemy klucz prywatny (Private Key) naszego serwera:

tail /etc/wireguard/server-privatekey

Kopiujemy klucz i wklejamy go po stronie przegl─ůdarki.

Port (Listen port), na kt├│rym WireGuard b─Ödzie nas┼éuchiwa─ç, ustawiamy wg. naszych upodoba┼ä, np. 1234. W przeciwnym wypadku program b─Ödzie wybiera┼é losowy port za ka┼╝dym razem, jak uruchomi si─Ö nasz router, a to mo┼╝e p├│┼║niej r├│┼╝nie wp┼éywa─ç na konfiguracje w urz─ůdzeniach, z kt├│rych b─Ödziemy si─Ö ┼é─ůczyli.

Dalej wprowadzamy lokalny adres IP naszego serwera. Tutaj nie musimy si─Ö przejmowa─ç, aby ten adres by┼é taki, jak nasza sie─ç lokalna. Na dalszym etapie ustawimy, aby mimo tego, mo┼╝na by┼éo po┼é─ůczy─ç si─Ö z lokalnymi adresami, kt├│re domy┼Ťlnie b─Öd─ů w zakresie 192.168.0.x

W moim przypadku wybrałem wprowadzenie 10.0.0.1/24

Następnie przechodzimy do zakładki Firewall Settings (Ustawienie zapory sieciowej)

Z pozycji Create / Assign firewall-zone wybieramy nasz─ů sie─ç LAN, dzi─Öki czemu b─Ödziemy mogli widzie─ç i po┼é─ůczy─ç si─Ö z naszymi urz─ůdzeniami w sieci lokalnej.

Dodanie WireGuard do reguły sieci lokalnej LAN w OpenWrt

W ostatniej zak┼éadce Peers ustawiamy naszych klient├│w, kt├│re mog─ů po┼é─ůczy─ç si─Ö serwerem. Tutaj przyda nam si─Ö klucz klienta, kt├│ry wygenerowali┼Ťmy wcze┼Ťniej.

I tak w polu nazwa, wpisujemy np. client1

W polu Public Key wklejamy klucz klienta, kt├│ry odczytamy z poziomu terminala za pomoc─ů komendy:

tail client1-publickey

Dalej, Allowed IPs wprowadzamy statyczny adres, kt├│ry b─Ödzie u┼╝ywany przez naszego klienta, a kt├│ry jest analogiczny do adresu IP naszego serwera (10.0.0.1/24). W moim przypadku b─Ödzie to 10.0.0.2/32

Zwr├│─ç uwag─Ö, ┼╝e po stronie routera, adres naszego klienta jest w masce /32.

Zaznaczamy r├│wnie┼╝ Route Allowed IPs

Je┼╝eli posiadamy wi─Öcej ni┼╝ jedno po┼é─ůczenie internetowe ustawione za pomoc─ů mwan3 (tak jak opisa┼éem tutaj) pozostaw NIE zaznaczone Route Allowed IPs.

Oraz w Persistent Keep Alive wprowadzamy warto┼Ť─ç 25

Dodawanie klienta (Peer) do konfiguracji WireGuard w OpenWrt

Wybieramy opcj─Ö Save (Zapisz), po czym dalej jeszcze raz Save & Apply (Zapisz i zastosuj).

Zapisz i zastosuj wprowadzone zmiany w konfiguracji WireGuard na OpenWrt

I tak mamy uruchomiony serwer VPN bazuj─ůcy na WireGuard.

Je┼╝eli na dalszym etapie b─Ödziemy dodawa─ç nowych klient├│w (Peers), musimy pami─Öta─ç r├│wnie┼╝ o ponownym uruchomieniu serwera WireGuard przy pomocy przycisku Restart.

Aby sprawdzi─ç status naszego serwera, przechodzimy z poziomy przegl─ůdarki do Status > Wireguard.

Sprawdzamy stan naszego serwera WireGuard na OpenWrt

Na tej stronie zobaczymy nasz klucz publiczny (Public Key), który będzie nam potrzebny na dalszym etapie, oraz port (Listen Port), na którym działa usługa.

Status serwera WireGuard na OpenWrt z zamaskowanymi kluczami

Jak zauważysz tutaj, nasz router obsługuje wymianę konfiguracji (ustawienie klienta) z wykorzystaniem kodów QR. Jeżeli chcesz się tym pobawić, musisz doinstalować pakiet na swoim routerze:

opkg install qrencode

Z tego, co zauważyłem, kod QR nie przekazuje wszystkich niezbędnych danych do konfiguracyjnych, więc i tak musimy nieco je pozmieniać, więc w tym przypadku dałem sobie z tym spokój.


Aby┼Ťmy mogli po┼é─ůczy─ç si─Ö z naszym routerem po porcie 1234/udp, musimy zezwoli─ç na to z poziomu zapory sieciowej (Firewall). W tym celu dodajemy z poziomu terminala poni┼╝sze komendy:

uci add firewall rule
uci set firewall.@rule[-1].src="*"
uci set firewall.@rule[-1].target="ACCEPT"
uci set firewall.@rule[-1].proto="udp"
uci set firewall.@rule[-1].dest_port="1234"
uci set firewall.@rule[-1].name="Allow-Wireguard-Inbound"
uci commit firewall

Oczywi┼Ťcie, port 1234 jest taki, jak wybrali┼Ťmy wcze┼Ťniej.

Nast─Öpnie uruchamiamy ponownie zapor─Ö sieciow─ů (Firewall)

/etc/init.d/firewall restart

Mo┼╝emy to dokona─ç r├│wnie┼╝ z poziomu przegl─ůdarki, w├│wczas przechodzimy do Network > Firewall

Przechodzimy do zakładki Sieć > Zapora sieciowa z menu OpenWrt

W zak┼éadce Traffic Rules dodajemy now─ů regu┼é─Ö, u┼╝ywaj─ůc przycisku Add na dole strony. Nasz─ů regu┼ék─Ö dodajemy analogicznie do poni┼╝szych zrzut├│w ekranowych.

Dodajemy regułę ruchu w ustawieniach Firewall na OpenWrt

Klikamy przycisk Add aby doda─ç now─ů regu┼é─Ö

Wypełniamy niezbędne pola w nowej regule zapory sieciowej

Zapisujemy nasz─ů regu┼é─Ö WireGuard w ustawieniach Firewall na OpenWrt


Jeżeli chcemy dodać obsługę IPv6 po stronie serwera oraz klienta, oprócz adresu serwera 10.0.0.1/24 na odpowiednim etapie konfiguracji dodajemy również fd86::1/64.

Analogicznie dla klienta (Peer) dodajemy przy 10.0.0.2/32 r├│wnie┼╝ fd86::2/128.

Zwr├│─ç uwag─Ö, ┼╝e po stronie routera, adres naszego klienta jest w masce /32 (dla IPv4) oraz /128 (dla IPv6).


WireGuard i OpenWrt (Klient) #

Przysz┼éa pora na ustawienie klienta (peer), czyli urz─ůdzenia, kt├│re b─Ödzie si─Ö ┼é─ůczy─ç z naszym serwerem.

Opiszę do na przykładzie aplikacji na iPhone (iOS). W innych systemach operacyjnych ustawienie jest analogiczne.

Pobieramy aplikacj─Ö WireGuard z AppStore.

Analogicznie, je┼╝eli chodzi o Sklep Play.

Po uruchomieniu aplikacji klikamy na przycisk Add a tunnel.

Dodanie klienta (peer) w aplikacji WireGuard na iPhone (iOS)

Jako ┼╝e rozpoczynamy wszystko od pocz─ůtku, wybieramy Create from scratch

I tak rozpoczynamy wprowadzanie naszej konfiguracji, zaczynaj─ůc od:

Nazwy (Name): test

Klucza prywatnego (Private key): {wklej}

To nasz klucz client1-privatekey wygenerowany na pocz─ůtku:

tail client1-privatekey

Jak zauwa┼╝ysz, pole klucza publicznego (Publick key) zostanie automatyczne wype┼énione. Mo┼╝emy to zweryfikowa─ç, z tym co wygenerowali┼Ťmy na pocz─ůtku:

tail client1-publickey

Adresy (Addresses): 10.0.0.2/24

Tutaj wprowadzamy adres IP klienta, kt├│ry r├│wnie┼╝ ustawili┼Ťmy po stronie naszego serwera. Je┼╝eli dodali┼Ťmy obs┼éug─Ö IPv6, to wprowadzamy 10.0.0.2/24, fd86::2/64

Adres serwera nazw (DNS servers): 192.168.1.1

Gdzie 192.168.1.1 to lokalny adres IP naszego routera.

Tak dodali┼Ťmy klucze klienta. Teraz trzeba doda─ç informacj─Ö o serwerze, z kt├│rym si─Ö b─Ödziemy ┼é─ůczy─ç.

Dalej klikamy na Add peer, aby doda─ç informacj─Ö o naszym serwerze.

W polu klucza publicznego (Public key) wprowadzamy klucz naszego serwera, kt├│ry odczytamy z poziomu terminala:

tail /etc/wireguard/server-publickey

Endpoint: [zewn─ÖtrznyIP]:[port]

Je┼╝eli nasz router posiada sta┼éy, zewn─Ötrzny adres IP, wprowadzamy go tutaj oraz precyzujemy, przez jaki port (ustalony wcze┼Ťniej) b─Ödzie odbywa─ç si─Ö po┼é─ůczenie. Np.: 123.34.45.56:1234, gdzie 123.34.45.56 to adres IP, 1234 to nasz port.

W polu dozwolone adresy IP (Allowed IPs): 0.0.0.0/0

Pozwoli to nam widzie─ç urz─ůdzenia w sieci lokalnej.

Je┼╝eli dodali┼Ťmy obs┼éug─Ö IPv6, to wprowadzamy 0.0.0.0/0, ::/0

Persistent keepalive: 25

Po czym zapisujemy (Save) nasz─ů konfiguracj─Ö.

Na ty etapie nasz telefon zapyta si─Ö o mo┼╝liwo┼Ť─ç dodania konfiguracji VPN do ustawie┼ä, na co oczywi┼Ťcie zezwalamy.

Je┼╝eli wszystko wykonali┼Ťmy prawid┼éowo, pozostaje nam wykonanie po┼é─ůczenia i wszystko powinno dzia┼éa─ç. Aby to sprawdzi─ç, przechodzimy do ustawie┼ä (Settings) programu WireGuard na naszym urz─ůdzeniu i klikamy w opcj─Ö View log, gdzie powinni┼Ťmy zobaczy─ç czy wszystko dzia┼éa.

Sprawdzenie stanu naszego po┼é─ůczenia w Logach aplikacji wireGuard na iPhone (iOS)

Otwieramy r├│wnie┼╝ nasz─ů przegl─ůdark─Ö i w Google wpisujemy myip i sprawdzamy, czy zwraca to samo, co w przypadku, gdy jeste┼Ťmy po┼é─ůczeni z nasz─ů lokaln─ů sieci─ů.

Po stronie naszego routera, z poziomu przegl─ůdarki mo┼╝emy r├│wnie┼╝ zobaczy─ç w WireGuard Status, ┼╝e nasze po┼é─ůczenie dzia┼éa i dane w─Ödruj─ů pomi─Ödzy urz─ůdzeniami.

Widoczne po┼é─ůczenie klienta po stronie serwera WireGuard na routerze z OpenWrt

Je┼╝eli natomiast co┼Ť nie dzia┼éa, musimy sprawdzi─ç, czy nasz Firewall na routerze jest skonfigurowany prawid┼éowo (patrz powy┼╝ej) oraz czy wsz─Ödzie wprowadzili┼Ťmy prawid┼éowe klucze.

Aby za ka┼╝dym razem, gdy b─Ödziemy ustawia─ç nasze urz─ůdzenie do po┼é─ůczenia z WireGuard nie wpisywa─ç wszystko od podstaw, mo┼╝emy z poziomu ustawie┼ä (Settings) zapisa─ç nasz─ů konfiguracj─Ö do pliku. Przy ponownej konfiguracji, mo┼╝emy te ustawienia zimportowa─ç.


Dodanie kolejnych klient├│w (Peers) odbywa si─Ö analogicznie, poprzez wygenerowanie kluczy:

wg genkey | tee client2-privatekey | wg pubkey > client2-publickey

Nast─Öpnie, w ustawieniach interfejsu wg0 dodajemy kolejnego Peer.

Nie zapomnijmy zapisać naszych ustawień oraz zresetować naszego interfejsu.

I to by było na tyle.

Nim przejdziemy dalej, warto zapisa─ç server-privatekey oraz server-publickey gdzie┼Ť w bezpiecznej lokalizacji razem z kluczami klient├│w client1-privatekey, oraz client1-publickey.


Dodawanie kolejnego klienta (peer) #

Mimo ┼╝e dodawanie kolejnego klienta jest analogiczne, otrzyma┼éem zapytania jak to zrobi─ç, co jest po cz─Ö┼Ťci zrozumia┼ée. Ma┼éy b┼é─ůd w kluczach oraz adresach IP mo┼╝e powodowa─ç to, ┼╝e jeden klient (peer) dzia┼éa a inny nie.

W przypadku dodawania kolejnych klientów należy pamiętać, że klucz prywatny (Private Key) oraz publiczny (Public Key) dla serwera mamy już wygenerowany i ustawiony w naszym wirtualnym interfejsie (wg0), więc nie musimy go ponownie generować. Cała metoda odbywa się na wygenerowaniu kluczy dla nowego użytkownika, dodanie ich do interfejsu WireGuard (wg0) po stronie routera oraz odpowiednie skonfigurowanie oprogramowania klienta.

Oto jak, maj─ůc ustawionego pierwszego klienta (peer), doda┼éem kolejnego.

Zaczynamy od wygenerowania kluczy dla nowego klienta z poziomu SSH naszego routera.

wg genkey | tee client2-privatekey | wg pubkey > client2-publickey

Dodajemy klienta (peer) oraz klucze do konfiguracji routera.

Przechodzimy do Network > Interfaces i edytujemy nasz interface wg0.

WireGuard na OpenWrt - Edutujemy interfejs wg0 aby doda─ç nowego klienta peer

Na kolejnym etapie, przechodzimy do zakładki Peers. Jako, że pierwszy klient jest już ustawiony, przesuwamy stronę w dół i klikamy na przycisk Add peer.

WireGuard na OpenWrt - Dodajemy kolejnego klienta klikaj─ůc przycisk Add peer

Podobnie jak poprzednio, ustawiamy Description (client2) i w pole Public Key wklejamy nowo wygenerowany klucz, kt├│ry odczytamy komend─ů:

tail client2-publickey

W polu Allowed IPs wprowadzamy nast─Öpny wolny adres IP:

10.0.0.3/32
fd86::3/128 (je┼╝eli dodajemy r├│wnie┼╝ IPv6)

Zwr├│─ç uwag─Ö, ┼╝e po stronie routera, adres naszego klienta jest w masce /32 (dla IPv4) oraz /128 (dla IPv6).

Zaznaczmy Route Allowed IPs (je┼╝eli mamy tylko jedno po┼é─ůczenie internetowe) oraz wprowadzamy w Persistent Keep Alive warto┼Ť─ç 25.

Po czym zapisujemy (Save) nasze ustawienie i na dalszym etapie potwierdzamy wprowadzone zmiany w konfiguracji, klikaj─ůc na Zapisz i Zastosuj (Save & Apply).

Teraz musimy jeszcze uruchomi─ç ponownie interface wg0 za pomoc─ů przycisku Restart.

WireGuard na OpenWrt - Po dodaniu klienta zapisujemy zmiany i uruchamiamy ponownie interfejs wg0

To, czy wszystko dzia┼éa oraz, czy nowy klient (peer) zosta┼é dodany prawid┼éowo, sprawdzimy, przechodz─ůc do Status > WireGuard Status. Powinni┼Ťmy zobaczy─ç tam klucz publiczny naszego serwera (w pozycji Configuration) oraz oba peer-y.

Sprawdzamy stan serwera oraz klient├│w z ustawieniach OpenWrt

Teraz przechodzimy do ustawienia klienta w aplikacji.

W przypadku aplikacji na iOS wybieramy Create from scratch, analogicznie jak w pierwszym przykładzie powyżej.

Wprowadzamy nazw─Ö (Name) jako client2 oraz wklejamy Private key, kt├│ry odczytamy z terminala:

tail client2-privatekey

Public key, podobnie jak w pierwszym przykładzie powinien zostać automatycznie uzupełniony i powinien być taki sam jak:

tail client2-publickey

W polu Addresses wstawiamy

10.0.0.3/24

lub wraz z IPv6

10.0.0.3/24, fd86::3/64

Adres serwera nazw (DNS servers): 192.168.1.1

Dalej klikamy na Add peer, aby doda─ç informacj─Ö o naszym serwerze.

Tutaj ponawiamy wszystko tak jak w pierwszym przykładzie.

tail /etc/wireguard/server-publickey

Ten sam Endpoint, Allowed IPs i Persistent keepalive.


Jednak┼╝e, jak zauwa┼╝y┼éem, nie ka┼╝da aplikacja ma mo┼╝liwo┼Ť─ç ustawienia wszystkiego od podstaw. W przypadku WireGuard na macOS, liczba opcji jest ograniczona do zimportowania ustawie┼ä lub dodanie pustego tunelu Add empty tunnel.

Dodanie klienta WireGuard z poziomy aplikacji na macOS

Po klikni─Öciu Add empty tunnel zobaczymy plik konfiguracyjny zawieraj─ůcy wygenerowany klucz publiczny (Public key) oraz klucz prywatny (Private key).

Dodanie konfiguracji klienta w aplikacji WireGuard na macOS

Mo┼╝emy u┼╝y─ç te klucze, dodaj─ůc je do naszego interfejsu w zak┼éadce Peers lub zmieniaj─ůc Private key na klucz wygenerowany wcze┼Ťniej:

tail client2-privatekey

Zobaczymy, ┼╝e Public key r├│wnie┼╝ si─Ö zmieni.

To jeszcze nie wszystko!

W przypadku aplikacji na iOS wprowadzili┼Ťmy r├│wnie┼╝ Public key naszego serwera, adres IP klienta (Adresses), serwer nazw (DNS servers), Endpoint, Allowed IPs oraz Persistent keepalive.

Tutaj musimy to zrobi─ç bardziej manualnie. Nasza konfiguracja b─Ödzie wygl─ůda─ç nast─Öpuj─ůco:

Konfiguracja klienta w aplikacji WireGuard na macOS

Po wci┼Ťni─Öciu przycisku zapisz (Save), poproszeni zostaniemy przez system macOS o dodanie odpowiedniego profilu VPN do konfiguracji.

I tak pozostanie nam przetestowanie, czy wszystko dzia┼é klikaj─ůc na przycisk Activate.

Zapisujemy dodanego klienta w aplikacji WireGuard na macOS i aktywujemy przy pomocy przycisku Activate

Je┼╝eli zrobili┼Ťmy wszystko poprawnie, powinni┼Ťmy si─Ö po┼é─ůczy─ç bez problemu i wszystko powinno zacz─ů─ç dzia┼éa─ç.

Mam nadzieje, ┼╝e to pomo┼╝e wam w przypadku dodawania dodatkowych klient├│w (peer├│w).


Logo WireGuard oraz IPv6

WireGuard i tunel IPv6 #

Je┼╝eli doda┼ée┼Ť do swojego po┼é─ůczenia internetowego (kt├│re nie obs┼éuguje natywnie) po┼é─ůczenie IPv6 za pomoc─ů tunelu z wykorzystaniem Hurricane Electric Free IPv6 Tunnel Broker tak jak ja wg tego wpisu, zapewne zastanawiasz si─Ö jak skonfigurowa─ç serwer WireGuard do obs┼éugi tego oto rozwi─ůzania.

Ot├│┼╝ powy┼╝szy opis dodaje obs┼éug─Ö lokalnego IPv6, kt├│ra dzia┼éa w obr─Öbie routera, ale nie obs┼éuguje ruchu wychodz─ůcego (do internetu), nawet gdy IPv6 jest dost─Öpne. Ca┼éy ruch odbywa si─Ö wi─Öc tylko i wy┼é─ůcznie z wykorzystaniem IPv4.

Mo┼╝na to sprawdzi─ç, wchodz─ůc na stron─Ö https://test-ipv6.com/ z poziomu sieci lokalnej po po┼é─ůczeniu z WireGuard.

Ot├│┼╝ istnieje mo┼╝liwo┼Ť─ç dodania obs┼éugi IPv6! Co oczywi┼Ťcie zrobimy!

Zalet─ů tego rozwi─ůzania jest to, ┼╝e w internecie b─Ödziemy nie dosy─ç, ┼╝e widziani z wykorzystaniem zewn─Ötrznego adresu IP routera (IPv4), to jeszcze mo┼╝na przypisa─ç zewn─Ötrzny, indywidualny adres IPv6 bezpo┼Ťrednio do naszego urz─ůdzenia pod┼é─ůczonego do VPN!

Mimo tego, ┼╝e ka┼╝dy klient WireGuard w internecie b─Ödzie widziany pod jednym IP w wersji 4 (IPv4), to w wersji 6 (IPv6) ka┼╝de urz─ůdzenie b─Ödzie mia┼éo indywidualny adres! Ca┼éa magia IPv6 (nie potrzeba przekierowywania port├│w itp).

Na pocz─ůtku musimy pozmienia─ç ustawienia IPv6, kt├│re wprowadzili┼Ťmy, czyli tam, gdzie mamy fd86:: musimy zast─ůpi─ç tak, aby pasowa┼é nam do prefiksu naszego interfejsu WAN6. Musimy to zrobi─ç zar├│wno po stronie routera, w konfiguracji serwera WireGuard oraz w ustawieniach Peer-├│w, jak r├│wnie┼╝ po stronie klient├│w (pliku konfiguracyjnym).

W przypadku serwera (w tym ustawienia klient├│w - Peers - po stronie serwera), zmiany dokonujemy przez przegl─ůdark─Ö internetow─ů, po czym restartujemy nasz interfejs wg0.

W przypadku klient├│w (Peers), zmiany dokonujemy w pliku konfiguracyjnym, po czym importujemy go do aplikacji, lub te┼╝ edytujemy ka┼╝dy profil z osobna na ka┼╝dym z urz─ůdze┼ä.

Aby zachowa─ç zbie┼╝no┼Ť─ç z obecn─ů konfiguracj─ů adres├│w IP, czyli 10.0.0.1 dla serwera i kolejne numerki dla klient├│w, adres IPv6 zbudujemy na tej samej zasadzie.

Korzystaj─ůc z kalkulatora IPv4 do IPv6 dla 10.0.0.1 otrzymamy na przyk┼éad:

0:0:0:0:0:ffff:a00:1

Pierwsze 4 zera (0:0:0:0:) zmienimy na prefix sieci, kt├│ry otrzymali┼Ťmy dla naszego tunelu.

Dla przyk┼éadu, je┼╝eli otrzymali┼Ťmy w Routed IPv6 Prefixes co┼Ť takiego:

2001:470:____:5cb::/64

Pocz─ůtek ÔÇö prefix 2001:470:____:5cb: b─Ödzie sta┼éy, a ka┼╝dy z lokalnych adres├│w dostanie 0:ffff:a00:1, przy czym ostatnia cyfra b─Ödzie si─Ö zmienia─ç. 1 dla serwera, 2 dla pierwszego klienta i tak dalej.

I tak, zmieniamy w ustawieniach serwera
fd86::1/64 na 2001:470:____:5cb:0:ffff:a00:1/64

Dla pierwszego Peera
fd86::2/128 na 2001:470:____:5cb:0:ffff:a00:2/128

Po stronie klienta, w aplikacji WireGuard, dla pierwszego klienta gdzie mamy:
10.0.0.2/24, fd86::2/64 zmieniamy na 10.0.0.2/24, 2001:470:____:5cb:0:ffff:a00:2/64

Pozycja :____: została ocenzurowana z pełnego (aktualnego) prefixu.

**0:ffff:a00:1 ** jest przykładowym adresem i zalecam jego nieużywanie, a wybranie własnego unikalnego. Jeżeli nie wiesz, czy wybrany przez ciebie adres jest poprawny, wraz z prefiksem poddaj go walidacji przy wykorzystaniu, chociażby tego narzędzia.

Je┼╝eli wszystko wykonali┼Ťmy prawid┼éowo, w├│wczas po po┼é─ůczeniu si─Ö z VPN i przej┼Ťciu na stron─Ö https://test-ipv6.com otrzymamy wynik 10/10.

Dodatkowo, je┼╝eli ustawiony mamy Bezpieczny DNS, strona https://1.1.1.1/help r├│wnie┼╝ b─Ödzie zwraca─ç w Connectivity to Resolver IP Addresses dost─Öpno┼Ť─ç do adres├│w DNS z poziomu IPv6.

Stan po┼é─ůczenia z bezpiecznym DNS CloudFlare 1.1.1.1 wraz z aktywnym IPv6

Pozdrawiam.


Credits: **Birkhoff Lee **

Komentarze
Kategorie