bernhard-b
Goto Top

Cisco IPSEC VPN - Magic Packet (WOL) - ip helper-address

Hallo zusammen,

ich möchte gerne Rechner aus der Ferne per Wake on Lan einschalten können. Im Ziel-Netzwerk funktioniert das WOL bereits. Das Aufwecken via VPN (End-to-Site) funktioniert jedoch nicht.
Als Gateway im lokalen Netz fungiert ein Cisco 886VA-K9 Router, der Zugriff geschieht via IPSEC VPN mittels Shrew Soft Client. Vorerst einmal von einem entfernten Windows 10 Rechner, langfristig auch von iOS/Android Tablet.
Das Magic Packet wird via Broadcast auf Port 7 (UDP) gesendet. Ich habe bereits herausgefunde, dass das Paket nicht ankommt, da der Broadcast vom Router nicht weitergeleitet wird. Ich habe ebenfalls gelesen, dass es mittels ip helper-address möglich sein soll, den Broadcast weiterzuleiten. Da ich keine Testkonfiguration zur Verfügung habe, wollte ich hier einmal nachfragen, bevor ich anfange zu konfigurieren, auch weil mit der Befehl noch nicht ganz eingegangen ist. Als Referenz dient mir: Cisco IOS IP Application Services Command Reference

1. Auf welches Interface muss der Befehl angewendet werden?
interface Dialer1 -> WAN Interface
interface Vlan1 -> Aufzuweckende Rechner
interface Virtual-Template2 type tunnel -> VPN Tunnel

2. Kann die helper-address auch ein Broadcast Adresse sein?
Also falls sich die aufzuweckenden Rechner beispielsweise im Subnetz 192.168.1.0 befinden, kann dann der Befehl wie folgt lauten
router(config)# interface xyz
router(config-if)# ip helper-address 192.168.1.255

3. Gibt es hierbei Sicherheitsbedenken?
Soweit ich das verstehe, kann diese Weiterleitung nur von entfernten Rechner, die per VPN zugreifen genutzt werden.
Könnte man dieses Weiterleitung noch weiter einschränken, z.B. nur bestimmte Geräte mit bekannten MAC Adressen dürfen Broadcast weiterleiten?

Auszug aus der config:
crypto isakmp policy 100
 encr aes 256
 hash sha256
 authentication pre-share
 group 14
!
crypto isakmp client configuration group VPN-Net
 key ----geheim----
 pool vpnpool
 save-password
 max-users 5
crypto isakmp profile VPN-Profile
   match identity group VPN-Net
   client authentication list clientauth
   isakmp authorization list groupauth
   client configuration address respond
   virtual-template 2
!
!
crypto ipsec transform-set VPN esp-aes 256 esp-sha-hmac
 mode tunnel
!
crypto ipsec profile IPSEC-Profile
 set transform-set VPN

interface Virtual-Template2 type tunnel
 description VPN Interface
 ip unnumbered Vlan1
 ip nat inside
 ip virtual-reassembly in
 tunnel mode ipsec ipv4
 tunnel protection ipsec profile IPSEC-Profile

interface Vlan1
 description Lokales Netzwerk
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly in
 ip tcp adjust-mss 1452

Mit freundlichen Grüßen Bernhard

Content-ID: 313353

Url: https://administrator.de/contentid/313353

Ausgedruckt am: 22.11.2024 um 02:11 Uhr

aqui
aqui 23.08.2016, aktualisiert am 24.08.2016 um 13:50:22 Uhr
Goto Top
Auf welches Interface muss der Befehl angewendet werden?
Die ip helper Adresse oder das Netzwerk kommt immer auf das Interface von dem diese UDP Broadcast Anfrage kommt.
Die Cisco Dokumentation beschreibt das auch eindeutig.
Sprich bei dir also auf dem Interface wo der Rechner oder Gerät sitzt was das WoL Paket ans Aufweck Ziel schickt !
Kann die helper-address auch ein Broadcast Adresse sein?
Ja, die Cisco Konfig sieht das vor. Bitte Doku lesen ! <Zitat>
"The helper address can be a specific DHCP server address, or it can be the network address if other DHCP servers are on the destination network segment. Using the network address enables other servers to respond to DHCP requests."
</Zitat>
Du gibst als Ziel also keinen Broadcast Adresse an sondern immer die Netzwerk Adresse des Zielnetzes. (Alle Hostbits auf 0)
Gibt es hierbei Sicherheitsbedenken?
Nein.
Soweit ich das verstehe, kann diese Weiterleitung nur von entfernten Rechner, die per VPN zugreifen genutzt werden.
Das ist natürlich Unsinn. Bitte auch hier die Doku zu den Helpern lesen !
Alle Rechner die entsprechende UDP Broadcasts mit den entsprechend in der Konfig definierten Ports am Helper Adress Segment senden werden zum Helper Ziel geforwardet.
Einschränken kannst du das nur mit einer ACL am Interface die ggf. einzelne Clients dort filtert und nur bestimmte IPs und Ports durchlässt. Nach Mac Adresse ginge das auch.
Weiterleiten tut das ja der Cisco selber, niemals aber das Endgerät was diese UDP Broadcasts sendet...logisch !
Per Default forwardet der Cisco mit einer Helper Adress alle Broadcasts der folgenden UDP Protokolle:
TFTP - port 69
Domain Name System (DNS) - port 53
Time service - port 37
NetBIOS Name Server - port 137
NetBIOS Datagram Server - port 138
Bootstrap Protocol (BOOTP) - port 67
TACACS - port 49

