Technische Praxis der Computersysteme Teil 1 - Universität Wien
Technische Praxis der Computersysteme Teil 1 - Universität Wien
Technische Praxis der Computersysteme Teil 1 - Universität Wien
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
7 X-WINDOW<br />
Eine große Stärke des X-Window-Systems beruht auf seiner Client/Server-Architektur.<br />
Das X-Window-System ist ”<br />
von Haus aus“ netzwerkfähig und es ist sehr einfach, Programme<br />
remote auszuführen, d.h. X-Clients nicht am lokalen Rechner laufen zu lassen, son<strong>der</strong>n die<br />
Fenster über ein Netzwerk an den X-Server am lokalen Rechner zu ”<br />
schicken“. Das ist vor<br />
allem dann von großem Vorteil, wenn ein starker Rechner (Applikationsserver, auf dem die<br />
X-Clients laufen) im LAN vorhanden ist, währen die Arbeitsplatzrechner (Workstation, auf<br />
ihr läuft <strong>der</strong> X-Server) nur über schwächere Hardware verfügen.<br />
Nachdem X-Clients grossen Einfluss auf das Verhalten des Gesamstsystems ausüben<br />
können, liegt es auf <strong>der</strong> Hand, daß sich die Clients beim Server als zugriffsberechtigt ausweisen<br />
können müssen. X sieht für diese Authentifizierung mehrere Möglichkeiten vor. Die beiden<br />
gebräuchlichsten sind die hostbasierte Authentifizierung mittels xhost und die benutzerbasierte<br />
Authentifizierung mittels xauth, daß Zugriffsschlüssel (meist MIT-MAGIC-COOKIE-1)<br />
in <strong>der</strong> Datei .Xauthority verwaltet.<br />
Wir stellen hier zunächst die hostbasierte Authentifizierung mittels xhost dar. Eine<br />
kleine Vorbemerkung: die Verbindung ist auf jeden Fall unverschlüsselt, und die Authentifizierung<br />
erfolgt auf Basis <strong>der</strong> IP-Adresse! Damit ist diese Authentifizierung von Haus aus<br />
so unsicher, daß man sie eigentlich nur in ”<br />
sicheren“ LANs anwenden sollte. Konkret geht<br />
man wie folgt vor.<br />
1. Zuerst muß man dem X-Server mitteilen, daß er X-Client-Verbindungen von an<strong>der</strong>en<br />
Rechnern (also X-Clients, die auf an<strong>der</strong>en Systemen laufen) entgegennehmen darf. Dazu<br />
dient das Kommando xhost (Syntax: xhost [+|-] [hostname]). Damit kann man<br />
entwe<strong>der</strong> gezielt einzelnen Rechnern den Zugriff auf den lokalen X-Server ermöglichen<br />
o<strong>der</strong> verbieten o<strong>der</strong> gleich generell allen erlauben (nicht empfohlen!) o<strong>der</strong> untersagen,<br />
X-Fenster an den X-Server zu ”<br />
schicken“ (xhost [+|-]).<br />
2. Am Remote-System, wo die Applikation (<strong>der</strong> X-Client) laufen soll, muß angegeben<br />
werden auf welchem Display (X-Server) das Fenster erscheinen soll. Dafür gibt es<br />
die Shell-Variable DISPLAY, die man—nach dem Einloggen (etwa über Telnet) am<br />
Applikationsserver—auf den Hostnamen (o<strong>der</strong> die IP) des Rechners mit dem X-<br />
Server setzt (z.B. export DISPLAY=xserver:0.0, letzteres gibt die Screen- und X-<br />
Servernummer an). Nun kann man X-Programme (wie etwa xeyes, xterm, \dots)<br />
am Applikationsserver ausführen, die Ausgabe erfolgt jedoch am lokalen X-Server. Dies<br />
hat den Vorteil, daß man z.B. für umfangreiche Berechnungen mathematica am Server<br />
rechnen läßt, sich die Ergebnisse aber am langsameren Arbeitsplatzrechner anzeigen<br />
lassen kann.<br />
Will man nur für einzelne X-Programme die Ausgabe umleiten, kann man<br />
das dem Programm auch direkt durch die Option -display mitteilen (z.B.<br />
xterm -display xserver:0.0)<br />
Wir haben schon oben bemerkt, daß X-Verbindungen unverschlüsselt und unsicher sind.<br />
Es stellt für einen Angreifer (eigentlich) überhaupt kein Problem dar, eine X-Verbindung zu<br />
übernehmen (Session-Hijacking), zu missbrauchen o<strong>der</strong> zu korrumpieren. Es ist deswegen<br />
sicherer, X nur über eine verschlüsselte Verbindung zu verwenden. Die Secure Shell ssh<br />
kann selbständig die Aufgabe des X11-Forwardings übernehmen (mit Hilfe <strong>der</strong> Option -X,<br />
sodaß das Einloggen per ssh -X user@host ausreicht, um sich X-Clients schicken lassen<br />
zu können. ssh beherrscht auch die benutzerbasierte Authentifizierung (aber nur die mittels<br />
MIT-MAGIC-COOKIE-1). Das ganze funktioniert so, daß <strong>der</strong> ssh-Server einen Dummy-X-<br />
Server am Zielhost einrichtet, und die entsprechenden Umgebungsvariablen setzt. Er vergibt<br />
auch einen Zugriffsschlüssel (allerdings nicht denselben, <strong>der</strong> auf dem X-Server-Host verwendet<br />
wird; <strong>der</strong> vom ssh-Server vergebene Schüssel ist nach Ende <strong>der</strong> ssh-Session wertlos, <strong>der</strong><br />
Originalschlüssel bleibt immer am ssh-Client-Host).<br />
103