Wake On LAN mit der FRITZ!Box


Oft gibt es den Wunsch den Rechner zu Hause von der Ferne aus starten zu können. Verwendet man eine FRITZ!Box als Router, ist dies mit der folgenden Anleitung möglich.
Dieses Tutorial bezieht sich auf eine FRITZ!Box 7270. Zunächst sollte ein ssh-server wie hier beschrieben auf der Box installiert werden.

Um auch von außen auf die Box zugreifen zu können muss zunächst ein DynamicDNS-Dienst eingerichtet werden. Wie das funktioniert steht auf den Hilfe-Seiten der FIRTZ!Box.

Nun muss zunächst der zu startende Rechner entsprechend konfiguriert werden. Verwendet man auf diesem Linux, gibt es hier eine gute Anleitung dazu.

Die MAC-Adresse des zu startenden Rechners kann leicht herausgefunden werden:

sudo ifconfig

Nun loggt man sich entweder per telnet oder über den schon installierten ssh-server auf die FRITZ!Box ein und öffnet die Datei debug.cfg folgendermaßen zum Bearbeiten.

cat /var/flash/debug.cfg > /var/tmp/debug.cfg
vi /var/tmp/debug.cfg

und fügt folgende Zeilen hinzu:

echo "/usr/bin/ether-wake -i eth0 xx:xx:xx:xx:xx:xx" > /var/tmp/start_script
chmod +x /var/tmp/start_script

xx:xx:xx:xx:xx:xx muss dabei durch die oben ermittelte MAC-Adresse ersetzt werden und eth0 gegenfalls durch ein anderes Interface, falls der zu startende Rechner nicht am ersten LAN-Port hängt.

Nun wird die temporäre Datei wieder in den Flash-Speicher geschrieben.

cat /var/tmp/debug.cfg > /var/flash/debug.cfg

Üblicherweise möchte man den Rechner aus dem Internet starten. Dazu ist es notwendig, einen Port für den ssh-server der Fritz!Box freizugeben. Dazu wir die ar7.cfg zum Bearbeiten geöffnet.

cat /var/flash/ar7.cfg > /var/tmp/ar7.cfg
vi /var/tmp/ar7.cfg

Nun wird diese folgendermaßen geändert:

forwardrules = "tcp 0.0.0.0:412 0.0.0.0:443 0",
      "udp 0.0.0.0:5060 0.0.0.0:5060",
      "tcp 0.0.0.0:port 0.0.0.0:22 0 # fritz-box",
      "tcp 0.0.0.0:12345 192.168.178.28:22 0 # ssh";
shaper = "globalshaper";

Es wird nur die Zeile mit # fritz-box hinzugefügt. port bezeichnet dabei einen beliebigen Port, der nach außen für den ssh-Zugriff geöffnet wird. Es empfiehlt sich einen zufälligen Port aus dem oberen Bereich zu verwenden, um Brute-Force Angriffe zu vermeiden. Der Rest der Datei bleibt unverändert, auch wenn er etwas anders aussehen sollte als hier.

Nun kann die temporäre Datei wieder zurückgeschrieben und die Box neugestartet werden.

cat /var/tmp/ar7.cfg > /var/flash/ar7.cfg
reboot

Verwendet man lokal Linux, lässt sich der Rechner zu Hause nun durch Ausführen des folgenden Befehls komfortabel aus der Ferne starten. port bezeichnet dabei den in der ar7.cfg gewählten Port.

ssh root@domain.tld -p port /var/tmp/start_script

Natürlich kann man diesen Befehl auch wieder in ein Script speichern.