Blog Linux

Mikrotik Wireguard VPN szerver és roadwarrior kliens

Golnet
Blog

A Mikrotik RouterOS v7-től elérhető a Wireguard VPN technológia. Példánkban az otthon vagy az irodában lévő Mikrotik routert használjuk Wireguard szerverként. Nem indít kifelé kapcsolatot, csak hallgatózik és fogadja a bejövő roadwarrior kapcsolatot. Roadwarrior az a kliens aki nem állandóan kapcsolódik, hanem időszakosan. Tipikusan a felhasználók, akik irodán kívülről szeretnék használni az iroda belső erőforrásait.

A Mikrotik Winbox alkalmazást használva garfikus felületen is elvégezhető a beállítás, de konzolon is.

Fix IP cím esetén használhatjuk az IP címet mint szerver elérhetőség. Otthoni internet esetén dinamikus IP címet oszt ki a szolgáltató, így mindenképpen valamilyen dinamikus DNS (DDNS) szolgáltatást kell igénybe vennünk. A Mikrotik gyárilag biztosít DDNS szolgáltatást.

IP menü --> Cloud menüpont. Engedélyezzük a DDNS funkciót. A DNS name mezőben megkapjuk a hostnevet amihez majd kapcsolódni fogunk.

/ip cloud set ddns-enabled=yes
/ip cloud force-update
/ip cloud print
          ddns-enabled: yes
  ddns-update-interval: 30m
           update-time: yes
        public-address: 1xx.xx.xx.xxx
              dns-name: xxxxxxxxxxx.sn.mynetname.net
                status: updated

Hozzunk létre egy új Wireguard interfacet az alábbi képen létható sorrend szerint. A végén a létrehozott "Public Key"-t mentsük el, mert erre lesz majd szükség a roadwarrior kliensen. A "Listen port" egy szabadon választott magas portszám. Ezen az UDP porton fog hallgatózni és várni a bejövő kapcsolatot.

/interface wireguard
add listen-port=51320 name=wireguard2
print
Flags: X - disabled; R - running 
 0  R name="wireguard2" mtu=1420 listen-port=51320 private-key="UDAQ******************************hypiBGNVM=" 
      public-key="idN******************************A8dnifD7zk=" 

A wireguard vpn tunnelnek IP címet kell adnunk. Ez az IP cím lesz a tunnelen belüli kommunikációra használva.

/ip addresses
add address=10.100.100.1/24 interface=wireguard2

A router tűzfalon engedélyezni kell 3 féle wireguard forgalmat.

  1. Internet felől beérkező kapcsolat a megadott porton
  2. Átmenő forgalom a belső hálózatba
  3. A roadwarrior kliens kimenő internet forgalma
/ip firewall filter
add action=accept chain=input comment="allow WireGuard" dst-port=51320 in-interface-list=WAN protocol=udp place-before=1
add action=accept chain=forward comment="allow WireGuard traffic" in-interface=wireguard2 place-before=1
add action=masquerade chain=srcnat src-address=10.100.100.0/24 out-interface-list=WAN place-before=1

Ahhoz, hogy a kliensünk hozzáférhessen a router többi szolgáltatásához és a router mögött lévő erőforrásokhoz, adjuk hozzá a wireguard2 interfacet a LAN interface listához.

/interface list member
add interface=wireguard2 list=LAN

Windows 10 vagy 11 operációs rendszeren töltsük le és telepítsük a Wireguard kliens programot. Sikeres telepítés után megnyitva létre kell hoznunk a kliensre vonatkozó privát és publikus kulcsokat, valamint be kell állítani a Mikrotik routerünket ahová kapcsolódni fogunk.

Hozzunk létre egy üres tunnelt (Add empty tunnel... CTRL+N). A megnyíló ablakban már létni fogjuk a létrehozott publikus és privát kulcsunkat. Egészítsük ki a beállításokat a router adataival, majd a Save gombra kattintva mentsük el.

[Interface]
PrivateKey = *****Ide kerül a létrehozott privát kulcsunk********
Address = 10.100.100.2/24

[Peer]
PublicKey = *****Ide kell bemásolni a router publikus kulcsát*******
AllowedIPs = 0.0.0.0/0
Endpoint = router_IP_címe:51320

Az előző lépésben a kliensen létrehozott publikus kulcsot felhasználva a Mikrotik routeren is létre kell hozni a roadwarrior kliensünket, mint peert. A Public Key mezőbe illesszük be a kliens publikus kulcsát.

Ezzel befejeztük a beállítosokat. A kliensen az Activate gombra kattintva pár másodpercen belül csatlakozunk a routerhez és elérhetjük a router mögött lévő belső erőforrásokat. A sikeres csatlakozást a zöld pipa melletti Active státusz jelzi.