Weitere müsstest du mit dem Kommando (no) ip forward-protocol udp xyz entsprechend customizen bei dir falls erforderlich.
Wenn du bzw. deine App also UDP 7 nutzt dann fehlt dir ein ip forward-protocol udp 7 natürlich. Ohne das würden UDP 7 Broadcasts nicht geforwardet sondern logischerweise nur das was im Default ist oben.
UDP 7 ist recht ungewöhnlich. Normal wird immer UDP 9 (Discard) verwendet ! Hast du mal mit dem Wireshark überprüft ob das wirklich 7 ist ?
So oder so musst du aber den Port zusätzlich definieren.
Grundlegende Testkonfigs findest du hier:
Cisco 880, 890 und ISR Router Konfiguration mit xDSL, Kabel oder FTTH Anschluss plus VPN und IP-TV
bzw. VPN auch hier:
IPsec VPN Praxis mit Standort Vernetzung Cisco, Mikrotik, pfSense, FritzBox u.a
aqui
aqui 25.08.2016 um 10:24:23 Uhr
Goto Top
Wenns das denn nun gewesen sein sollte bitte dann auch
Wie kann ich einen Beitrag als gelöst markieren?
nicht vergessen !
Bernhard-B
Bernhard-B 26.08.2016 um 18:17:23 Uhr
Goto Top
Hallo aqui,

nein das Problem ist leider noch nicht gelöst. Ich kam auch leider erst heute dazu mich weiter damit auseinanderzusetzen.

Du beziehst dich in deiner Antwort auf die Doku, das Zitat kann ich in der von mir verlinken Code Reference leider nicht finden, ich vermute daher, dass du dich auf eine andere Doku beziehst die ich nicht kenne (oder ich einfach doof bin).

Bezüglich des interface sagt die Code Reference:
Zitat:
To enable forwarding of User Datagram Protocol (UDP) broadcasts, [...], received on an interface, use the ip helper-address command in interface configuration mode.

Hier liegt mein Verständnisproblem: Ich stelle eine VPN-Verbindung über das WAN Interface des Routers her, dabei wird ein Virtual-Access Interface, entsprechend des VPN-Templates erstellt. Kommt der Broadcast nun also auf dem virtuellen Interface an oder doch auf dem Dialer Interface.

Ich habe mittlerweile beides getestet (interface dialer1 und interface Virtual-Template2 type tunnel ): ip helper-address 192.168.1.255 (<- Subnetz in dem die aufzuweckenden Rechner liegen) Leider ohne Erfolg.

Was auf dem obigen Konfig-Auszug nicht zu sehen ist, ich bekommen wenn ich mich per VPN connecte ebenfalls eine IP aus dem Subnetz, das ich erreichen will:
ip local pool vpnpool 192.168.1.100 192.168.1.109

Zum Port:
Ich verwende derzeit zwei Tools: Wake on Lan Tools 2 und wol.exe (Konsolenprogramm)
Bei beiden habe ich die Möglichkeit den Port auf dem der Broadcast gesendet wird selber festzulegen, was ich mit Wireshark auch überprüft habe. Mit dem Konsolenprogramm hab ich zusätzlich die Möglichkeit zu erzwingen, von welchem Netzwerkadapter die Broadcast gesendet wird.

Ich habe hierfür die Ports 7 und 9 der Konfiguration hinzugefügt:
ip forward-protocol udp echo
ip forward-protocol udp discard
und es ebenfalls auf den Ports 37, 49, 53, 67, 69, 137, 138 versucht, ohne Erfolg.


Mfg Bernhard
aqui
aqui 26.08.2016 um 20:52:10 Uhr
Goto Top
ich vermute daher, dass du dich auf eine andere Doku beziehst
Ja, ich beziehe mich auf die offizielle Cisco Command Line Reference für IOS !
Das ist vollkommen irrelevant. Ser Broadcast kommt erstmal auf dem lokalen LAN Interface an wo der Client sitzt der diesen Broadcast generiert. Folglich kommt HIER also zuallererst der Broadcast an !
Deshalb gehört die Helper Adresse ja auch an das LAN Interface und nirgend woanders hin.
Der Cisco ersetzt dann die Broadcast Adresse mit seiner lokalen Interface Adresse des Helper Interfaces und forwardet es ans Ziel. Entweder als Unicast an die Helper IP oder als Broadcast im Zielnetz wenn die Helper IP ene Netzwerkadresse ist. Eigentlich ganz einfach....
Auf WAN oder Tunnel Interface kommt keine Helper IP. Einzige Ausnahme wenn der Client ein PC per VPN Dialin ist.
Dann kommt sie statt LAN auf das Virtual Tunnel Interface...klar.

Du solltest auch beachten das UDP 7 NICHT geforwardet wird wenn du es nicht explizit konfigurierst was du aber ja richtigerweise gemacht hast.
Klappt das nicht solltest du mal den Debugger anschmeissen und sehen wo das Paket bleibt.
Wenn alle Stricke reissen kann das ein möglicher IOS Bug sein und du sollrest einen Case im Cisco TAC eröffnen.
ich bekommen wenn ich mich per VPN connecte ebenfalls eine IP aus dem Subnetz, das ich erreichen will:
Das ist unverstänflich ?? Ist das ein Pool aus einem kokalen Subnetz ??
Wenn dann solltest du immer mit IP unnumbered arbeiiten auf einem lokalen Interface wozu dieser Pool gehört.
Sieh dir das o.a. Praxistutorial an für eine Beispielkonfig.