mrkw01
Goto Top

Routerboard Wireguard-Verbindung nur für ausgewählte Geräte

Hallo zusammen

ich möchte in meinem Haus verschiedene Endgeräte (nicht alle) grundsätzlich nur über eine Wireguard-Verbindung (über Mullvad) ins Internet lassen.

Ich habe momentan eine Wireguard-Verbindung eingerichtet die auch funktioniert wenn ich mich vom Handy aus verbinde.

Ich bin jetzt an dem Punkt, dass ich nicht weiß, wie ich nur bestimmte Geräte über die Wireguard-Verbindung kommunizieren lasse und der Rest ohne Wireguard funktioniert. Meine Idee war es die MAC-Adressen der Geräte die über Wireguard kommunizieren sollen über Wireguard zu leiten.
Einstellung der DNS Server, der Routen, der Firewall-Regeln sind die Knackpunkte wo ich nicht weiter komme und wo mir die Erfahrung fehlt.

Ich habe meine Routerboard-Config mal angehangen. Evtl. kann mir ja der ein oder andere einen Hinweis oder Tipp geben wie ich das einstellen kann.

Momentan ist die Route über den Gateway 192.168.1.2 deaktiviert, damit über Wireguard gesendet wird.

Danke für Eure Unterstützung!


# 2025-02-25 07:24:52 by RouterOS 7.17.2
# software id = YKX2-J903
#
# model = RB750Gr2
# serial number = GEHEIMdfsf
/interface bridge
add name=Bridge_LAN_e2
add name=Bridge_LAN_e3-e5
/interface ethernet
set [ find default-name=ether1 ] name=e1_WAN
set [ find default-name=ether2 ] name=e2_LAN
set [ find default-name=ether3 ] name=e3_LAN
set [ find default-name=ether4 ] name=e4_LAN
set [ find default-name=ether5 ] name=e5_LAN
/interface wireguard
add comment="Wireguard Interface" listen-port=51820 mtu=1420 name=\  
    WG_ch-zrh-wg-003
/ip pool
add name=DHCP-IP-Pool-172.16.0.xx ranges=172.16.0.20-172.16.0.254
add name=DHCP-IP-Pool-192.168.1.xx ranges=192.168.1.160-192.168.1.170
/ip dhcp-server
add address-pool=DHCP-IP-Pool-172.16.0.xx interface=Bridge_LAN_e2 lease-time=\
    1w3d30m name=DHCP-Server_LAN
/interface bridge port
add bridge=Bridge_LAN_e3-e5 interface=e4_LAN
add bridge=Bridge_LAN_e3-e5 interface=e5_LAN
add bridge=Bridge_LAN_e2 interface=e2_LAN
add bridge=Bridge_LAN_e3-e5 interface=e3_LAN
/ip neighbor discovery-settings
set discover-interface-list=!dynamic
/interface wireguard peers
add allowed-address=0.0.0.0/0 endpoint-address=193.32.127.68 endpoint-port=\
    51820 interface=WG_ch-zrh-wg-003 name=peer1 public-key=\
    "dasbleibtgeheimundsagichnichtUxGjCSTrvEcygW8"  
/ip address
add address=172.16.0.1/24 interface=Bridge_LAN_e2 network=172.16.0.0
add address=192.168.1.3/24 interface=e1_WAN network=192.168.1.0
add address=10.67.57.91 interface=WG_ch-zrh-wg-003 network=10.67.57.91
/ip dhcp-client
add comment="IP, Route und DNS fest vergeben => deaktiviert" disabled=yes \  
    interface=e1_WAN
/ip dhcp-server network
add address=172.16.0.0/24 gateway=172.16.0.1
/ip dns
set allow-remote-requests=yes servers=10.64.0.1
/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=\
    established,related disabled=yes hw-offload=yes
add action=accept chain=forward connection-state=established,related \
    disabled=yes
add action=drop chain=forward connection-state=invalid disabled=yes
add action=drop chain=forward connection-nat-state=!dstnat connection-state=\
    new disabled=yes in-interface=e1_WAN
/ip firewall nat
add action=masquerade chain=srcnat out-interface=WG_ch-zrh-wg-003
add action=masquerade chain=srcnat out-interface=e1_WAN
/ip route
add comment="Route ins Internet mit Wireguard" disabled=no distance=1 \  
    dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 routing-table=main scope=\
    30 suppress-hw-offload=no target-scope=10
