PC-Zugriff aus der Ferne

10.05.2006 von Albert Lauchner
Mit "Wake on LAN" lassen sich selbst ausgeschaltete PCs über das Netzwerk hochfahren. Eine Erweiterung für die Fritz Box ermöglicht den Fernstart und den Fernzugriff auf alle Dateien des PCs auch über DSL. Und dank ssh kommt die Sicherheit dabei nicht zu kurz.

Von Albert Lauchner, tecChannel.de

Wer kennt das nicht: Man sitzt in der Firma oder bei Freunden und benötigt dringend Daten, die auf dem heimischen PC liegen. Ist keiner zu Hause, um den PC einzuschalten und zu bedienen, kommt man an die Daten nicht heran. Wer öfter einen Zugriff auf seinen PC aus der Ferne benötigt, mag sich überlegen, den PC rund um die Uhr durchlaufen zu lassen. Der Umweltaspekt sowie der hohe Verschleiß von mechanischen PC-Komponenten und thermisch beanspruchten Bauteilen sprechen jedoch dagegen.

Heutzutage beherrscht aber fast jeder halbwegs aktuelle PC "Wake on LAN" (WoL). Damit kann der Administrator in Firmen die PCs starten und die darauf installierte Software updaten, wenn die Benutzer sie beispielsweise nachts nicht benötigen. Doch für WoL sind spezielle Datenpakete über das Netzwerk nötig, die viele Router nicht aus dem Internet weiterleiten. Ein Fernstart über das Web scheidet daher zunächst aus.

Wenn man jedoch das Linux-Betriebssystem der Fritz-Box-DSL-Router um entsprechende Module erweitert, lässt sich jeder angeschlossene PC aus der Ferne starten. Hat man darauf eine Remote-Desktop-Software installiert, kann man anschließend damit arbeiten, als wäre man zu Hause.

Im Folgenden beschreiben wir, wie Sie Ihre Fritz Box um diese Funktion erweitern und den Fernstart über ssh entsprechend absichern. Als Voraussetzung müssen Sie den telnet-Zugang freigeschaltet haben. (Wie das geht, lesen Sie im Beitrag "Fritz Box: Tuning und Hacks" in der ComputerPartner-Ausgabe 09/06, Seite 50, oder auf computerpartner.de, Webcode-Suche: "fritzbox_tuning".)

Wake on LAN

Wake on LAN wurde entwickelt, um das Management der PCs in Firmen zu vereinfachen. Zum Fernstart eines PCs sendet der Administrator ein so genanntes "Magic Packet" über das Netzwerk.

Das Magic Packet kann direkt auf dem Ethernet-Rahmen aufsetzen und ist so aufgebaut, dass es im normalen Netzwerkalltag nicht auftritt. Es enthält zunächst wie jedes Ethernet-Paket die MAC-Adresse des Ziels und des Empfängers sowie die Länge der darauf folgenden Daten. Im Datenteil muss dann an beliebiger Stelle sechs Mal der Hexcode FF stehen. Darauf folgt 16 Mal die Mac-Adresse des zu startenden Rechners.

Laut Definition kann dieser komplette Magic-Block irgendwo im Datenteil stehen. Somit ist es kein Problem, dieses Magic Packet in einem TCP/IP-Rahmen innerhalb des Ethernet-Frames unterzubringen und damit auch routebar zu machen.

Probleme mit dem Magic Packet

Doch in der Praxis ist das Routing des Magic Packets über das Internetprotokoll nicht ganz so einfach:

3 Ein ausgeschalteter Rechner, dessen Netzwerkkarte im Standby die Pakete analysiert, besitzt zwar eine in der Netzwerkkarte fest abgelegte MAC-Adresse. Er hat aber keine gültige IP-Adresse. Denn beispielsweise für einen DHCP-Server ist der Rechner offline, sodass er die IP-Adresse, die der PC vor dem Herunterfahren hatte, nach einer gewissen Zeit an einen anderen PC weitergeben darf.

