Následující návod obsahuje základní nastavení WireGuard VPN v RouterOS pro vzdálený přístup do LAN sítě. WireGuard je moderní, výkonný a jednoduchý VPN protokol, který je v RouterOS podporován od verze 7.x. Oproti starším řešením jako OpenVPN nebo IPsec nabízí výrazně jednodušší konfiguraci a nižší režii.
Další informace k WireGuard lze nalézt v dokumentaci https://help.mikrotik.com/docs/spaces/ROS/pages/69664792/WireGuard
Před použitím je nutné veškeré příkazy upravit tak, aby seděli do konfigurace Vašeho routeru, například změnou rozhraní, IP adres či portu.
| Parametr | Hodnota |
|---|---|
| WAN rozhraní | ether1-WAN (DHCP klient) přiděleno například 1.2.3.4 |
| LAN rozhraní | ether2-LAN |
| LAN síť | 192.168.255.0/24 |
| WireGuard rozhraní | wireguard1 |
| WireGuard síť | 10.255.255.0/24 |
| WireGuard port | 4859/UDP |

Přejmenování rozhraní pro snadnější identifikaci při nastavování.
/interface ethernet
set [ find default-name=ether1 ] name=ether1-WAN
set [ find default-name=ether2 ] name=ether2-LAN
Pro získání IP adresy a ostatních parametrů na WAN rozhraní je potřeba přiřadit DHCP klienta.
/ip dhcp-client
add interface=ether1-WAN
Přiřazení statické IP adresy na LAN rozhraní.
/ip address
add address=192.168.255.1/24 interface=ether2-LAN network=192.168.255.0
Konfigurace pravidla pro maškarádu, které maskuje všechny IP adresy přicházející z LAN rozhraní za IP adresu přidělenou na WAN.
/ip firewall nat
add action=masquerade chain=srcnat in-interface=ether2-LAN
Vytvoření WireGuard rozhraní s vlastním portem pro naslouchání. Po vytvoření rozhraní RouterOS automaticky vygeneruje pár klíčů (privátní a veřejný).
/interface wireguard
add listen-port=4859 mtu=1420 name=wireguard1
Po vytvoření rozhraní je potřeba si poznamenat veřejný klíč routeru (Public Key), který bude následně potřeba zadat do konfigurace klienta.
Veřejný klíč rozhraní lze zobrazit příkazem:
/interface wireguard print
Router bude mít na WireGuard rozhraní první adresu z rozsahu 10.255.255.0/24.
/ip address
add address=10.255.255.1/24 interface=wireguard1 network=10.255.255.0
Pro funkční připojení klientů je nutné povolit příchozí provoz na UDP portu 4859 na WAN rozhraní.
/ip firewall filter
add action=accept chain=input comment="povol WireGuard" dst-port=4859 in-interface=ether1-WAN protocol=udp
Toto pravidlo je potřeba umístit nad případná pravidla typu drop, aby byl provoz zpracován dříve, než bude zahozen.
Před přidáním peeru je nejdříve nutné vygenerovat pár klíčů na straně klienta. K tomu lze použít oficiální aplikaci WireGuard (Windows, macOS, Linux, Android, iOS - https://www.wireguard.com/), která klíče vygeneruje automaticky při vytvoření nového tunelu.
Na straně routeru se zadává veřejný klíč klienta (Public Key). Privátní klíč klienta nikdy neopouští zařízení klienta.
/interface wireguard peers
add allowed-address=10.255.255.2/32 interface=wireguard1 public-key="VEŘEJNÝ_KLÍČ_KLIENTA"
Při přidávání dalších peerů je potřeba každému přiřadit unikátní IP adresu z WireGuard rozsahu, například 10.255.255.3/32, 10.255.255.4/32 atd.
Na straně klienta je potřeba vytvořit konfigurační soubor s příponou .conf nebo zadat následující parametry v aplikaci WireGuard.
[Interface]
PrivateKey = PRIVÁTNÍ_KLÍČ_KLIENTA
Address = 10.255.255.2/32
[Peer]
PublicKey = VEŘEJNÝ_KLÍČ_ROUTERU
AllowedIPs = 10.255.255.0/24, 192.168.255.0/24
Endpoint = WAN_IP_ROZHRANÍ_ROUTERU:4859
/interface wireguard print.Pokud by měl veškerý provoz klienta procházet přes tunel (full tunnel), stačí změnit AllowedIPs na 0.0.0.0/0. V takovém případě je však potřeba na routeru přidat pravidlo pro maškarádu i pro WireGuard rozhraní.
Po úspěšné konfiguraci obou stran by se měl klient připojit k routeru a v aplikaci WireGuard zobrazit aktivní handshake.
Stav připojených peerů lze ověřit příkazem:
/interface wireguard peers print
Aktivní peer bude mít vyplněné pole last-handshake, které ukazuje čas posledního úspěšného handshaku.
Pro ověření konektivity do LAN sítě za routerem:
ping 192.168.255.1
Pokud router odpoví, je WireGuard tunel funkční a klient má přístup do LAN sítě.
Konektivita přes WireGuard tunel do LAN byla úspěšně ověřena.