Autorisierung
Die Netzwerk-Transparenz des X Window Systems birgt besondere Risiken. So kann zum Beispiel der Inhalt eines beliebigen Fensters ausgelesen werden, wenn nur der X Window Server angesprochen werden kann. Spezielle Sicherheitsmaßnahmen sollen den Zugang zu einem X Window Server einschränken. Der Zugang kann auf zwei Arten kontrolliert werden:
Nur X Window Clients, die auf bestimmten Maschinen ausgeführt werden, sind berechtigt (Host Access Control). Der X Window Server überprüft die Netzwerkadresse.
Der X Window Server überprüft einen Schlüssel, den der X Window Client beim Aufbau der Verbindung überträgt (zum Beispiel nach dem MIT-MAGIC-COOKIE-1-Mechanismus). In der Regel wird der Schlüssel in einer Datei gespeichert, die nur vom Benutzer geändert oder gelesen werden kann (meist $HOME/.Xauthority).
Der XmetaX Proxy unterstützt beide Verfahren transparent. Allerdings ist die Autorisierung auf zwei Ebenen zu betrachten:
einerseits die Autorisierung der X Window Clients durch den XmetaX-Proxy
und andererseits die Autorisierung des XmetaX-Proxys durch die X Window Server.
Autorisierung der X Window Clients durch den XmetaX-Proxy
Der XmetaX-Proxy autorisiert seine Clients wie ein X Window Server.
Bei der (Re-)Initialisierung liest das xmetax-Programm die Namen der durch Host Access Control berechtigten Maschinen aus der Datei /etc/XDisplay-Nummer.hosts. Dabei entspricht die Display-Nummer der Client-Verbindung (X Window Client-Verbindung), ist also in der Regel 0. Lokale Verbindungen werden generell erlaubt. Später können mit Hilfe des Programms xhost Maschinen hinzugefügt oder entfernt werden.
Zur Autorisierung über Schlüssel (der XmetaX-Proxy unterstützt MIT-MAGIC-COOKIE-1 und XDM-AUTHORIZATION-1) wird mit der Anweisung
authorization Dateiname|none
eine Autorisierungsdatei spezifiziert, die der XmetaX-Proxy zur Autorisierung von X Window Clients verwendet.
Wird dagegen mit der Anweisung serverCommand (X Window Server) durch das Argument -auth eine Autorisierungsdatei angegeben, wird diese auch vom XmetaX-Proxy verwendet. Das Argument -auth wird in der Regel von Displaymanagern automatisch angefügt (Mit Displaymanager).
Ein Displaymanager kann den Autorisierungsschlüssel auch über das X Display Manager Control Protocol an das xmetax-Programm übermitteln (X Display Manager Control Protocol).
Die Anweisung
accessControl on|off
schaltet die Autorisierung von Clients generell ein (Voreinstellung) oder aus.
Autorisierung des XmetaX-Proxys durch die X Window Server
Der XmetaX-Proxy muß sich bei den X Window Servern wie ein normaler Client autorisieren. Werden die eigentlichen X Window Server nicht geschützt, ist die Zugangsbeschränkung via XmetaX wertlos.
Zur Autorisierung über Host Access Control muß der Name der Maschine, auf der das xmetax-Programm ausgeführt wird, in der Berechtigungsdatei, normalerweise /etc/XDisplay-Nummer.hosts, stehen, sofern das xmetax-Programm und der X Window Server auf verschiedenen Maschine laufen. Dabei entspricht die Display-Nummer der Display-Nummer des X Window Servers (X Window Server), ist also mit dem Proxy meist 1, sonst in der Regel 0. Der Maschinenname kann auch bei bereits laufendem X Window Server mit Hilfe des Programms xhost hinzugefügt werden.
Zur Autorisierung über Schlüssel (der XmetaX-Proxy unterstützt MIT-MAGIC-COOKIE-1 und XDM-AUTHORIZATION-1) sind die Datei $HOME/.Xauthority und die Umgebungsvariable $XAUTHORITY maßgeblich. Dies kann geändert werden mit der Anweisung
serverAuthorization Dateiname|own|none
die eine Autorisierungsdatei definiert, die der XmetaX-Proxy ausschließlich zur Autorisierung bei den X Window Servern verwendet, die vom Proxy selbst gestartet werden, also über die serverCommand-Anweisung (X Window Server) oder als Ressourcemanager (Ressourcemanager) bei Verwendung einer der Optionen InWindow oder DynamicServer.
Der Parameter own bewirkt, daß der XmetaX-Proxy selbständig einen zufälligen Autorisierungsschlüssel generiert und diesen zur Autorisierung bei den X Window Servern verwendet.
Wird die Server-seitige Autorisierung nicht konfiguriert, versucht das xmetax-Programm, einen passenden Schlüssel auf der Client-Seite zu finden (Autorisierung der X Window Clients durch den XmetaX-Proxy). Dies gelingt sicher, wenn der Displaymanager mit dem Argument -auth eine Autorisierungsdatei konfiguriert (Mit Displaymanager).