3 Selbst wenn man feste IP-Adressen vergibt, läuft der Rechner meist im lokalen Netz und hat keine aus dem Internet erreichbare öffentliche IP-Adresse. Somit ist eine Portweiterleitung im DSL-Router nötig. Diese funktioniert aber nicht bei allen Routern, wenn die angesprochene IP-Adresse offline ist.

3 Als Ausweg bieten manche DSL-Router (nicht die Fritz Box) an, alle UDP-Pakete aus dem Internet beispielsweise auf Port 9 als Broadcast in das gesamte lokale Netzwerk zu schicken. Doch schon allein aus Sicherheitsgründen sollte man eine derartige Lösung ablehnen.

Die sicherste und eleganteste Lösung für all diese Schwierigkeiten ist es daher, das Magic Packet als Ethernet-Paket direkt im lokalen Netzwerk des einzuschaltenden Rechners zu erzeugen. In unserem Fall ist dies auch kein Problem, da die Fritz Box selbst diese Aufgabe übernehmen wird. Für den zur Fritz Box nötigen sicheren Zugang aus dem Internet werden wir einen ssh-Server installieren. Somit entsteht als Nebenprodukt ein sehr sicherer Weg, über den man die Fritz Box auch extern über das Internet konfigurieren kann.

Voraussetzungen für Wake on LAN

Bevor Sie versuchen, Ihren PC über das Internet zu starten, sollten Sie das passende Setup zunächst über einen zweiten PC in Ihrem Netzwerk testen. Denn damit WoL funktioniert, müssen etliche Bedingungen erfüllt sein.

3 Ihr Netzteil muss den PC selbst im ausgeschalteten Zustand mit einer Hilfsspannung (Standby-Spannung) versorgen. Dies ist bei Systemen, die nicht älter als vier Jahre sind, fast immer der Fall.

3 Sie müssen im Bios Ihres Rechners WoL aktivieren. Dies geschieht meist in den Powermanagement-Optionen. Nicht immer taucht dabei die Netzwerkkarte als eigener Punkt auf. Mitunter verbirgt sich diese Einstellung unter dem Punkt "Power on by PCI Device". Aber diese Einstellung genügt meist noch nicht.

3 Als Nächstes müssen Sie unter Windows Ihre Netzwerkkarte für WoL freischalten. Meist lässt sich dies über den Gerätemanager im Punkt Energieverwaltung des Netzwerkadapters erledigen.

3 Als Letztes benötigen Sie noch die MAC-Adresse Ihres PCs. Diese erhalten Sie über den Befehl "ipconfig / all" auf der Commandline.

Wenn Sie jetzt den PC herunterfahren, sollte er für WoL bereit sein. Falls Sie einen zweiten PC im Netzwerk haben, können Sie das mit einem der unzähligen WoL-Tools testen.

etherwake auf der Fritz Box

Funktioniert WoL von einem zweiten PC aus, ist der erste Start via Fritz Box keine große Kunst mehr. Der Router muss nach seinem Start erst einmal ein entsprechendes Programm nachladen. Als Klassiker unter Linux kommt "etherwake" zum Versenden des Magic Packets zum Einsatz.

Loggen Sie sich für einen ersten Test via telnet in die Fritz Box ein. Wechseln Sie in das Verzeichnis "/var/tmp", das auf den Arbeitsspeicher der Box gemappt ist, und laden Sie mit "wget" das Programm etherwake herunter. Mit "chmod" müssen Sie anschließend die Rechte auf ausführbar setzen.

cd /var/tmp

wget http://www.tecchannel.de /download/432967/etherwake

chmod +x /var/tmp/etherwake

Zum Start eines PCs benötigt etherwake neben der Option "-i" zwei weitere Parameter beim Aufruf, die MAC-Adresse und das zu benutzende Interface der Fritz Box. Bei der Fritz Box ata lautet dieses "intf". Ansonsten sind für das Netzwerk-Interface die Namen "eth0" und bei Boxen mit zwei LAN-Ports auch "eth1" vergeben. In unserem Laboraufbau startet die Fritz Box den Test-PC über

./etherwake -i eth0 00:0c:6e:93 :23:87

