Konfiguracja Wireguard na Mikrotiku
WireGuard i Mikrotik
Wersja RouterOS 7 wprowadziła sporo udogodnień dla użytkowników. Jedną z bardziej wartościowych to wsparcie dla Wireguarda, nowoczesnego VPNa. Wireguard, to spora konkurencja dla tradycyjnych VPNów takich jak OpenVPN czy IPSec. Każdy, kto w swojej karierze konfigurował OpenVPN bądź zestawiał tunel IPSec, dobrze zdaje sobie sprawę ile wymaga to konfiguracji. Wireguard oferuje znacznie prostszą konfigurację, która nie powinna być przeszkodą dla początkującego informatyka czy też zwykłego użytkownika domowego. Dodatkowym plusem jest znacznie wyższa wydajność połączenia w stosunku do OpenVPN. W tej części skupimy się na zestawieniu połączenia VPN między Mikrotikiem a komputerem z systemem Windows 10, czyli tak zwany Road Warrior.
Konfiguracja Mikrotik
Przed konfiguracją pamiętaj, aby zaktualizować winboxa do najnowszej wersji. Z bocznego menu wybieramy Wireguard. Znakiem plusa dodajemy nowy wpis.
- Name: podajemy dowolnie
- MTU: w przypadku problemów z połączeniem możemy ustawić 1412
- Listen Port: port na którym nasłuchuje Wireguard
- Public Key: klucz generuje się automatycznie, potrzebny do konfiguracji połączenia na stacji klienta

W następnym kroku przypisujemy adres IP dla nowego interfejsu. Przechodzimy na IP->Addresses znakiem plusa dodajemy nowy wpis. Adresacje przydzielamy dowolnie pamiętając o masce na końcu, a jako interfejs wskazujemy wireguard1

Przy ustawieniach wiregurada jako Listen Port ustawiliśmy 13231, teraz musimy odblokować ten port na firewallu. Standardowo plusem dodajemy nowy wpis.
- Chain: input
- Protocol: udp
- Dst. Port: 13231

Konfiguracja Klienta Windows 10
Udajemy się na stronę https://www.wireguard.com/ i pobieramy wersje dla Windowsa. Instalacja wymaga od nas kliknięcia kilka razy w dalej. Po poprawnej instalacji w prawym dolnym rogu systemu powinniśmy zobaczyć czerwoną ikonkę Wireguard. Klikamy prawym myszy i dodajemy nowy pusty tunel.


Cała konfiguracja tunelu Wireguard jest w postaci tekstowej. Według oficjalnej instrukcji pole Nazwa uzupełniamy opisem wg0, wg1, wg2, etc. Możemy oczywiście nadać swoją własną nazwę jednak zalecałbym utrzymać standard nazewnictwa od producenta. Podczas dodawania nowego tunelu zostanie wygenerowana para kluczy. Klucz publiczny musimy dodać na Mikrotiku w zakładce Peer.

