Mikrotik Wireguard Server dla wielu klientów
Poprzednie publikacje skupiały się na konfiguracji Mikrotik Site-to-Site VPN, kładąc nacisk na klienta działającego na platformie Windows oraz wykorzystaniu VPS Mikrus. W tej części, skupimy się na rozszerzeniu konfiguracji przygotowując połączenie dla wielu różnych klientów. Skonfigurujemy pojedynczy serwer Wireguard, zdolny do obsługi połączeń z wieloma klientami. Jako Wireguard Server wykorzystamy standardowo router Mikrotik, ponownie skorzystamy z Mikrusa w roli klienta. Drugim klientem będzie urządzenie mobilne, które skonfigurujemy za pomocą kodu QR, natomiast trzecim – router Mikrotik, nieposiadający publicznego adresu IP. Poniżej prezentujemy schemat połączenia dla lepszej wizualizacji.
Mikrotik bez publicznego IP
Bardzo często dostaję pytania, a co w przypadku, gdy jeden z routerów nie ma publicznego IP. Czy mimo to, możemy skonfigurować tunel Site-to-Site? Odpowiedź brzmi: tak, wystarczy, że główny router posiada publiczne IP. W przypadku problemów, warto jednak skonsultować się z dostawcą Internetu, aby upewnić się, czy nie blokuje on połączeń VPN.
Tak jak wspomniałem wcześniej, przy obecnej konfiguracji wykorzystamy trzech klientów. Zostawiamy konfigurację z poprzedniego wpisu, w którym konfigurowaliśmy połączenie między Mikrotikiem a VPSem Mikrus. Następnie, kolejny klient, to kolejny Peer. Z bocznego menu wybieramy Wireguard, a potem przechodzimy na zakładkę Peer i znakiem plusa dodajemy nowy wpis.
W ramach przypomnienia, warto zaznaczyć, że połączenie Wireguard działa na zasadzie pary kluczy: prywatnego i publicznego. Przygotowując konfigurację po stronie serwera, musimy mieć publiczny klucz z drugiego routera, czyli klienta.
Generowanie pary kluczy – dodanie interfejsu
Rozpoczynamy od stworzenia nowego interfejsu Wireguarda. W tym celu, z bocznego menu wybieramy Wireguard, a następnie za pomocą znaku plusa dodajemy nowy interfejs. Pole o nazwie “name” ustawiamy według własnego uznania. Po kliknięciu w “Apply”, automatycznie zostanie wygenerowana para kluczy. Następnie, klikając prawym przyciskiem myszy na polu “Public Key”, kopiujemy cały klucz do schowka. Po wykonaniu tych czynności, wracamy na główny router.
Dodanie Peer’a na serwerze
Skopiowany klucz dodajemy na głównym serwerze Wireguarda, realizując to poprzez dodanie nowego Peer’a. Jako interfejs, ponownie wskazujemy wireguard1, skorzystamy z jednego interfejsu dla wszystkich nowych połączeń. Warto zaznaczyć, że nic nie stoi na przeszkodzie, aby dla każdego połączenia stworzyć nowy, dedykowany interfejs.
- Interface: wybieramy wcześniej utworzy interfejs
- Public Key: wklejamy skopiowany klucz z klienta
- Endpoint: jeżeli klient nie posiada publicznego IP, to pole może zostać puste
- Endpoint Port: jeżeli nie wpiszemy portu, połączenie będzie realizowana na domyślnym porcie 13231
- Allowed Address: ustawiając 0.0.0.0/0 zezwalamy na cały ruch od strony klienta.
Konfiguracja klienta – Mikrotik
Po przygotowaniu konfiguracji po stronie serwera Wireguard, przechodzimy teraz do dokończenia konfiguracji po stronie klienta. Na ten moment przygotowaliśmy jedynie sam interfejs dla połączenia Wireguard. W kolejnym, niezbędnym kroku, musimy zaadresować nowy interfejs. Aby to zrobić, przechodzimy do sekcji IP->Addresses i dodajemy nowy wpis.
- Address: wybieramy kolejny adres z puli połączeniowej, 10.5.0.3/24
- Interface: wybieramy wireguard1
Ostatnim krokiem przy konfiguracji klienta jest dodanie Peer’a. Wracamy do ustawień Wireguard i przechodzimy na zakładkę Peer. Znakiem plusa dodajemy nowy wpis.
- Interface: wybieramy wireguard1
- Public Key: kopiujemy z głównego Mikrotika
- Endpoint: publiczny adres z głównego Mikrotika
- Endpoint Port: można zostawić domyślny 13231
- Allowed Address: podając same zera, przekierowujemy cały ruch poprzez główny router
Komunikacja wewnątrz tunelu
Podsieć za głównym routerem ma adresację 192.168.88.0/24, natomiast podsieć za routerem klienta ma adresację 10.10.0.0/24. Jeżeli chcemy, aby komputery podłączone po obu stronach tunelu miały pełną komunikację, musimy dodać statyczną trasę routingu.
Na głównym serwerze, powinniśmy dodać trasę do 10.10.0.0/24, używając przy tym bramy 10.5.0.3. Z kolei na urządzeniu klienta, dodajemy trasę do 192.168.88.0/24, a jako bramę wskazujemy 10.5.0.2.
Ustawienie dla serwera:
Ustawienie dla klienta:
Wireguard na telefonie – przygotowanie configu
Łatwość konfiguracji Wireguarda jest rzeczywiście zdumiewająca, dlatego naszym trzecim klientem będzie urządzenie mobilne. W moim przypadku będzie to iPhone z iOS 15.x, ale dla urządzeń z systemem Android konfiguracja jest bardzo podobna.
Zaczynamy od przejścia na stronę wireguardconfig.com, za pomocą której wygenerujemy QR code z całą konfiguracją. Dzięki temu znacznie przyśpieszymy dodanie ustawień na telefonie. Szablon jest przygotowany pod całą konfigurację, włącznie z serwerem, jednak nas interesuje tylko opcja z jednym klientem. Ustawienia serwera możemy zatem pominąć.
Jedną z ważniejszych rzeczy, które musimy zmienić po wygenerowaniu kodu, jest adres IP. Formularz przyjmuje tylko zapis całej podsieci, nie możemy ręcznie wybrać adresu IP dla klienta, nawet jeśli w polu “Number of Clients” podamy liczbę 1. Warto o tym pamiętać..
Konfiguracja Wireguard na telefonie
Instalacja i konfiguracja aplikacji Wireguard na telefonie jest prosta i intuicyjna. Zacznij od pobrania aplikacji Wireguard z App Store. Po zainstalowaniu aplikacji, otwórz ją i wybierz opcję “Dodaj profil”. W tym momencie, możesz ręcznie wprowadzić konfigurację, ale znacznie łatwiejszym i szybszym sposobem jest skorzystanie z wygenerowanego wcześniej kodu QR. Wybierz opcję “Skanuj kod QR” i zeskanuj kod, który wygenerowałeś na stronie wireguardconfig.com. Po zeskanowaniu kodu, twoja konfiguracja zostanie automatycznie zaimportowana do aplikacji. Upewnij się, że adres IP jest poprawny, a następnie zapisz profil. Teraz, kiedy chcesz nawiązać połączenie, wystarczy wybrać odpowiedni profil i nacisnąć przycisk “Aktywuj”.
Mikrotik Wireguard Server dla wielu klientów
Materiał Video:
Polecany sprzęt
Z własnego doświadczenia mogę wam polecić poniższy sprzęt, z podziałem na ewentualne przeznaczenie routera.
Do domu i małej firmy(SOHO): hAP AX Lite , hAP AC3, RB4011, RB260GS, RB2011
hAP AC3 LTE, hAP AX2, hAP AX3, L009UiGS-2HaxD-IN, RB5009UG+S+IN, Audience
LTE: SXT LTE kit, SXT LTE6 kit, LHG 5, LHG LTE kit, Audience LTE, Chateau LTE6 ax, LTAP LTE6
Access Pointy: mAP lite, mAP, cAP AX, cAP XL AC
POE: hEX PoE
LAB: hEX lite
Średnia/Duża firma: CCR1036-12G-4S, CCR2004-16G-2S+
Witam mam takie nietypowe pytanie które mnie nurtuje w przypadku WG, jak można zabezpieczyć się przed skopiowaniem konfiguracji z końcówki i np połączniem z innego komputera? Jest jakaś opcja na uniemożliwienie takiego ruchu ? Może się Pan z nim spotkał 😉 Obecnie z OVPN nie ma problemu user dostaje skonfigurowaną końcówkę i nawet jak przeniesie sobie pliki konfigu certyfikatu i klucza to bez hasła do usera i hasła do klucza nie jest w stanie pracować na innej maszynie. Pozdrawiam i dziękuję za Pana robote i wiedzę którą się Pan z nami dzieli 😉
Dobre pytanie, mając parę kluczy można przenosić konfigurację. Nie zastanawiałem się nad opcją zabezpieczenia, przed kopiowaniem konfiguracji.
No własnie cały czas mnie to nurtuje, mam klienta który ma ponad 30 tuneli ovpn obecnie planuje migracje na WG ale na ovpn jest to o tyle bezpieczne ze klienta konfiguruje admin i pracownik nie ma szansy na wyniesienie konfiguracji, chyba ze całego sprzętu ;), na WG tego nie widze i trochę mnie to hamuje i dziwi mnie to że brak takiego typu zabezpiecznia 😉
Ale nie wiem czy, nie można włączyć UAC do edycji configu. Nie sprawdzałem tego.
Witam, mam sieć opartą na urządzeniach UniFi do tego na małym RB751G skonfigurowałem serwer Wireguard. Do tego MT na Routerze mam przekierowany port 13231. MT skonfigurowałem jako Bridge i połączyłem z siecią przez port ETH1. Generalnie komputer zdalny łączy się z WG przesyłane są pakiety w 2 kierunkach, jednak nie mam połączenia z żadnym urządzeniem w sieci. Sądzę że wymaga to jeszcze do konfigurowania MT (firewall-a) jednak nie wiem jak się za to zabrać. W innej lokalizacji mam sieć z WG na MT gdzie MT jest Routerem i działa to świetnie. Proszę o poradę, pozdrawiam.
Ustaw routing statyczny na MT. Jako brama wskazujesz ip/interfejs WG.
Cześć,
Czy udało się komuś połączyć Mikrotik jako klient według wyżej opisanych kroków? Mimo, że robię wszystko krok po kroku Last Handshake mam cały czas 0:00:00.
Klucz publiczny z serwera w peerze klienta, klucz publiczny klienta w peerze serwera, interfejsy pododawane. Serwer działa poprawnie, bo WG na Openwrt, na Windows10, na Proxmox łączy się poprawnie. A klient WG na Mikrotiku w żaden sposób nie chce się podpiąć.
Skończyły mi się pomysły… Grzegorzu, może jakbym Ci podesłał wszystko co mam poustawiane to znalazłbyś chwilę, żeby za jakiś pieniążek zerknąć w to…?
Okazało się, że na MT który jest klientem popełniałem błąd ręcznie wpisując jakiś tam port w zakładce Wireguard. Wystarczyło nic nie wpisywać, wg sam sobie wymyślił jakiś losowy port i ruszyło natychmiast. Jeszcze z tym routingiem walczę, ale już jedna sieć widzi drugą, jeszcze w drugą stronę i będzie gotowe! Dzięki Grzegorzu za ten artykuł! 🙂
Witam, w powyższym artykule opisana jest komunikacja wewnątrz tunelu ale na dwóch mikrotikach. Nie mogę ustawić trasy routingu dla urządzenia z windows / android. Sieć na serverze WG 192.168.4.0/24, adres interfejsu wireguard1 10.10.0.1/24, klient WG 10.10.0.2/32. Dodałem trasę do 192.168.4.0/24 i dałem jako gateway 10.10.0.1 i niestety urządzenia końcowe WG nie widzą nasa w sieci 192.168.4.0/24. Co robię źle ?
To wygląda źle: “klient WG 10.10.0.2/32”.
Na wstępie to dzięki za super poradniki do MT! Wiele razy się przydały 🙂
Teraz próbuje przebrnąć przez konfigurację vpn/wireguard. Dokładnie to VPN pomiędzy dwoma ruterami: serwer to router asus a kient to MT, dodatkowo chce jeszcze miec dostep do całej sieci (i tej za asusem i tej za MT) z telefonu, który będzie się łączył z serwerem przez vpn.
Na ten moment udało mi się połączyć MT z Asusem i urządzenia w ich sieciach są wzajemnie widoczne.
Teraz po podłączeniu telefonu przez vpn do serwera widzę jedynie urządzenia podłączone do serwera, sieci MT nie widzę. Od czego i jak powinienem zacząć sprawdzać jaka może być przyczyna itd?