Vergessen Sie nicht das "./" am Anfang, denn Linux startet Programme nur bei expliziter Pfadangabe.

Steuerung über ssh

Zwar können Sie jetzt einen PC via telnet hochfahren. Doch bislang ist telnet nur vom internen Netz aus erreichbar. Das sollte auch so bleiben, den telnet ist absolut unsicher. Es überträgt alle Informationen inklusive der Login-Daten unverschlüsselt über das Netzwerk. Wer telnet für den DSL-Anschluss nach außen freigibt, kann seine DSL-Kennung und die Passwörter für die VoIP-Provider auch gleich in Newsgroups posten.

Die moderne und sichere Version von telnet ist "ssh". Doch von Haus aus beherrscht die Fritz Box kein ssh. Also gilt es zunächst, nach der bewährten Methode einen ssh-Server für die Fritz Box nachzuladen.

Als ssh-Server haben wir das Paket "dropbear" ausgewählt. Mit folgenden Eingaben auf dem telnet-Prompt laden Sie dropbear zunächst manuell zum Test auf Ihre Fritz Box:

cd /var/tmp

wget http://www.tecchannel.de /download/432967/dropbear

chmod +x /var/tmp/dropbear

ssh und die Sicherheit

ssh arbeitet sowohl mit Public/Private Keys zur gegenseitigen Authentifizierung von Clients und Servern als auch mit Passwörtern. Wir gehen von folgendem Szenario aus: Sie sitzen irgendwo auf der Welt und sind nicht darauf vorbereitet, auf Ihren PC zugreifen zu müssen. Deshalb haben Sie weder den Public Key Ihres ssh-Servers noch Ihren persönlichen Private Key mit sich.

Durch den fehlenden Public Key Ihres Servers kann sich dieser Ihnen gegenüber nicht ausweisen. So laufen Sie Gefahr, sich gar nicht auf Ihrer Fritz Box anzumelden, sondern auf einer gefälschten Seite, die Ihre Fritz Box nur simuliert, um Ihr Passwort abzufangen. Dieser Angriff ist aber nur mit hohem Aufwand und nur an wenigen Stellen im Netzwerk möglich, sodass dieses Risiko sehr gering erscheint.

ssh bietet für den Client die Möglichkeit, sich über ein Passwort oder über einen Private Key des Users einzuloggen. Wir haben uns für die Passwort-Lösung entschieden, da man dieses immer bei sich hat. Da ssh die Kommunikation stark verschlüsselt, besteht nicht wie bei telnet die Gefahr des Abhörens, sodass beide Verfahren annähernd gleich sicher sind.

Die tatsächliche Sicherheit steht und fällt jedoch mit der Qualität des Passworts. Denn eine Attacke auf die Fritz Box mit einem Wörterbuch ist jederzeit möglich. Verwenden Sie daher auch Sonderzeichen, Zahlen und die Groß/-Kleinschreibung in Ihrem Passwort. Falls Sie die Lösung über Public/Private Key bevorzugen und damit quasi ein 1.024-Bit-Random-Passwort nutzen, können Sie diese mit dem gewählten Dropbear-Server selbstverständlich auch nutzen.

Server-Key und Passwort erzeugen

Der Dropbear-ssh-Server benötigt zum Start auf jeden Fall eine Datei mit seinem privaten Key, sonst verweigert er den Dienst. Einen passenden 512-Bit-RSA-Key in der Datei "/var/tmp/dropbear_rsa_host key" erzeugen Sie über folgende Kommandos:

ln -s /var/tmp/dropbear dropbe arkey

/var/tmp/dropbearkey -t rsa -f/ var/tmp/dropbear_rsa_hostkey -s 512

Eine Übersicht der Optionen beim Erzeugen der Keys erhalten Sie mit

/var/tmp/dropbearkey - help