add comment="Endpoint von Wireguard \FCber normalen Gateway leiten" disabled=\  
    no distance=1 dst-address=193.32.127.68/32 gateway=192.168.1.2 \
    routing-table=main scope=30 suppress-hw-offload=no target-scope=10
add comment="normale Route ins Internet, ohne Wireguard" disabled=yes \  
    distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.2 routing-table=main \
    scope=30 suppress-hw-offload=no target-scope=10
/system clock
set time-zone-name=Europe/Zurich
/system note
set show-at-login=no
01
02

Content-ID: 671601

Url: https://administrator.de/forum/routerboard-wireguard-verbindung-nur-fuer-ausgewaehlte-geraete-671601.html

Ausgedruckt am: 29.03.2025 um 05:03 Uhr

151512
151512 25.02.2025 aktualisiert um 15:19:31 Uhr
Goto Top
Simples Policy Routing entweder mittels Mangle oder Routing Rule: Einfach nur entsprechende Geräte in der Routing-Rule auswählen oder in der Mangle-Rule filtern
Wireguard Traffic (Gateway redirect)

Bsp.:
/interface bridge
add name=Bridge_LAN_e2
add name=Bridge_LAN_e3-e5

/interface ethernet
set [ find default-name=ether1 ] name=e1_WAN
set [ find default-name=ether2 ] name=e2_LAN
set [ find default-name=ether3 ] name=e3_LAN
set [ find default-name=ether4 ] name=e4_LAN
set [ find default-name=ether5 ] name=e5_LAN

/interface list
add name=LAN
add name=WAN

/interface list member
add list=LAN interface=Bridge_LAN_e2
add list=LAN interface=Bridge_LAN_e3-e5
add list=WAN interface=e1_WAN

/routing table
add name=tableWG fib=yes

/interface wireguard
add comment="Wireguard Interface" listen-port=51820 mtu=1420 name=WG_ch-zrh-wg-003  

/interface wireguard peers
add allowed-address=0.0.0.0/0 endpoint-address=193.32.127.68 endpoint-port=\
    51820 interface=WG_ch-zrh-wg-003 name=peer1 public-key=\
    "dasbleibtgeheimundsagichnichtUxGjCSTrvEcygW8"  

/ip pool
add name=DHCP-IP-Pool-172.16.0.xx ranges=172.16.0.20-172.16.0.254
add name=DHCP-IP-Pool-192.168.1.xx ranges=192.168.1.160-192.168.1.170

/ip dhcp-server
add address-pool=DHCP-IP-Pool-172.16.0.xx interface=Bridge_LAN_e2 lease-time=\
    1w3d30m name=DHCP-Server_LAN

/interface bridge port
add bridge=Bridge_LAN_e3-e5 interface=e4_LAN
add bridge=Bridge_LAN_e3-e5 interface=e5_LAN
add bridge=Bridge_LAN_e2 interface=e2_LAN
add bridge=Bridge_LAN_e3-e5 interface=e3_LAN

/ip neighbor discovery-settings
set discover-interface-list=!dynamic

/ip address
add address=172.16.0.1/24 interface=Bridge_LAN_e2 network=172.16.0.0
add address=192.168.1.3/24 interface=e1_WAN network=192.168.1.0
add address=10.67.57.91 interface=WG_ch-zrh-wg-003 network=10.67.57.91

/ip dhcp-server network
add address=172.16.0.0/24 gateway=172.16.0.1

/ip dns
set allow-remote-requests=yes servers=1.1.1.1

/ip firewall address-list
add list=RFC1918 address=10.0.0.0/8
add list=RFC1918 address=192.168.0.0/16
add list=RFC1918 address=172.16.0.0/12

/ip firewall filter
add action=fasttrack-connection chain=forward connection-state=established,related hw-offload=yes connection-mark=no-mark
add action=accept chain=forward connection-state=established,related,untracked
add action=drop chain=forward connection-state=invalid
add action=reject chain=forward src-mac-address=AA:BB:CC:DD:EE:FF dst-address-list=!RFC1918 out-interface-list=WAN comment="Killswitch for MAC"  
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=accept chain=input in-interface-list=LAN comment="Allow access to router from LAN"  
add action=drop chain=input comment="General DROP"  

/ip firewall nat
add action=masquerade chain=srcnat out-interface=WG_ch-zrh-wg-003
add action=masquerade chain=srcnat out-interface=e1_WAN

