WireGuard w Mikrotik RouterOS 7

Mikrotik RouterOS 7 wniósł kilka nowości. Jedną z nich jest obsługa nowego protokołu VPN WireGuard, który zdobywa coraz większa popularność.

WireGuard określany jest jako szybki, nowoczesny i bezpieczny protokół VPN. Przy tym jest bardzo prosty w konfiguracji. Nic dziwnego, że zdobywa coraz większą popularność i ma szansę w wielu wdrożeniach zastąpić np. OpenVPN. Zachęcam do zapoznania się z tym protokołem, a poniżej umieszczam moją konfigurację Mikrotika w roli serwera WireGuard, który terminuje wszystkie moje urządzenia mobilne.

Konfiguracja jest banalnie prosta. Zaczynamy od utworzenia interfejsu:

Po utworzeniu interfejsu zobaczymy wygenerowany klucz publiczny. Zapisujemy go wraz z portem nasłuchu, ponieważ będziemy potrzebować tych danych do nawiązania połączenia z urządzenia mobilnego/klienta.

W kolejnym kroku dodajemy adres IP dla podsieci naszych klientów VPN, przypisujemy go do interfejsu wireguardX, który utworzyliśmy wcześniej.

Teraz pobieramy i uruchamiamy aplikację WireGuard na naszym urządzeniu z którego chcemy się łączyć . Zacznę od aplikacji na iOS.

Uruchamiamy aplikację i dodajemy nowy tunel „od podstaw”. Wypełniamy odpowiednie pola:

Nazwa: dowolna nazwa naszego tunelu np. Dom
Klucz prywatny/publiczny: generujemy klucze za pomocą „Generowanie pary kluczy”
Adresy: wpisujemy adres IP z sieci, którą dodaliśmy do interfejsu wireguardX
Serwery DNS: podajemy adres serwera DNS

Dodajemy Peer’a i uzupełniamy kolejne pola:

Klucz publiczny: tutaj wklejamy skopiowany wcześniej klucz z interfejsu wireguardX
Adres: podajemy adres IP naszego serwera oraz port w formacie X.X.X.X:xxxx
Dozwolone adresy IP: wpisując 0.0.0.0/0 będziemy kierować cały ruch przez VPN

Zaznaczmy dodatkowo dane komórkowe i sieć wifi w celu automatycznej aktywacji VPN. Ciekawą funkcją jest wykluczenie konkretnych SSID. Możemy tutaj dodać np. SSID sieci domowej, co spowoduje że będąc w domu, nasze urządzenie nie będzie łączyło się z VPN.

Warto od razu zapisać/skopiować wygenerowany klucz publiczny z aplikacji. Mając te dane możemy wrócić do konfiguracji Mikrotika w zakładce „Peers”. Dodajemy nowego peera. Potrzebujemy tylko wpisać klucz publiczny z aplikacji klienta oraz adres IP sieci VPN, który zdefiniowaliśmy w konfiguracji:

I w zasadzie to wszystko. Połączenie powinno się nawiązać:

Upewniamy się jeszcze, że mamy skonfigurowanego NATa dla sieci VPN. Jeżeli nie, to dodajemy odpowiedni wpis w tablicy NAT:

To już wszystko. Połączenie powinno być nawiązane, a nasze urządzenie mobilne powinno mieć dostęp do Internetu. Warto zaznaczyć, że aplikacja WireGuard będzie się łączyć zawsze z naszym serwerem gdy tylko uzyska połączenie z Internetem. Dzięki temu mamy zawsze dostęp do swoich zasobów lokalnych, a także chronimy swoje urządzenie mobilne podczas łączenia się z nieznanymi sieciami. Aplikację WireGuard znajdziemy na iOS, Androida, Windows, Linux i MacOS. Testowałem te ostatnią i również działa bardzo dobrze, choć konfiguracja już wymaga ręcznego podania parametrów. Być może Mikrotik w kolejnych wersjach umożliwi preparowanie gotowych plików konfiguracyjnych, które można będzie importować w kliencie.

Mam nadzieję, że zachęciłem Was do sprawdzenia WireGuarda. Mi bardzo przypadł do gustu i zaczynam go stosować produkcyjnie. Zachęcam do własnych testów.