Vor dem Start des Servers müssen Sie jetzt noch ein sicheres root-Passwort für den ssh-Login wählen und dieses selbst verschlüsseln. Wir nutzen dazu die Webseite http://www.flash.net/cgi-bin/pw.pl. Diese liefert für den User "root" und das extrem unsichere Passwort "tecCHANNEL" unseres Beispiels den Hash "root:PBvr5tOlt/rao". Hier sollten Sie auf jeden Fall ein eigenes, sicheres Passwort generieren. Beachten Sie auch, dass das Passwort casesensitive ist.

Der Hash-Wert des root-Passworts wird nicht wie die Passwörter von Programmen in die Datei "/var/tmp/passwd" eingetragen. Denn diese Datei muss für alle Anwendungen lesbar sein, was in den 80er-Jahren ein Brute-Force-Angriff zur Ermittlung des zentralen Passworts ausnutzte. Seither liegt dieses Passwort in der Datei "/var/tmp/shadow", die zumindest auf echten Linux-Systemen (nicht so in der Fritz Box) stark eingeschränkte Zugangsrechte hat.

root-Passwort eintragen und ssh-Server starten

Da das Eintragen des root-Passworts in die shadow-Datei später bei jedem Reboot der Box automatisch ablaufen soll, ist das etwas kryptische Kommando "sed" erforderlich. Dieser Stream-Editor kann über so genannte reguläre Ausdrücke Zeichen in Textdateien finden und durch andere ersetzen. Geben Sie einfach folgende Befehle ein und ersetzen Sie den Hashwert "PBvr5tOlt/rao" unseres Passworts durch Ihren Hash.

cp -p /var/tmp/shadow /var/tmp /tmp_shadow

sed -e "/root:/s#^root:[^:]*: #root:PBvr5tOlt/rao:#" /var/tmp/ tmp_shadow > /var/tmp/shadow

Mit diesen Befehlen erzeugen Sie zunächst eine Kopie der shadow-Datei, ersetzen darin das Passwort und schreiben die geänderte Datei auf /var/tmp/shadow zurück.

Jetzt können Sie den ssh-Server erstmals starten. Beim Aufruf müssen Sie ihm lediglich die Position des vorher erzeugten RSA-Keys mitteilen:

/var/tmp/dropbear -r /var/tmp/ dropbear_rsa_hostkey

Wenn Sie sich jetzt mit "ps" die Prozessliste ansehen, sollte dropbear darin auftauchen.

Falls dropbear nicht starten wollte, können Sie an den Aufruf noch den Parameter "-E" anhängen. Dann erhalten Sie alle Fehlermeldung in Ihrem Konsolenfenster angezeigt. Stören Sie sich dabei nicht an fehlenden DSS-Keys, diese benötigen wir nicht und haben sie daher auch nicht erzeugt.

Erstes Login mit putty

Nachdem der ssh-Server nun läuft, benötigen Sie einen entsprechenden Client für den Login. Der Klassiker dafür ist das rund 400 KB große Programm "putty", das Sie für die Windows-Plattform überall im Web zum Downloaden finden. Testen Sie den ssh-Zugang zunächst in Ihrem lokalen Netzwerk und rufen Sie dazu die Datei "putty.exe" auf.

Meist müssen Sie nur die IP-Adresse der Fritz Box eingeben, da Port 22 und ssh per Default gewählt ist. Im lokalen Netz läuft die Fritz Box meist unter der Adresse 192.168.178.1. Nach dem Klick auf "Open" erhalten Sie eine Warnmeldung. putty kennt den Host-Key des Servers nicht, daher müssen Sie die Verbindung manuell autorisieren.

Ob Sie den Host-Key im Cache ablegen wollen oder nicht, ist in unserem Fall egal, da sich dieser Key nach einem Reboot der Fritz Box sowieso ändert. Nach dem Klick auf "Yes" oder "No" - beides führt zum Login - sollte sich die Fritz Box melden.

Das fertige Script

Hat bislang alles geklappt, fehlt nur noch ein kleines Script, das den PC per etherwake startet. Prinzipiell kann man zwar etherwake über ssh auf der Kommandozeile aufrufen, doch wer hat schon die MAC-Adresse seines PCs auswendig parat.