/ip firewall mangle
add comment="Redirect Internet-Traffic from client with MAC AA:BB:CC:DD:EE:FF over WG Tunnel" chain=prerouting src-mac-address=AA:BB:CC:DD:EE:FF in-interface-list=LAN dst-address-list=!RFC1918 action=mark-routing new-routing-mark=tableWG  

/ip route
add comment="Route ins Internet mit Wireguard nur mit Routing-TAG" disabled=no distance=1 \    
    dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 routing-table=tableWG
add comment="normale Route ins Internet, ohne Wireguard" disabled=no \    
    distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.2 routing-table=main \
    scope=30 suppress-hw-offload=no target-scope=10

/system clock
set time-zone-name=Europe/Zurich

/system note
set show-at-login=no


Gruß m.
mrkw01
mrkw01 25.02.2025 um 13:52:11 Uhr
Goto Top
Oh danke für das Beispiel 👍. Da werde ich mich jetzt mal ausgiebig mit beschäftigen. Danke für die Zeit die Du investiert hast. Auch unter dem Link sind ja zahlreiche zusätzliche Informationen. Danke.
mrkw01
mrkw01 25.02.2025 um 15:17:13 Uhr
Goto Top
Bei Zeile 69 steht
add action=reject chain=forward src-mac-address=AA:BB:CC:DD:EE:FF dst-address-list=!RFC1918 out-interface=WAN comment="Killswitch for MAC"  
Müsste es evtl.
add action=reject chain=forward src-mac-address=AA:BB:CC:DD:EE:FF dst-address-list=!RFC1918 out-interface-list=WAN comment="Killswitch for MAC"  
oder
add action=reject chain=forward src-mac-address=AA:BB:CC:DD:EE:FF dst-address-list=!RFC1918 out-interface=e1_WAN comment="Killswitch for MAC"  
heißen?


Und bei Zeile 83-85
/ip route
add comment="Route ins Internet mit Wireguard nur mit Routing-TAG" disabled=no distance=1 \      
    dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 routing-table=tableWG
fügt der Routerboard immer wieder automatisch
scope=30 suppress-hw-offload=no target-scope=10
ein
Sieht dann so aus
/ip route
add comment="Route ins Internet mit Wireguard nur mit Routing-TAG" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 \  
    routing-table=tableWG scope=30 suppress-hw-offload=no target-scope=10
Ich kann den Scope wegmachen in der Winbox, aber er kommt immer wieder rein.
151512
151512 25.02.2025 aktualisiert um 15:25:58 Uhr
Goto Top
Zitat von @mrkw01:

Bei Zeile 69 steht
add action=reject chain=forward src-mac-address=AA:BB:CC:DD:EE:FF dst-address-list=!RFC1918 out-interface=WAN comment="Killswitch for MAC"  
Ja war ein Vertipper, habe das auf "out-interface-list", korrigiert, kannst du natürlich stattdessen auch explizit auf das Interface setzen wenn du out-interface nutzt, das ist reine Geschmacksfrage und erledigt beides im Endeffekt das gleiche.

Und bei Zeile 83-85
/ip route
add comment="Route ins Internet mit Wireguard nur mit Routing-TAG" disabled=no distance=1 \      
    dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 routing-table=tableWG
fügt der Routerboard immer wieder automatisch
scope=30 suppress-hw-offload=no target-scope=10
ein
Sieht dann so aus
/ip route
add comment="Route ins Internet mit Wireguard nur mit Routing-TAG" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 \  
    routing-table=tableWG scope=30 suppress-hw-offload=no target-scope=10
Ich kann den Scope wegmachen in der Winbox, aber er kommt immer wieder rein.

Ist normal, das sind Standard-Werte beim Export, man muss sie beim Anlegen nicht explizit angeben die werden ohne Angabe von selbst gesetzt und sind auch OK so, da musst du nichts ändern.
mrkw01
mrkw01 26.02.2025 aktualisiert um 07:32:37 Uhr
Goto Top
Hallo,

ich habe jetzt alles umgesetzt.
/interface bridge
add name=Bridge_LAN_e2
add name=Bridge_LAN_e3-e5

/interface ethernet
set [ find default-name=ether1 ] name=e1_WAN
set [ find default-name=ether2 ] name=e2_LAN
set [ find default-name=ether3 ] name=e3_LAN
set [ find default-name=ether4 ] name=e4_LAN
set [ find default-name=ether5 ] name=e5_LAN

