VPN Wireguard Verbindung an MikroTik Router

~ 0 min
2024-04-09 18:55
Allgemeines/Voraussetzungen
-> siehe Wireguard VPN
Wireguard (WG) Server (ab RouterOS 7.8)
(Bsp.LAN: 192.168.200.1)
  • Voraussetzung (siehe oben): Internetverbindung (ausgehend) und offener UDP-Port (eingehend)
  • 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 WG-Tunnel LAN anlegen: Address(Server): 192.168.200.1/24, (Network: 192.168.200.0), Interface: WG-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 -
    Src.Addr: WG-Endgerät (192.168.200.10), Dst.Addr.: LAN-Ziel (Host od. Subnet),
    In.Interface: Wireguard-Server, Out.Interface: LAN/Bridge, Accept
  • NAT muß für die Wireguard-Verbindung aus sein (IP -> Firewall -> NAT), (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  (legt Router automatisch an)
  • neu: Router erstellt QR-Code der Verbindung (Client Daten in Peer eintragen)
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) oder Wireguard-Client erzeugt Schlüsselpaar)
  • Endpoint: öffentl. DNS/IP der Gegenstelle (bei LAN-to-Client: leer lassen)
  • 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)

    nur für QR-Code erforderlich:
  • Client Address: 192.168.200.10/32 (statische Adresse des Clients im Wireguard-LAN)
  • Client DNS: DNS-Server
  • Client Endpoint: öffentl. WAN IP oder DNS-Name
  • Client Listen Port: UDP-Port vom Server
  • Test: bei erfolgreicher Verbindung mit Client laufen Verbindungs-Bytes (Rx und Tx) im WG-Peer und im Client 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) (wie Allowed Address vom Wireguard Peer)
  • 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 (auch Internet!) in den Tunnel
    sinnvoller ist konkrete Angabe (Transfernet + Zielnetz(e), siehe .conf unten)
  • Endpunkt: Einwahlpunkt IP oder Domain 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]
# Name = VPN-zu-Oma
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 WG-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:

Verwendete Abkürzungen:
• WG - Wireguard
• GW - Gateway

Durchschnittliche Bewertung 0 (0 Abstimmungen)

Es ist möglich, diese FAQ zu kommentieren.

Gravatar
Konrad (2023-10-17 08:51)
Zunächst mal vielen Dank für die schöne kompakte FAQ zu dem Thema.

Haben Sie mehr zeigenauch Erfahrung mit Wireguard auf Mikrotik hinter einer DSL-Fritzbox? Portforwarding für Wireguard hab ich eingerichtet. Eine statische Route auch mal. Der Tunnel an sich kommt zustande. Allerdings bekomme ich keine Daten drüber. Client und Server senden, aber es kommt nichts an. Gibt es bei Fritz noch irgendwelche erforderlichen Firewall-Einstellungen. Ich hab da nichts gefunden?

Viele Grüße

Konrad Jäger