Zum Erzeugen des Scripts "start_pc1" im Verzeichnis "/var/tmp" genügt folgender Zweizeiler:

echo "/var/tmp/etherwake -ieth0 00:0c:6e:93:23:87" > /var/tmp /start_pc1

chmod +x /var/tmp/start_pc1

Ersetzen Sie dabei, wie weiter oben bei etherwake beschrieben, die MAC-Adresse unseres Test-PCs "00:0c:6e:93:23:87" durch die Ihres Rechners und ändern Sie gegebenenfalls "eth0" durch den passenden Interface-Namen Ihrer Fritz Box. Falls Sie einen zweiten PC im Netzwerk haben, können Sie sich damit jetzt per ssh mit Ihrer Fritz Box verbinden und über das Script den anderen PC starten.

Doch bislang haben wir alle Änderungen manuell eingegeben. Nach einem Neustart der Fritz Box hat diese wieder alles vergessen. Der einzige Weg, Änderungen über den Reboot zu retten, ist die Datei "debug.cfg" im Verzeichnis "/var/flash".

Unten finden Sie die fertige Script-Datei, die neben den hier erwähnten Tools auch noch einen FTP-Server einbindet.

Download des Scripts auf die Fritz Box

Gehen Sie zur Installation des neuen Start-Scripts per ssh oder telnet auf die Commandline der Box. Dann wechseln Sie in das Verzeichnis "/var/tmp" und laden das Script mit folgendem Befehl von unserem Server:

cd /var/tmp

wget http://www.tecchannel. de/download/432967/debug.test

Dabei wird das links unten stehende Script auf Ihre Fritz Box geladen. In diesem Script müssen Sie lediglich an den drei entsprechend kommentierten Stellen Ihre persönlichen Daten eintragen. Elegant geht dies direkt mit "vi" auf der Fritz Box.

Falls Sie die Datei am PC bearbeiten, seien Sie gewarnt: Der Editor muss unbedingt im Unix/Linux-Format abspeichern können, sonst läuft das Script nicht.

Nach den Änderungen kopieren Sie die Datei an Ihren finalen Ort und starten die Box neu:

cp /var/tmp/debug.test /var/flash /debug.cfg

/sbin/reboot

Zugang über das Internet

Was der Fritz Box jetzt noch fehlt, um weltweit von außen erreichbar zu sein, ist eine feste Internet-adresse. Doch kaum jemand wird sich nur dafür eine statische IP-Adresse leisten. Hier bietet sich jedoch "Dynamic DNS" als Lösung an.

Dabei legt man sich bei einem der Anbieter zunächst einen kostenlosen Dynamic-DNS-Account zu. Mit den Zugangsdaten loggt sich die Fritz Box in regelmäßigen Abständen und nach jedem IP-Wechsel durch den DSL-Provider ein. Die Box meldet ihre neue IP-Adresse des öffentlichen DSL-Ports, die der Dynamic-DNS-Provider dann in seinem DNS-Server einträgt. So kann er den Domain-Namen immer in die jeweils aktuelle IP-Adresse auflösen.

Einer der bekanntesten Anbieter dieser Lösung findet sich unter www.dyndns.org. Man muss beim Erzeugen eines neuen Accounts lediglich darauf achten, die kostenlose Version "Dynamic DNS" zu wählen.

Hat man beispielsweise die Subdomain "tecchannel22" bei dyn dns.org eingetragen, ist die Fritz Box unter tecchannel22.dyn dns.org jederzeit aus dem Internet erreichbar, da dyndns.org diesen Namen zur jeweils aktuellen DSL-IP-Adresse auflöst. Auch putty benötigt diesen Domain-Namen, um von außen auf die Fritz Box zugreifen zu können.

Auf der Fritz Box finden Sie die Konfiguration zum automatischen Update der IP-Adresse im Menü unter "Internet / Dynamic DNS".

Das Loch in der Firewall