/interface wireguard
add comment="Wireguard Interface" listen-port=51820 mtu=1420 name=WG_ch-zrh-wg-003 private-key="dassagichnichtdassagichnichtdassagichnicht"  

/interface list
add name=LAN
add name=WAN

/ip pool
add name=DHCP-IP-Pool-172.16.0.xx ranges=172.16.0.20-172.16.0.254
add name=DHCP-IP-Pool-192.168.1.xx ranges=192.168.1.160-192.168.1.170

/ip dhcp-server
add address-pool=DHCP-IP-Pool-172.16.0.xx interface=Bridge_LAN_e2 lease-time=1w3d30m name=DHCP-Server_LAN

/routing table
add disabled=no fib name=tableWG

/interface bridge port
add bridge=Bridge_LAN_e3-e5 interface=e4_LAN
add bridge=Bridge_LAN_e3-e5 interface=e5_LAN
add bridge=Bridge_LAN_e2 interface=e2_LAN
add bridge=Bridge_LAN_e3-e5 interface=e3_LAN

/ip neighbor discovery-settings
set discover-interface-list=!dynamic

/interface list member
add interface=Bridge_LAN_e2 list=LAN
add interface=Bridge_LAN_e3-e5 list=LAN
add interface=e1_WAN list=WAN

/interface wireguard peers
add allowed-address=0.0.0.0/0 endpoint-address=193.32.127.68 endpoint-port=51820 interface=WG_ch-zrh-wg-003 name=peer1 public-key="dassagichnichtdassagichnichtdassagichnicht"  

/ip address
add address=172.16.0.1/24 interface=Bridge_LAN_e2 network=172.16.0.0
add address=192.168.1.3/24 interface=e1_WAN network=192.168.1.0
add address=10.67.57.91 interface=WG_ch-zrh-wg-003 network=10.67.57.91

/ip dhcp-server network
add address=172.16.0.0/24 gateway=172.16.0.1

/ip dns
set allow-remote-requests=yes servers=1.1.1.1

/ip firewall address-list
add address=10.0.0.0/8 list=RFC1918
add address=192.168.0.0/16 list=RFC1918
add address=172.16.0.0/12 list=RFC1918

/ip firewall filter
add action=fasttrack-connection chain=forward connection-mark=no-mark connection-state=established,related disabled=yes hw-offload=yes
add action=accept chain=forward connection-state=established,related,untracked
add action=drop chain=forward connection-state=invalid
add action=reject chain=forward comment="iphone 14 - Killswitch for MAC" dst-address-list=!RFC1918 out-interface-list=WAN reject-with=icmp-network-unreachable src-mac-address=8A:72:F7:C9:0E:BE  
add action=reject chain=forward comment="Redmi 9 - Killswitch for MAC" dst-address-list=!RFC1918 out-interface-list=WAN reject-with=icmp-network-unreachable src-mac-address=4C:63:71:FD:9A:7F  
add action=drop chain=forward connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
add action=accept chain=input connection-state=established,related
add action=drop chain=input connection-state=invalid
add action=accept chain=input comment="Allow access to router from LAN" in-interface-list=LAN  
add action=drop chain=input comment="General DROP"  

/ip firewall mangle
add action=mark-routing chain=prerouting comment="iphone 14 - Redirect Internet-Traffic from client with MAC AA:BB:CC:DD:EE:FF over WG Tunnel" dst-address-list=!RFC1918 in-interface-list=LAN new-routing-mark=tableWG src-mac-address=8A:72:F7:C9:0E:BE  
add action=mark-routing chain=prerouting comment="Redmi 9 - Redirect Internet-Traffic from client with MAC AA:BB:CC:DD:EE:FF over WG Tunnel" dst-address-list=!RFC1918 in-interface-list=LAN new-routing-mark=tableWG src-mac-address=4C:63:71:FD:9A:7F  

/ip firewall nat
add action=masquerade chain=srcnat out-interface=WG_ch-zrh-wg-003
add action=masquerade chain=srcnat out-interface=e1_WAN

/ip route
add comment="Route ins Internet mit Wireguard nur mit Routing-TAG" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=WG_ch-zrh-wg-003 routing-table=tableWG suppress-hw-offload=no target-scope=10  
add comment="normale Route ins Internet, ohne Wireguard" disabled=no distance=1 dst-address=0.0.0.0/0 gateway=192.168.1.2 routing-table=main suppress-hw-offload=no target-scope=10  

