Mikrotik WireGuard VPN Probleme
Moin zusammen,
testweise möchte ich statt des bisherigen OpenVPN-Raspis bei mir WireGuard nun direkt auf dem MT-Router einrichten. Mit dem VPN bezwecke ich grundsätzlich zwei Dinge:
Mit dem OpenVPN-Setup läuft alles einwandfrei. Da MT in der 7er Version von ROS das nun integriert hat, besteht die Chance dass nun direkt dort laufen zu lassen, so dass ich auf den OpenVPN-Raspi verzichten kann (ja, ich weiß, OpenVPN ist bei ROS auch mit dabei, aber die Konfiguration fand ich nicht so prickelnd).
Hier im Forum habe ich diverse gute Beiträge gefunden und versucht mich daran entlang zu hangeln - aber wie so häufig, ist der Teufel offenbar ein Eichhörnchen.
WG-Config auf dem MT-Router:
(Hinweis: Entsprechende Established/Related-Regeln sind bereits vorhanden)
WG-Config auf dem Peer:
Das Testgerät baut laut App eine Verbindung auf, aber es werden nur Daten gesendet (tx>0) und nix empfangen (rx=0). Vom Testgerät aus kann ich bei aktiviertem WG-VPN weder ins Internet noch irgendwelche internen (z.B. 192.168.40.1) oder externen IPs (z.B. 8.8.8.8) anpingen.
Die Input-Rule greift, d.h. im Log kann ich sehen das was reinkommt. Allerdings nicht bei der Forward-Rule, da kommt nix an. Die Status-Anzeige beim Peer im WireGuard-Dialog zeigt unter Rx/Tx 0 Bytes an, dementsprechend auch keinen last Handshake.
Vermutlich habe ich irgendein Brett vorm Kopf, da bereits der Handshake nicht funktioniert?!
testweise möchte ich statt des bisherigen OpenVPN-Raspis bei mir WireGuard nun direkt auf dem MT-Router einrichten. Mit dem VPN bezwecke ich grundsätzlich zwei Dinge:
- von unterwegs Zugriff auf einzelne Server in meinem Heimnetz (bzw. in einzelne Teilnetze)
- von unterwegs bei Bedarf "sicher" surfen (z.B. wenn man in einem Hotel-WLAN mit dem Smartphone steckt)
Mit dem OpenVPN-Setup läuft alles einwandfrei. Da MT in der 7er Version von ROS das nun integriert hat, besteht die Chance dass nun direkt dort laufen zu lassen, so dass ich auf den OpenVPN-Raspi verzichten kann (ja, ich weiß, OpenVPN ist bei ROS auch mit dabei, aber die Konfiguration fand ich nicht so prickelnd).
Hier im Forum habe ich diverse gute Beiträge gefunden und versucht mich daran entlang zu hangeln - aber wie so häufig, ist der Teufel offenbar ein Eichhörnchen.
WG-Config auf dem MT-Router:
(Hinweis: Entsprechende Established/Related-Regeln sind bereits vorhanden)
/interface wireguard
add listen-port=13231 mtu=1420 name=wg0 private-key="XXX" public-key="YYY"
/interface wireguard peers
add allowed-address=192.168.40.10/32 comment=Test interface=wg0 public-key="BBB"
/ip firewall filter
add action=accept chain=input comment="allow WG-VPN connections" dst-port=13231 in-interface=WAN protocol=udp
add action=accept chain=forward comment="allow WG-VPN to WAN" out-interface-list=WAN src-address=192.168.40.2-192.168.40.254
/ip address
add address=192.168.40.1/24 interface=wg0 network=192.168.40.0
WG-Config auf dem Peer:
[Interface]
PrivateKey = AAA
Address = 192.168.40.10/32
[Peer]
PublicKey = YYY
Endpoint = meine.domain.de:13231
AllowedIPs = 0.0.0.0/0
Das Testgerät baut laut App eine Verbindung auf, aber es werden nur Daten gesendet (tx>0) und nix empfangen (rx=0). Vom Testgerät aus kann ich bei aktiviertem WG-VPN weder ins Internet noch irgendwelche internen (z.B. 192.168.40.1) oder externen IPs (z.B. 8.8.8.8) anpingen.
Die Input-Rule greift, d.h. im Log kann ich sehen das was reinkommt. Allerdings nicht bei der Forward-Rule, da kommt nix an. Die Status-Anzeige beim Peer im WireGuard-Dialog zeigt unter Rx/Tx 0 Bytes an, dementsprechend auch keinen last Handshake.
Vermutlich habe ich irgendein Brett vorm Kopf, da bereits der Handshake nicht funktioniert?!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1667151743
Url: https://administrator.de/contentid/1667151743
Ausgedruckt am: 26.11.2024 um 08:11 Uhr
9 Kommentare
Neuester Kommentar
Zitat von @Tripod:
Dann bleiben bei mir noch 1..2 Fragezeichen:
Die Bridge bietet das Interface überhaupt nicht zum Hinzufügen an, geht also aus Prinzip nicht. Man kann zwar eine Interface-Liste mit dem WG-Interface darin anlegen und diese in der Bridge als Port hinzufügen, das funktioniert am Ende dann aber nicht weil das WG-Interface in der Liste ignoriert wird.Dann bleiben bei mir noch 1..2 Fragezeichen:
- Das WG-Interface hängt ja nicht an der VLAN-Bridge (darf es vermutlich auch gar nicht?); folglich kann ich das vorher genutzte VPN-VLAN entfernen da es sinnlos ist (da stand bisher der OpenVPN-Raspi drin)
* Im WG-Tunnel kann ich kein DHCP nutzen, die IP wird ja praktisch statisch eingetragen.
Korrekt.Wie kann ich den MT nun dennoch weiterhin als DNS/NTP-Server bzw Gateway nutzen?
Indem du in der Wireguard-Config des Clients die IP des Mikrotik als DNS-Server hinterlegst, also unter [Interface]
einen Eintrag anlegst der wie folgt aussieht DNS = 192.168.40.1
Und natürlich die in der Firewall den DNS-Port (53 UDP/TCP) für das Wireguard-Netz freigeben nicht vergessen!
/ip/firewall/filter
add chain=input src-address=192.168.40.0/24 in-interface=wg0 protocol=udp dst-port=53 action=accept
add chain=input src-address=192.168.40.0/24 in-interface=wg0 protocol=tcp dst-port=53 action=accept
Die diesbezügliche Konfiguration liegt ja unter dem DHCP-Server (ich meine nicht die DNS-Config auf dem WG-Peer, sondern im MT)
Die DHCP Config ist für das Wireguard-Netz irrelevant da Multicasts und Broadcast über einen Wireguard-Tunnel nicht übertragen werden, um das zu nutzen müsstest du erst einen weiteren Tunnel (z.B. IPIP, EoIP, GRE, etc.) in den WG-Tunnel legen. Dann ist aber auch auf dem Client eine entsprechende Config nötig wenn dieser das überhaupt anbietet, die meisten mobilen Clients sind dann ausgeschlossen.
Oder....
Man nimmt als Alternative statt der ganzen Frickelei oben einen L2TP VPN Server:
Scheitern am IPsec VPN mit MikroTik
Hat den unschätzbaren Vorteil das man bei allen Endgeräten egal ob Rechner oder Smartphone immer den eingebauten Onboard Client verwenden kann und sich die Mühe mit externer Client Software erspart.
Man nimmt als Alternative statt der ganzen Frickelei oben einen L2TP VPN Server:
Scheitern am IPsec VPN mit MikroTik
Hat den unschätzbaren Vorteil das man bei allen Endgeräten egal ob Rechner oder Smartphone immer den eingebauten Onboard Client verwenden kann und sich die Mühe mit externer Client Software erspart.
Man sollte übrigens auch auf eine aktuelle Winbox-Version achten wenn man GUI Jüngling ist, damit werden ein paar Fehler in der Winbox GUI für Wireguard ausgebügelt, wie bspw. das Verschwinden von ::/0 bei Eintrag in die AllowedIPs
https://forum.mikrotik.com/viewtopic.php?t=181663
https://forum.mikrotik.com/viewtopic.php?t=181663
Zitat von @Tripod:
Richtig, allerdings hat MT - zumindest über die GUI - die Konfiguration für einen DNS-Server innerhalb der DHCP-Server-Dialogs integriert.
Natürlich aber das gilt für wireguard überhaupt nicht da hier kein DHCP stattfindet!Das führte zum einer Frage, weil ich keine weitere Stelle zur Konfiguration gefunden hatte, sprich keine Stelle wo ich am MT einen DNS-Server mit der IP 192.168.40.1 angeben konnte.
Den DNS Proxy aktiviert man unter/ip dns set allow-remote-requests=yes
Da es allerdings gestern mit deaktiviertem DHCP-Config hier funktioniert hat, gehe ich davon aus, dass das der MT automatisch so macht (und die Angabe in der DHCP-Config dann nur dem Weiterreichen des DNS an den DHCP-Client dient)
Nur wenn der DNS Proxy aktiviert ist beantwortet dieser auch DNS Anfragen !ABER:
- Nachdem ich es heute nochmal "ordentlich" machen wollte, habe ich offenbar irgendwas geschrottet. Der Client/Peer kann sich per WG verbinden; am MT kann ich auch den Last Handshake sehen.
- Aber alles danach, egal ob Aufruf einer Website per URL oder direkt per IP geht nicht mehr.
Du hast entweder den DNS Proxy abgeschaltet (siehe oben) oder du hast das Masquerading fur den ausgehenden Traffic des Wireguard-Netzes in der SRCNAT Chain vergessen, denn wenn du mit den Client's darüber surfen willst musst du diesen Traffic am WAN auf die WAN-IP NATen
/ip firewall nat add chain=srcnat out-interface-list=WAN action=masquerade
/export hide-sensitive
Bei den Peers habe ich nun "/32" für den einzelnen Host dahinter gemeißelt
Wenn man das Tutorial (und auch die WG Doku) dazu wirklich einmal gelesen hätte, wäre das schon vorher klar gewesen. Wie gesagt: Mit L2TP viel einfacher, gleiche Performance, bordeigene Clients statt Frickelei mit 3rd Party VPN Clients....aber egal.
und nun läufts
Na dann kann 2022 ja kommen... 🥂🎉