Port-Forwarding

Rechner per Wake-on-LAN übers Internet einschalten

Praxis & Tipps | Praxis

Seite 2: Port-Forwarding

Da die WOL-Nachricht keine weiteren Anforderungen stellt und an beliebiger Stelle im Ethernet-Frame stehen darf, lässt sie sich in verschiedenste Protokolle verpacken. Am besten eignet sich das einfache UDP. UDP-Pakete lassen sich im Unterschied zu Ethernet-Frames routen und können so beliebige Distanzen durch das Internet zurücklegen. Verschiedene Software-Tools für Linux, Windows und DOS erzeugen solche Päckchen und verschicken sie entweder als UDP-Broadcast oder an eine feste IP-Adresse – meist adressiert an den UDP-Discard-Port 9.

In einer sinnvollen Grundkonfiguration weist jeder Router diese Wecknachrichten allerdings ab, da er keinen Verkehr von außen nach innen zulässt. Einfache Hardware-Router kann man mit einem Port-Forwarding-Eintrag dazu bringen, ein eingehendes WOL-Paket ins LAN weiterzuleiten. Der Trick besteht darin, alle UDP-Pakete, die auf einem bestimmten Port ankommen – am besten wählt man einen zufälligen Port oberhalb von 50.000 – an die passende Adresse weiterzuleiten. Das ist entweder die MAC-Adresse des aufzuweckenden Rechners oder die Ethernet-Broadcast-Adresse ff:ff:ff:ff:ff:ff.

Die erste Methode funktioniert nur mit wenigen Routern, denn die meisten Modelle kennen als Ziel einer Port-Weiterleitung nur IP-Adressen, keine MACs. Für die Zuordnung von IP zu MAC ist das Protokoll ARP (Address Resolution Protocol) zuständig. Der Router fragt dabei über das Netzwerk nach, welcher MAC für die IP-Adresse zuständig ist. Eine Antwort bekommt er jedoch nur, wenn der Rechener vollständig wach ist, denn im Schlaf kennt er keine IP-Adressen und beantwortet daher die ARP-Anfragen nicht. Der Router merkt sich zwar ältere Antworten für einige Zeit (ARP-Cache), doch im Zweifel steht die MAC-Adresse des aufzuweckenden Rechners genau dann nicht mehr im Cache, wenn man sie wirklich braucht, um ihn zu wecken.

Durch das Umleiten eines UDP-Ports auf die interne Broadcast-Adresse erhalten alle Rechner das Magic Packet..

Daher eignen sich für dieses Verfahren nur Router, die ein Port-Forwarding auf eine MAC-Adresse schicken können (statt an eine IP-Adresse) oder statische ARP-Einträge erlauben, die die Zuordnung fest verankern. Bei allen anderen Modellen schickt man das magische Paket nicht gezielt an den einzuschaltenden Rechner, sondern einfach als Ethernet-Broadcast an alle. Auf den Inhalt des Pakets reagiert ja ohnehin nur derjenige mit der MAC-Adresse, die im Innern des Magic Packet steht.

Die meisten Router erzeugen einen Ethernet-Broadcast, wenn sie ein Paket an die IP-Broadcast-Adresse weiterleiten sollen. Dies ist immer die höchste Adresse im lokalen Subnetz und hängt daher von der Netzmaske ab. In einem typischen Netz mit der Netzmaske 255.255.255.0 wäre dies zum Beispiel die 192.168.1.255. Der IP-Stack des Routers setzt diesen IP-Broadcast dann in einen Ethernet-Broadcast um, und das Paket erreicht alle PCs im LAN. Eine Umleitung eines UDP-Ports des Routers auf die interne Broadcast-Adresse macht das ankommende UDP-Paket zu einem Ethernet-Frame, den alle Rechner im LAN erhalten.

Wer statt auf Hardware-Router auf eine Linux-Firewall setzt, muss einen anderen Weg wählen. Das aktuelle Netfilter-Regelwerk (iptables) verweigert es, Pakete auf Broadcast-Adressen umzuleiten. Ein kleiner Trick hilft weiter: Die Regel

iptables -t nat -A PREROUTING -i eth0 \\
-p udp -d 192.168.0.1 --dport 9 \\
-j DNAT --to 192.168.1.254:9

leitet die WOL-Pakete an eine nicht anderweitig benutzte IP-Adresse (192.168.1.254) im lokalen Netz weiter. An welche MAC-Adresse dieses Paket dann ausgeliefert wird, entscheidet der Router über seine ARP-Tabelle. Ein statischer ARP-Eintrag sorgt dafür, dass aus dem zielgerichteten UDP-Paket ein Ethernet-Broadcast wird:

arp -s 192.168.1.254 ff:ff:ff:ff:ff:ff

Einen Schönheitsfehler haben beide Ansätze aber: Mit einer solchen Konfiguration kann jeder über das Internet Rechner im lokalen Netz aufwecken. Dies ist allerdings kaum ein Sicherheitsrisiko und kostet höchstens ein paar Cent für den Strom. Eher bedenklich ist es, dass es einem potenziellen Angreifer nun möglich ist, UDP-Pakete beliebigen Inhalts in das lokale Netz zu schleusen. Die Gefahr, dass er so eine Sicherheitslücke findet, ist zwar niedrig, aber solche Pakete könnten auch zur Kommunikation mit bereits übernommenen Clients missbraucht werden. Falls man den IP-Bereich einschränken kann, aus dem Wake-up-Pakete kommen, so erhöht dies die Sicherheit deutlich.

Anzeige