/system clock
set time-zone-name=Europe/Berlin

/system note
set show-at-login=no

Wenn ich jetzt die Firewall Regeln aktiviere, habe ich folgendes Verhalten. Hierzu habe ich folgende 3 Szenarien getestet:

alle Firewall Regeln aktiviert / MAC Adresse der Telefone per Mangle aktiviert.
Internetseiten bauen sich sehr langsam auf (teilweise bis zu einer Minute bzw. garnicht).
Ein Ping vom Mobiltelefon zu 1.1.1.1 kommt mit Timeout zurück
Ping vom Mikrotik (über Terminal) zu 1.1.1.1 dauert ca.14-15ms.
Von der Seite 192.168.1.x komme ich mit meinem PC nicht mehr auf den Mikrotik 192.168.1.3
Von der Seite 172.16.0.x komme ich mit meinen Telefonen auf den Mikrotik 172.16.0.1

alle Firewall Regeln deaktiviert / MAC Adresse der Telefon per Mangle aktiviert.
Internetseiten bauen sich zügig auf
Ein Ping vom Mobiltelefon zu 1.1.1.1 dauert ca. 25-50ms.
Ping vom Mikrotik (über Terminal) zu 1.1.1.1 dauert ca.14-15ms.
Von der Seite 192.168.1.x komme ich mit meinem PC auf den Mikrotik 192.168.1.3
Von der Seite 172.16.0.x komme ich mit meinen Telefonen auf den Mikrotik 172.16.0.1

alle Firewall Regeln deaktiviert / keine MAC Adresse der Telefon per Mangle aktiviert.
Internetseiten bauen sich zügig auf
Ein Ping vom Mobiltelefon zu 1.1.1.1 dauert ca. 25-50ms.
Ping vom Mikrotik (über Terminal) zu 1.1.1.1 dauert ca.14-15ms.
Von der Seite 192.168.1.x komme ich mit meinem PC auf den Mikrotik 192.168.1.3
Von der Seite 172.16.0.x komme ich mit meinen Telefonen auf den Mikrotik 172.16.0.1
151512
151512 26.02.2025 aktualisiert um 07:53:45 Uhr
Goto Top
alle Firewall Regeln aktiviert / MAC Adresse der Telefone per Mangle aktiviert.
Internetseiten bauen sich sehr langsam auf (teilweise bis zu einer Minute bzw. garnicht).
Trage in der Default-Route mal die GW-IP der Gegenstelle ein statt das Interface, die IP hatte ich nicht deshalb habe ich das so gelassen, ich würde da immer die GW IP eintragen und kein Interface .
Klappt hier im Test einwandfreie, du musst also nicht einen Glitch in deiner Config haben
... ich mit meinem PC nicht mehr auf den Mikrotik 192.168.1.3
Normal denn ich habe die Regeln so angelegt das ether1 als WAN Port fungiert und jegliche Anfragen von dieser Seite aus blockt. Willst du das nicht musst du es in der Firewall freischalten , dafür ist die ja da 😃. Also nicht nur Copy n Paste sondern die Regeln verstehen und entsprechend deiner Anforderungen anpassen ...

Von der Seite 172.16.0.x komme ich mit meinen Telefonen auf den Mikrotik 172.16.0.1
So war es vorgesehen, den die Interfaces sind in der Interface-List LAN und die darf laut Firewall Regeln alles.
Also FW nach deinen Anforderungen anpassen und gut is, wir kennen ja deine Anforderungen der beiden Netze nicht.
151512
151512 26.02.2025 aktualisiert um 07:55:33 Uhr
Goto Top
Hier ist auch noch ein schwerer Fehler bei dir:
/routing table
add disabled=no fib name=tableWG

Muss lauten
/routing table
add disabled=no fib=yes name=tableWG

Ohne aktive forwarding information base in der Tabelle wirkt die Default Route in der Tabelle sonst nämlich nicht.

Also nochmal genau mit meiner Config vergleichen ,dann klappt das auch.

Die nötigen Schritte hast du jetzt, jetzt bist du dran sie zu verstehen und selbst damit zu arbeiten.

Bis dahin bin ich dann mal raus und gebe dir etwas Zeit das ganze zu verarbeiten... Good Luck 👍