02.11.2013 Aufrufe

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

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!