VPN Wireguard Verbindung an MikroTik Router

~ 0 min
2023-04-27 21:34
Allgemeines
Der MicroTik-Router als Verbindungs-Empfänger muß eine feste IP haben und der verwendete UDP-Port muss beim Router ankommen.
Wireguard ist OpenSource und für jedes gängige Betriebssystem kostenfrei verfügbar.
Wireguard Server (ab RouterOS 7.8)
(Bsp.LAN: 192.168.200.1)
  • Voraussetzung: Internetverbindung und offener UDP-Port
  • Wireguard -> Wireguard -> neu: Wireguard-Interface/Servername, MTU (1420), Listen Port: 51820 -frei festlegbar (UDP 49152-65535)
    * pro UDP-Port kann nur ein Wireguard-Server angelegt werden
    * pro Router genügt ein Wireguard-Server, wenn man nicht verschiedene Ports nutzen möchte
  • beim Aktivieren wird automatisch ein (unsichtbarer) Private Key und ein (kopierbarer) Public Key erstellt
  • IP -> Addresses: neues Wireguard Tunnel-LAN anlegen: Address(Server): 192.168.200.1/24, (Network: 192.168.200.0), Interface: Servername von oben
  • IP -> Firewall (UDP-Port erlauben): Input - Protocol:UDP - Dst.Port:51820 - In.Interface (WAN) wählen, Accept
  • IP -> Firewall (LAN, Host oder ALL erlauben): Forward - In.Interface: Wireguard-Server, Out.Interface: LAN/Bridge, Accept
  • NAT muß für die Wireguard-Verbindung aus sein (srcnat für VPN-Quell- und VPN-Zielnetz, action= accept)
  • IP -> Routes: Neue Route zum Wireguard-LAN, Gateway: %wireguard-server, Dst.Address: 192.168.200.0/24
  • Test: bei erfolgreicher Verbindung laufen Verbindungs-Bytes hoch
Wireguard Peers im Router
(Bsp: 192.168.200.10)
Für jede Gegenstelle muß ein Peer angelegt werden, dass dem Client eine eigene IP (Allowed IPs) zuweist und den Public-Key der Verbindung enthält.
  • Wiregard -> Peers -> neu:
  • Interface: Servername von oben,
  • Public Key: PK der Gegenseite,
    (Alternativ: Wireguard-Tool (unten) erzeugt offline Schlüsselpaar)
  • Endpoint Port: UDP-Port vom Server der Gegenseite,
  • Allowed Addresses: 192.168.200.10/32 (statische Adresse des Clients im Wireguard-LAN)
    Bei LAN-LAN müssen hier alle erlaubten Netze rein, die über den Tunnel erreichbar sein sollen, kann auch 0.0.0.0/0 (alle) sein. (Firewall+Route!)
  • Keepalive: (25s)
  • Test: bei erfolgreicher Verbindung laufen Verbindungs-Bytes hoch
Wireguard Endgerät (Handy oder beliebiges anderes Gerät mit dem offiziellen Wireguard-Client)
(Bsp: 192.168.200.10)
  • Wireguard-Client laden
  • neue Verbindung - manuell erstellen
  • beliebiger Verbindungsname
  • Privater Schlüssel (wird automatisch erstellt)
  • Öffentl. Schlüssel: Key in Router -> Wireguard Peer -> Public Key kopieren
  • Adressen: Client Adresse (192.168.200.10/32)
  • Nameserver: ggf. Wireguard-Server/Router (192.168.200.1)
  • Öffentl. Schlüssel: PK des Routers aus Wireguard -> Wireguard
  • Erlaubte IPs: 0.0.0.0/0 schicke gesamten Traffic in den Tunnel (oder alle zu erreichenden Netze, siehe .conf unten)
  • Endpunkt: Einwahlpunkt IP der Gegenseite +Doppelpunkt:Port!  1.2.3.4:51820 (wie oben)

Wireguard Gegenstelle (Router, Lan-to-Lan)
(Bsp.-IPs siehe Skizze)

  • Router1: Wireguard-Server einrichten wie oben
  • Router2: Wireguard-Server einrichten wie oben
    Anmerkung: pro Router genügt ein Wireguard-Server, falls nicht unterschiedliche Ports erforderlich sind
  • IP-Adresse zu virtuellem Wireguard-Interface hinzu fügen (->IP / Addresses)
    - Router 1: Address: 192.168.200.1/24, Network: 192.168.200.0
    - Router 2: Address: 192.168.200.2/24, Network: 192.168.200.0
    Anmerkung: pro Wireguard-Server sind mehrere Transfer-Netze möglich. Die Auswahl erfolgt über die Route unten.
  • Router1: Wireguard-Peer einrichten,
    - Pub-Key von Router2,
    - Endpoint-IP: DSL2, Endpoint-Port: UDP-Port wie oben
    - Allowed Address: 192.168.200.2/32 (Tunnel-Ende), 192.168.20.0/24 (Ziel-LAN)
  • Router2: Wireguard-Peer sinngemäß gleich einrichten
  • Route auf Router1: Route Dest. 192.168.20.0/24 (Ziel-LAN) über Gateway 192.168.200.2 (WG-Transfer)
  • Route auf Router2: Route Dest. 192.168.10.0/24 (Ziel-LAN) über Gateway 192.168.200.1 (WG-Transfer)

Wenn der Wireguard-Router hinter dem Default Router sitzt (wie oben gezeichnet):

  • Default-Router1: Portforwarding UDP (51820) zum Wireguard-Router (192.168.10.15)
  • Default-Router1: Statische Route zu Wireguard-LAN (192.168.200.0/24) über Wireguard-Router (192.168.10.15)
  • Default-Router1: Statische Route zu entferntem LAN (192.168.20.0/24) über Wireguard-IP (192.168.200.2/32)
  • für Router2 sinngemäß gleich


Beispiel der .conf -Datei
des Clients (IP: 3):

[Interface]
Address = 192.168.200.3/32
PrivateKey = OMjSCv6e/iXECZwq0ZVL5Ywf/KzZvdsGpYKv1512345=
# DNS = 172.16.7.254


[Peer]
PublicKey = cA+mynt84tVH1gPaUN66E8K0nfzvpsQMohrEbz54321=
Endpoint = router.myfritz.de:51820
AllowedIPs = 192.168.200.0/24, 192.168.40.0/24
# PersistentkeepAlive = 25

  • Address: VPN-Adresse des Clients
  • PrivateKey: Privat-Key des jeweiligen Clients (im Client sieht man dann den Public-Key)
  • DNS falls gewünscht
  • PublicKey: Public-Key des Servers
  • Endpoint: öffentliche Adresse des VPN-Servers mit Port
  • AllowedIPs: alle Adressen, die der Wireguard Server in den Tunnel routet. (also zumindest Wireguard-Server und Serverside-LAN)
    Dieses "Cryptokey Routing" bewirkt, dass Wireguard Server und Client das Routing für die jeweils remoten IP Netze automatisch in die Routing Tabelle übernehmen.
    AllowedIPs = 0.0.0.0/0 bewirkt, dass der gesamte Traffic durch den Tunnel geht.

Wireguard Online Config Generator:

Quellen und Links:

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.