SSH - Port Forwarding
XDMCP

XDMCP-Zugang

X-Sesssions und XDMCP

Zwar sind wir nun in der Lage, einzelne X-Appliaktionen auf einem entferten Linux-Rechner zu starten und deren Fenster auf unseren Linux- oder Windows-Desktop "umzuleiten", aber geht das nicht auch einfacher? Schließlich will man nicht nacheinander verschiedene X-Applikationen über Telnet o.ä. starten, sondern den (KDE-/gnome- ...)Desktop der entfernten Maschine komplett vor sich haben.

X-Session

Allgemein gesprochen handelt es sich dabei um sog. X-Sessions, eine Anzahl von X-Clients (Window Manager, Panel, Uhr etc.), die über ein Skript hintereinander gestartet werden, z.B. das Srkipt kdestart. Bevor die X-Session gestartet wird, muss sich der User an einem graphischen Login-Bilschirm einloggen. Alles das erledigt der X DisplayManager - das Programm xdm, oder - je nach Desktop-Variante - kdm bzw. gdm. Bei UNIX-Varianten mit CDE-Desktop erledigt diese Aufgabe das Programm dtlogin.

X Display Manager Control Protocol

Der X Display Manager ist auch in der Lage, sein graphisches Login und die X-Session über das Netzwerk an einen entferntetn X-Server zu vermitteln - nämlich durch das X Display Manager Control Protocol, kurz XDMCP. Der X-Server sendet eine Anfrage ("XDMCP Query") and den XDM des Linux-Servers, woraufhin dieser den Login-Bildschirm und dann die komplette X-Session auf den anfragenden X-Server leitet - sofern die Sicherheitsrichtlinen das zulassen. Der XDM-Prozess kümmert sich dabei auch um das Setzen der DISPLAY-Variable sowie eine gewisse Absicherung der X11-Verbindung, dazu später.

Damit die folgenden Verbindungsversuche über XDMCP überhaupt erfolgreich sein können, muss der Zugang zum X-Display-Manager auf dem Ziel-Host freigeschaltet werden. Details dazu verrät die Seite XDMCP-Zugangskontrolle.

XDMCP Query

Soll der X-Server ein XDMCP Query absetzten, so muß das beim Start als Parameter angegeben werden. Auf Linux heißt der X-Server einfachX und wird dann folgendermaßen gestartet:

X -query remote-rechner

Das funktioniert leider nur für den System-Administrator  root. Normalsterbliche User verwenden einen Wrapper:

Xnest -query remote-rechner

Sofern auf remote-rechner  ein xdm, kdm, gdm oder dtlogin läuft, der entfernte Logins zulässt, sollte jetzt der Login-Bildschirm  und anschließend der X-Desktop wie auf remote-rechner erscheinen.

XDMCP Broadcast

Noch einen Schritt bequemer ist die Broadcast-Variante von XDMCP. Der X-Server sendet seine XDMCP-Anfrage als Bradcast ins Netz und alle Linux-/UNIX-Maschinen mit einem XDM-Prozeß, der überhaupt Anfragen von entfernten X-Servern zulässt, melden sich. Der X-Server connectet automatisch mit dem Display Manager, der sich als erster meldet, und der User erhält sofort den Login-Bildschirm des entfernten Rechner. Wiederum muss dem X-Server ein entsprechender Parameter beim Start mitgegeben werden:

Xnest -broadcast

XDMCP Indirect

Die Broadcast-Methode von XDMCP hat allerdings einen Hacken: Broadcast werden in der Regel von Routern nicht weitergegeben, deshalb melden sich auf XDMCP Broadcast nur Rechner mit denen man sich im selben Netzwerksegment befindet.  Stehen mehrere Server, die man ansprechen will, in zusammen einem anderen Netzsegement, so übermittelt XDMCP Idirect an den X Display Manager eines dieser Server den Auftrag, einen XDMCP Broadcast (in seinem, also aus userer Sicht entfernten Netzsegment) abzusetzen und eine Liste aller antwortenden Maschinen zurückzusenden. Der User wählt per Mausklick seinen Wunsch-Server aus und schon erscheint dessen Login-Bildschirm. Dabei kann es sich um dieselbe Maschine handeln, an die auch die XDMCP Indirect-Anfrage gesendet wurde (das hätte man auch schneller mit XDMCP Query haben können) oder um einen dritten Rechner. Das passende Kommando:

Xnest -indirect remote-rechner
SSH - Port Forwarding
     ©2005, 2007 Andreas Gottwald
XDMCP-Zugans