X-Window-Desktop fernsteuern per Shell-Skript und VNC

Seite 2: Vorbereitungen

Inhaltsverzeichnis

Der Rechner des Helfers benötigt entweder eine feste IP-Adresse oder einen DNS-Namen für die dynamische Adresse seiner DSL-Einwahl, wie man sie beispielsweise über DynDNS.org beziehen kann. Eine Client-Software auf aktuellen Routern meldet bei jeder DSL-Einwahl die neue IP-Adresse an den DynDNS-Dienst, sodass später der VNC-Server den VNC-Client beispielsweise unter der Adresse meinhelfer.dyndns.org erreicht.

Im zweiten Schritt muss der Helfer auf seinem Router eine Port-Weiterleitung einrichten, die die Verbindung an den Helfer-Rechner ins LAN durchreicht. VNC-Viewer hören gewöhnlich auf Port 5500. Sicherer ist jedoch, ihn zu verlegen – beispielsweise auf Nummern oberhalb von 50 000. Manche Router beherrschen beim Port-Forwarding auch das Umbiegen von Ports, beispielsweise vom externen Router-Port 55 123 auf den Port 5500 eines LAN-Rechners. Der Viewer arbeitet so mit seinen Vorgaben; aus dem Internet erreicht man ihn jedoch über einen abweichenden Port, was Angreifern das Leben etwas schwerer macht.

Der Helfer muss nun diese Daten ins Skript übertragen, das aus einer Reihe von Variablen, einer Anzahl von Funktionen und einem kurzem Hauptteil am Ende des Skripts besteht. Wichtig für das reibungslose Funktionieren sind die vier Variablen unterhalb des Kommentars # WICHTIGE Parameter, die der Helfer anpassen muss.

LISTENERURL="meinhelper.dyndns.org:55123" 
X11VNC_URL="http://x11vnc.mirror.beispiel/x11vnc"
X11VNC_MD5="a234dc2ec7ff6cf8cf146dd00f8579b9"
ACCEPT="popup"

Die Variable LISTENERURL enthält durch einen Doppelpunkt getrennt die Adresse samt Portnummer, unter der der VNC-Client des Helfers im Internet lauscht. In X11VNC_URL muss eine URL stehen, über die das Skript eine Binärversion von x11vnc finden kann. Der x11vnc-Entwickler Karl Runge stellt übersetzte x11vnc-Binaries für verschiedene Plattformen bereit. Besitzt man einen eigenen Webserver, sollte man das Programm jedoch dort ablegen und gegebenenfalls die MD5-Checksumme in der Variable X11VNC_MD5 anpassen. Den korrekten Wert liefert unter Linux das Kommando md5sum, wenn man ihm den Programmpfad als Parameter übergibt. Deklariert das Skript eine Variable namens ACCEPT, die den Wert "popup" enthält, fragt das Skript beim Hilfesuchenden nach, ob und in welcher Art er eine Verbindung wünscht.

Die Werte in den Skript-Variablen unterhalb von "Sonstige Einstellungen" steuern das Verhalten von x11vnc, benötigen aber keine Anpassung. Möchte man dem VNC-Server x11vnc für spezielle Fälle weitere Parameter mitgeben, erweitert man die Variable VNCPAR.

Sie enthält die Parameterliste für den x11vnc-Aufruf. Mit den im Skript eingetragenen Optionen speichert x11vnc seine Statusmeldungen ins Dateisystem, versucht 30 Sekunden lang eine Verbindung aufzubauen und beendet sich nach der ersten Verbindung automatisch. Der x11vnc-Parameter -noxdamage schaltet eine Erweiterung des VNC-Servers ab, die normalerweise die Bildübertragung verbessert, die aber anscheinend Probleme unter 3D-Desktop-Umgebungen wie compiz verursacht.

Anschließend verpackt der Helfer das Skript in eine E-Mail und schickt diese dem Linux-Neuling. Dieser speichert den Skript-Anhang, öffnet ein Terminalfenster, wechselt dort zum Speicherort des Skripts und startet es über die Befehlszeile bash ct-helfer.sh. Anschließend beginnt das Skript mit seiner Arbeit, zeigt per neuem Terminalfenster Statusinformationen an und baut die Verbindung zwischen Hilfesuchendem und Helfer auf.