Konfiguracja VPN WireGuard na urządzeniu MikroTik

Jedną z głównych nowości w RouterOS 7 jest dodanie obsługi dla relatywnie nowego rozwiązania VPN jakim jest WireGuard. W zamyśle ma być prostym do konfiguracji, lekkim i bezpiecznym rozwiązaniem VPN. W praktyce trudno się z tym nie zgodzić, konfiguracja rzeczywiście zajmuję tylko chwilę, a zastosowanie algorytmy kryptograficzne uważane są za jedne z najlepszych aktualnie dostępnych do tego typu zastosowań. W tym artykule przedstawię jego konfigurację.


Jeśli poszukujesz pomocy w konfiguracji MikroTika chętnie Ci pomogę. Oferuję profesjonalne usługi konfiguracji sprzętu sieciowego MikroTik w praktycznie dowolnym zakresie.

Więcej informacji TUTAJ.

A teraz już nie przedłużam i zapraszam do artykułu 🙂


Do konfiguracji WireGuard konieczny jest system RouterOS w wersji 7 – do przygotowania tego artykułu użyłem wersji 7.4.1 (stable).

Konfiguracja RouterOS

Na początku dość ważna cecha samego WireGuard. Nie ma w nim określenia które urządzenie jest klientem a które serwerem. W zamyśle wszystkie hosty są sobie równe. Jednak w tym artykule dla ułatwienia będę używał określeń serwer i klient aby łatwiej zrozumieć temat.

Konfigurację MikroTik’a rozpoczynamy od wejścia w okno WireGuard z menu głównego WinBox.

Następnie w zakładce WireGuard dodajemy jego instancję która będzie pełnić rolę serwera. Uzupełniamy tylko nazwę, oraz ustawiamy „Listen Port” czyli port na którym będzie słuchał nasz serwer. Jest to port protokołu UDP, do poprawnego działania WireGuard konieczne jest otwarcie jedynie tego jednego portu na firewall. Po wciśnięciu przycisku Apply para kluczy (prywatny i publiczny) zostanie wygenerowana automatycznie.

Następnie musimy ustawić adresację którą używać będą nasi klienci, w tym celu klasycznie wchodzimy do menu IP->Address i ustawiamy IP. Co ważne podnosimy adres z taką maską aby zmieścili się w niej nasi klienci, ja przykładowo użyłem adresacji 192.168.15.0/28

I prawdę mówiąc jeśli chodzi o stronę samego serwera to by było wszystko, co prawda trzeba pamiętać o stosownych wpisach w firewall oraz w NAT.


Konfiguracja klienta

WireGuard na chwilę pisania tego artykułu nie ma natywnego wsparcia w żadnym z najpopularniejszych systemów operacyjnych. Dlatego też musimy pobrać i zainstalować stosowną aplikację kliencką.

Odsyłam do oficjalnej strony projektu: https://www.wireguard.com/install/

W tym poradniku opiszę przykłady użycia klientów dla Windows, Android oraz iOS. Ze względu że konfiguracja dla Windows jest tak na prawdę tekstem, posłużymy się generatorem.

Osobiście polecam https://www.wireguardconfig.com/

W formularzu uzupełniamy klucz publiczny serwera który możemy sobie skopiować z okna instancji WireGuard z RouterOS, ilość klientów (czyli ilość konfiguracji do wygenerowania) jaką potrzebujemy, sieć w jakiej działamy (jest to sieć która jest podniesiona na interfejsie WireGuard w RouterOS), Endpoint (czyli adres serwera wraz z portem) oraz DNS z którego będą korzystać klienci. Pola Post-Up i Post-Down zostawiamy puste oraz zaznaczamy checkbox „Use Pre-Shared Keys”.

Po kliknięciu „Generate Config” otrzymujemy wynik:

Konfiguracja serwera nas nie dotyczy ponieważ serwer mamy już skonfigurowany, dla nas istotna jest tylko konfiguracja klienta.

Najpierw dodajemy konfigurację klienta do serwera. W tym celu w WinBox w oknie WireGuard przechodzimy do zakładki Peers i dodajemy nowy wpis.

W tym oknie interesują nas 4 wartości:

  • Interface – wybieramy nazwę wcześniej utworzonej instancji WireGuard
  • Public Key – klucz publiczny klienta (z generatora)
  • Allowed Address – wpisujemy tutaj adres IP który klient będzie miał na swojej stronie tunelu (a dokładniej z jakich źródłowych adresów IP może następować ruch wysyłany przez tego klienta)
  • Preshared Key – klucz wspólny (również z generatora)

Konfigurując klienta Windows w oknie programu na dole wybieramy „Dodaj pusty tunel”:

Następnie po prostu wklejamy tam konfigurację z generatora:

Po zapisaniu będziemy mogli połączyć się z VPN.


Alternatywnie do powyższego generatora udostępniam również swój autorski skrypt bash do generowania konfiguracji – link TUTAJ.

Skrypt pojadę dane konfiguracyjne strony serwera oraz podaje gotową konfigurację którą można wprost wkleić w klienta Windows. Generuje również kod QR.

Wymagana on zainstalowania pakietów wireguard-tools oraz qrencode.


Konfiguracja Android oraz iOS sprowadza się do przekopiowania wartości konfiguracji klienta w stosowe pola w aplikacji. Natomiast najprostszą metodą jest zeskanowanie kodu QR.

Kod QR to tak naprawdę tekst konfiguracji którą podajemy w kliencie Windows.