Interface wybieramy wireguard1. Ponieważ Mikrotik pracuje jako serwer VPN, pola Endpoint i Endpoint Port nie musimy uzupełniać. Pozostaje nam Allowed Address, czyli adres IP jaki otrzyma stacja kliencka. Jako, że interfejs wireguard1 konfigurowaliśmy na adres 10.10.0.1/24, podajemy dowolny adres z tej samej podsieci, zmieniając maskę na /32.
Wracam do konfiguracji klienta Windows 10. Dokończymy ustawienia podając następujące parametry:
WireGuard config
[Interface]
PrivateKey = 2Hbgp81rlmYCzQ/W4U5N8A8LpKwLn1SNbZchrwGHUGs=
Address = 10.10.0.2/32
DNS = 8.8.8.8
[Peer]
PublicKey = a3E49AWkTyaZI3IcqF/4qttMGagYjxd4YXPNjHLSZQs=
AllowedIPs = 0.0.0.0/0
Endpoint = 46.77.89.232:13231
PersistentKeepalive = 10
- Address: Adres IP jaki otrzyma stacja kliencka, taki sam jak w Allowed Address w konfiguracji Peer’a na MT
- DNS: podajemy dowolnie, nasz wewnetrzny DNS, bądź publiczny
- PublicKey: Klucz publiczny interfejsu wireguard1 na Mikrotiku
- AllowedIPs: podając 0.0.0.0/0 przepuścimy cały ruch przez Mikrotika, włącznie z wyjściem do Internetu. Jeżeli chcemy ograniczyć połączenia VPN z dostępem tylko do konkretnych hostów możemy je wymienić po przecinku np. 10.10.0.50/24, 10.10.0.100/24
- Endpoint: publiczny adres IP i port Mikrotika na, którym pracuje Wireguard
- PersistentKeepalive: jeżeli korzystamy z maskarady NAT, to należy włączyć podtrzymanie sesji, czas jest w sekundach

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 AC Lite , hAP AC2, RB4011, RB260GS, RB2011
hAP AC3 LTE
LTE: SXT LTE kit, SXT LTE6 kit, LHG 5, LHG LTE kit
Extender/Repeater: mAP lite, mAP
POE: hEX PoE
LAB: hEX lite
Średnia/Duża firma: CCR1036-12G-4S
Wita, utworzyłem tunel wireguard, problem występuje przy podłączeniu dwóch hostów, działa to tak, że albo jeden albo drugi pinguje do mikrotika po vpn, jeśli wyłączę po stronie mikrotika, jednego z peerów to działa ten drugi i na odwrót. Oba peery są wpięte na ten sam interfejs wireguard w mikrotiku. Jedyna różnica z konfiguracją wyżej jest taka, że zamiast AllowedIPs 0.0.0.0/0 mam ustawioną na 10.10.0.0/24. Czy jest to normalne zachowanie? Podobne rozwiązanie mam zrobione na Linuksie i działa prawidłowo, łącznie z komunikacją pomiędzy hostami.
Stacje kliencie są za tym samym publicznym IP, mają jeden wspólny NAT?
Jedna jest za NAT, druga ma publiczny IP
OK, to proponuje włącznie topicu debug w System->Logging i zobaczymy co pokaże.
A ja mam inny problem. Po aktualizacji mikrotika hap ac2 do wersji 7, cały czas się zapętla uruchamianie. Nie pomaga reset, nie pobiera adresów ip, i nie wykrywa go winbox. Czy przez tą aktualizacja został uszkodzony? Dodam że dałem download & Install. I po tym wyłączył się, i już nie uruchomił. Po odłączeniu zasilania, i podlaczenia go ponownie, zaczą się uruchamiać, ale w kółko uruchamia się sam. I na tym tyle. Nic nie można zrobić, i w żaden sposób się na niego zalogować.
Spróbuj zainstalować poprzednią wersję przez netinstall https://wiki.mikrotik.com/wiki/Manual:Netinstall
W tym problem że netinsstall nie wykrywa routera. Próbowałem już na trzech laptopach, i nic.
Problem udało się rozwiązać. Co do routera hap ac2 konfiguracja odresów ip jaką podaje MikroTik 192.168.88.1, w tym wypadku się nie sprawdziła (bynajmniej u mni) na jakimś angielskim forum natrafiłem na całkiem inną adresację. Na Komputerze wystarczy wpisać ip, oraz maskę, 192.168.1.1, a w Netinsstall 192.168.1.2. Dopiero wtedy udało mi się z nim połączyć, i przywrócić go do żywych 🙂
Dziwne, powinno działać z domyślną adresacja.
W logach nie ma za wiele o wireguard, są informacje o tym, że nie może nawiązać połączenia, jeśli wyłączę wg na zdalnym hoście, lub czy dany peer po stronie mikrotika został włączony lub wyłączony, dodatkowo dodałem enpoint do jednego z hostów, niestety dalej to samo. Wrzuciłem do logów port 13231, oba hosty nadają na port. Po stronie hostów polecenie wg zwraca informacje lastest handshake poprawnie.
Cześć! Od lat śledzę Twoją stronę i robisz super robotę. Czy jesteś w stanie zrobić tutorial jak połączyć dwa mikrotiki WireGuardem tak aby z jednego cały ruch szedł przez drugi (server)? Pozdrawiam
W środę wleci poradnik z site-to-site, trochę o routingu też będzie, co prawda nie o tym o czym piszesz, alea tam wystarczy zmienić routing 0.0.0.0 na ip głownego mikrotika.
Świetnie! To ja już odliczam czas do środy 😉 Dobrego dnia i jeszcze raz wielkie dzięki za Twoje poradniki 😉 A może jeszcze poradnik z fail over z odpytywaniem konkretnego IP w internecie, a nie tylko bramy (jak to ma miejsce w większości poradników)? Bo co jest dostępne w necie, zawsze ma jakieś „ale” 😉
Dzięki:) Load Balancing i Failover jak dla mnie na MT kiepsko działały, może w RouterOSv7 coś się zmieniło, będę musiał po testować i zobaczymy.
Witam, mam pytanie. Ustawiłem WireGuarda na mikrotiku wszystko super, łącze się trzema użytkownikami mam dostępy do sieci lokalnej po stronie serwera VPN. Problem jednak mam z tym że kiedy mam uruchomiony tunel VPN na kliencie to cały ruch kieruje przez sieć VPN a chciałbym zrobić tak abym po stronie klienta miał dostęp do internetu z lokalnej bramy nie bramy po stronie serwera. Szukam w Google ale typowo pod mikrotika nie ma wyjaśnienia jak to zrobić.
Opcja AllowedIPs z 0.0.0.0/0 tuneluje wszystko. Dodaj tam podsieć za tunelem i powinno pomóc.
Super dzięki za pomoc, taka prosta rzecz a ja szukałem nie wiadomo gdzie 🙂