Mikrotik Wireguard VPN
Hallo,
wie hier schon angedeutet, komme ich nicht auf meinen Server via WireGuard.
Grundsätzliches zu meinem Aufbau:
Ein RB5009 stellt über ein Glasfaser-Modem (PPPoE) der Telekom eine Verbindung zum Internet her.
Jetzt ist es so, dass die Wireguard Verbindung als Road Warrior grundsätzlich funktioniert. Ich komme auf alle Geräte in meinem lokalen Netz (172.20.0.0/16), mit Ausnahme des Servers und dessen virtuelle Maschine.
Dieser ist ein Ubuntu Server mit einer VM mit Home Assistant. Der Server selbst hat die IP 172.20.0.10 und die VM 172.20.0.30.
Pinge ich den Server, kommt der Ping zwar an, wird jedoch nicht beantwortet:
Mache ich das gleiche mit einer anderen IP, funktioniert es wie erwartet:
Die Firewall und NAT-Regeln sehen wie folgt aus:
Ich denke, meine WireGuard Konfiguration ist an dieser Stelle nicht notwendig, da der Tunnel ja grundsätzlich funktioniert.
Leider fehlt mir irgendwie das Wissen und Können um hier den Fehler zu finden.
wie hier schon angedeutet, komme ich nicht auf meinen Server via WireGuard.
Grundsätzliches zu meinem Aufbau:
Ein RB5009 stellt über ein Glasfaser-Modem (PPPoE) der Telekom eine Verbindung zum Internet her.
export hide-sensitive
/interface bridge
add name=bridge
/interface wireguard
add listen-port=13231 mtu=1420 name=wireguard1
/interface vlan
add interface=ether1 name=vlan7-pppoe vlan-id=7
/interface pppoe-client
add add-default-route=yes allow=pap,chap,mschap2 disabled=no interface=vlan7-pppoe name=pppoe-telekom-fiber profile=default-encryption user=XXXXXXX@t-online.de
/interface list
add name=PORT-FORWARD-LIST
add name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/interface bridge port
add bridge=bridge interface=ether2
add bridge=bridge interface=ether3
add bridge=bridge interface=ether4
add bridge=bridge interface=ether5
add bridge=bridge interface=ether6
add bridge=bridge interface=ether7
add bridge=bridge disabled=yes interface=ether8
add bridge=bridge interface=sfp-sfpplus1
/interface detect-internet
set detect-interface-list=all
/interface list member
add interface=pppoe-telekom-fiber list=PORT-FORWARD-LIST
add interface=bridge list=PORT-FORWARD-LIST
add interface=bridge list=LAN
add interface=wireguard1 list=LAN
/interface wireguard peers
add allowed-address=10.9.0.2/32 interface=wireguard1 name=Poco public-key="XXXXXXX"
Jetzt ist es so, dass die Wireguard Verbindung als Road Warrior grundsätzlich funktioniert. Ich komme auf alle Geräte in meinem lokalen Netz (172.20.0.0/16), mit Ausnahme des Servers und dessen virtuelle Maschine.
Dieser ist ein Ubuntu Server mit einer VM mit Home Assistant. Der Server selbst hat die IP 172.20.0.10 und die VM 172.20.0.30.
Pinge ich den Server, kommt der Ping zwar an, wird jedoch nicht beantwortet:
Mache ich das gleiche mit einer anderen IP, funktioniert es wie erwartet:
Die Firewall und NAT-Regeln sehen wie folgt aus:
/ip firewall address-list
add address=172.16.0.0/12 list=RFC1918
add address=10.0.0.0/8 list=RFC1918
add address=192.168.0.0/16 list=RFC1918
/ip firewall filter
add action=accept chain=input comment="accept established,related,untracked" connection-state=established,related,untracked
add action=accept chain=input comment="allow WireGuard" dst-port=13231 protocol=udp
add action=accept chain=input comment="allow WireGuard traffic" src-address=10.9.0.0/24
add action=drop chain=input comment="drop invalid" connection-state=invalid
add action=accept chain=input comment="accept ICMP" in-interface=pppoe-telekom-fiber protocol=icmp
add action=accept chain=input comment="allow Winbox" in-interface=pppoe-telekom-fiber port=8291 protocol=tcp
add action=accept chain=input comment="allow SSH" disabled=yes in-interface=pppoe-telekom-fiber port=22 protocol=tcp
add action=drop chain=input comment="block everything else" in-interface=pppoe-telekom-fiber
/ip firewall nat
add action=masquerade chain=srcnat out-interface=pppoe-telekom-fiber
add action=dst-nat chain=dstnat comment="webserver http(s)" dst-address-list=!RFC1918 dst-address-type=local dst-port=80,443 in-interface-list=PORT-FORWARD-LIST protocol=tcp to-addresses=172.20.0.10
add action=masquerade chain=srcnat comment="hairpin NAT" dst-address=172.20.0.10 out-interface=bridge src-address=172.20.0.0/16
Ich denke, meine WireGuard Konfiguration ist an dieser Stelle nicht notwendig, da der Tunnel ja grundsätzlich funktioniert.
Leider fehlt mir irgendwie das Wissen und Können um hier den Fehler zu finden.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 670379
Url: https://administrator.de/forum/mikrotik-wireguard-vpn-670379.html
Ausgedruckt am: 28.12.2024 um 02:12 Uhr
8 Kommentare
Neuester Kommentar
Wenn der Ping am Mikrotik richtung Server raus geht aber nichts zurück kommt, ist das Problem am Server zu suchen, nicht am Mikrotik. Also entweder die Firewall am Server selbst oder falsches Routing/Default-GW am Server selbst.
Mach also mal ein Wireshark Capture am Server.
Nur mal so nebenbei, du hast keinerlei Forward-Chain Regeln in der Firewall, das Teil ist also offen wie ein Scheunentor, sowas ans Internet zu hängen ist schon ziemlich fahrlässig.Da tummelt sich bestimmt schon so einiges Ungetüm in deinem Netz ..
https://help.mikrotik.com/docs/spaces/ROS/pages/328513/Building+Advanced ...
Gruß gastric
Mach also mal ein Wireshark Capture am Server.
Nur mal so nebenbei, du hast keinerlei Forward-Chain Regeln in der Firewall, das Teil ist also offen wie ein Scheunentor, sowas ans Internet zu hängen ist schon ziemlich fahrlässig.Da tummelt sich bestimmt schon so einiges Ungetüm in deinem Netz ..
add action=accept chain=input comment="allow Winbox" in-interface=pppoe-telekom-fiber port=8291 protocol=tcp
Und selbst Winbox am WAN aufzumachen ist schon echt derb.... Da kann man nicht mehr viel dazu sagen 🙊🙊🙊Leider fehlt mir irgendwie das Wissen und Können um hier den Fehler zu finden.
Deswegen besser erst nochmal die Grundlagen üben und dann erst die Praxis. Ansonsten als erstes ein wasserdichtes Firewall-Regelwerk nehmen und darauf aufbauen.https://help.mikrotik.com/docs/spaces/ROS/pages/328513/Building+Advanced ...
Gruß gastric
Pinge ich den Server, kommt der Ping zwar an, wird jedoch nicht beantwortet:
Kollege @gastric hat es ja oben schon beantwortet. Bei einem solchen Ping ist es oftmals wichtig eine dedizierte IP Adresse als Absender mitzugeben. In sofern kann es Sinn machen im Reiter "Advanced" des Ping Menüs auch eine dedizierte Absender IP eines MT Interfaces mitzugeben. Ansonsten wird willkürlich eine je nach IP Adressierung genommen was dann den Ping wegen ggf. fehlender Routen usw. scheitern lässt, ganz besonders im VPN Umfeld. Das solltest du also beachten.Der Ping Fehler oben ist also de facto am Server selber zu sehen. Ggf. fehlt dort die Default Route auf den MT im Netzwerk Setup?! Auch tcpdump (auch hier) am Server kann helfen zu checken was genau mit den ICMP Paketen (Ping) am Server passiert!
Zu den Sicherheitsfehlern der Firewall hat Kollege @gastric ja schon deutliche Worte gefunden.
Wenn du hier unsicher bist reboote den MT und belasse die Default Konfig auf dem Router. Der richtet eine wasserdicht arbeitende Firewall mit entsprechenden Regeln und NAT am ether1 Port ein die du dann einfach nur erweitern bzw. auf deine Belange customizen musst. Wenn man unsicher ist, ist das immer eine sichere Bank.
Was du auch machen kannst ist, wie oben schon angesprochen, diese Default FW Settings einfach in deine bestehende Konfig zu übernehmen.
Nö, genauso offen wie vorher da fehlt der state und first match wins.
Und wenn du die Forward Chain am Ende komplett zu machst musst du immer an alle Verbindungen denken, seinen es DST-NATs oder Traffic der aus dem VPN an andere Stationen geht. Deswegen sag ich ja Firewall Grundlagen zu den Chains sind unerlässlich wenn du selbst das Regelwerk bauen willst, ansonsten wie oben verlinkt die Firewall Config Seite von Mikrotik durchlesen .
Bau mal im Lab von Hand mit iptables oder nftables eine Firewall auf, denn im Grunde ist die Mikrotik Firewall gleich aufgebaut wie die.
Unerlässlich fürs Verständnis des Regelwerkes ist diese Seite
https://help.mikrotik.com/docs/spaces/ROS/pages/328227/Packet+Flow+in+Ro ...
add action=accept chain=forward comment="ALLG. | Aufgebaute Verbindungen erlauben"
Und wenn du die Forward Chain am Ende komplett zu machst musst du immer an alle Verbindungen denken, seinen es DST-NATs oder Traffic der aus dem VPN an andere Stationen geht. Deswegen sag ich ja Firewall Grundlagen zu den Chains sind unerlässlich wenn du selbst das Regelwerk bauen willst, ansonsten wie oben verlinkt die Firewall Config Seite von Mikrotik durchlesen .
Bau mal im Lab von Hand mit iptables oder nftables eine Firewall auf, denn im Grunde ist die Mikrotik Firewall gleich aufgebaut wie die.
Unerlässlich fürs Verständnis des Regelwerkes ist diese Seite
https://help.mikrotik.com/docs/spaces/ROS/pages/328227/Packet+Flow+in+Ro ...
Guck vielleicht besser mal hier:
https://help.mikrotik.com/docs/spaces/ROS/pages/328513/Building+Advanced ...
https://help.mikrotik.com/docs/spaces/ROS/pages/328513/Building+Advanced ...
Wenn du die Hälfte nicht richtig übernimmst, tja 🤷. Ich kann nur von solchen Videos abraten. Wenn du von sowas nur abkupferst, lernst du nichts. Besser ist es wenn man von Grund auf das Chain-System auch versteht dann kann man sich später auch selbst helfen und steht nicht wie ein Ochs vorm Berg wenn mal was nicht so will wie man selbst.
Die Lernkurve beim Mikrotik ist sehr steil, aber die Investition lohnt sich, glaub's mir.
Ich werde mal mit der Default-Konfiguration komplett von vorne beginnen...
Besser ist das nur wenn man sich selbst etwas anstrengen muss lernt man auch nachhaltig..Die Lernkurve beim Mikrotik ist sehr steil, aber die Investition lohnt sich, glaub's mir.