Jetzt sind wir fast am Ziel. Die Fritz Box kann man nun zwar theoretisch unter ihrem dyndns-Namen von überall aus dem Internet erreichen, doch die interne Firewall blockt noch alle Versuche ab. Aus Sicherheitsgründen erlaubt AVM über das Webinterface auch nicht, Zugänge von außen zur Box freizuschalten. Also ist ein letztes Mal Handarbeit nötig.

Für die Firewall-Regeln ist die Datei "ar7.cfg" im Verzeichnis "/var/flash" zuständig. Durch eine manuelle Änderung lässt sich der Zugang über das Internet öffnen. Bearbeiten sie dazu ar7.cfg mit "nvi" oder dem schon mehrmals beschriebenen Umweg über eine temporäre Kopie. Suchen Sie darin nach den forwardrules und ergänzen Sie sie um folgende Zeile, um den ssh-Port 22 vom WAN freizuschalten:

"tcp 0.0.0.0:22 0.0.0.0:22",

Nach einem Reboot der Fritz Box ist es vollbracht. Per ssh können Sie sich über Ihre dyndns-Adresse von jedem Ort der Welt aus sicher auf die Fritz Box einloggen. Anschließend wechseln Sie in das Verzeichnis "/var/tmp" und können Ihren PC mit dem Befehl "./start_pc1" aufwecken.

Fernzugriff auf den PC

Jetzt läuft zwar der PC, aber darauf zugreifen können Sie noch nicht. Für Windows XP bietet sich hierfür "RDP" an. Dieser integrierte Remote-Desktop hat sich inzwischen zum beliebten Tool für die Fernwartung gemausert. Unter Windows XP aktivieren Sie diesen Dienst über die Systemeigenschaften, wenn Sie mit rechts auf den Arbeitsplatz klicken.

Um von außen auf den RDP-Dienst eines laufenden PCs zugreifen zu können, müssen Sie die Firewall der Fritz Box noch entsprechend freischalten. Geben Sie Ihrem PC vorab eine feste IP-Adresse im internen Netz, sonst funktioniert die Portfreigabe nicht. RDP läuft über den TCP-Port 3389, den Sie in der Fritz Box unter dem Menüpunkt "Internet / Portfreigabe" an die IP-Adresse Ihres PCs weiterleiten.

Jetzt können Sie von jedem Windows-PC aus Ihren PC fernsteuern. Den RDP-Client finden Sie im Startmenü unter "Zubehör / Kommunikation / Remotedesktopverbindung". Wenn Sie dort als Rechnernamen Ihre dyndns-Adresse eintragen, landen Sie direkt auf dem Login-Bildschirm Ihres Rechners. Vergessen Sie daher auf keinen Fall, für den Login ein sicheres Passwort zu wählen.

Nach dem Login arbeiten Sie aus der Ferne mit Ihrem PC, als säßen Sie davor. Besonders elegant sind dabei der Dateizugriff und der Austausch von Dateien gelöst: Wenn Sie die entsprechende Option vor dem Start des RDP-Clients auswählen, finden Sie im Arbeitsplatz sowohl die Laufwerke des lokalen als auch des Remote-PCs. Selbst der Sound des entfernten PCs lässt sich in diesem Menü auf den lokalen PC umleiten.

Fazit

In diesem Beitrag haben wir gezeigt, wie Sie über einen sehr sicheren Weg Ihren PC über das Internet starten können. Was Sie nun damit machen, bleibt Ihnen überlassen. Der Zugang per Windows-RDP stellt nur einen möglichen Weg dar. Sie könnten ebenso gut einen Web- oder FTP-Server installieren, um auf Dateien Ihres PCs zuzugreifen.

Als Nebenprodukt haben Sie ab sofort einen sicheren ssh-Zugang auf Ihre Fritz Box. Über diesen können Sie von extern beispielsweise Ports nur dann freischalten, wenn Sie den Durchgang durch die Firewall auch wirklich benötigen. So lässt sich die Sicherheit des internen Netzwerks weiter erhöhen.

Dieser Beitrag stammt von tecChannel.de, dem Webzine für technikorientierte Computer- und Kommuni-kationsprofis. Unter www.tecChannel.de finden Sie weitere Beiträge zu diesem Thema.