Xauthority
Der Linux VDA unterstützt Umgebungen, in denen X11-Anzeigefunktionalität (einschließlich xterm
und gvim
) für interaktives Remoting verwendet wird. Dieses Feature bietet einen Sicherheitsmechanismus für die sichere Kommunikation zwischen XClient und XServer.
Es gibt zwei Methoden zum Sicherstellen der Berechtigung für die sichere Kommunikation:
- Xhost. Standardmäßig erlaubt Xhost nur die Kommunikation zwischen dem XClient auf Localhost und XServer. Wenn Sie den Zugriff eines Remote-XClient auf XServer zulassen, muss mit dem Xhost-Befehl die Berechtigung für die spezifische Maschine gewährt werden. Alternativ dazu können Sie auch xhost + verwenden, um damit alle XClient-Instanzen eine Verbindung zu XServer herstellen können.
-
Xauthority. Die
.Xauthority
-Datei befindet sich im Homeverzeichnis jedes Benutzers. Sie wird zum Speichern von Anmeldeinformationen in Cookies verwendet, die von xauth für die Authentifizierung von XServer verwendet werden. Wenn eine XServer-Instanz (Xorg) gestartet wird, werden Verbindungen mit dem Cookie bei der spezifischen Anzeige authentifiziert.
Funktionsweise
Wenn Xorg gestartet wird, wird eine .Xauthority
-Datei an Xorg übergeben. Diese .Xauthority
-Datei enthält folgende Elemente:
- Anzeigenummer
- Remoteanfrageprotokoll
- Cookienummer
Sie können diese Datei mit dem Befehl xauth
durchsuchen. Beispiel:
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
Wenn XClient eine Remoteverbindung mit Xorg herstellt, müssen zwei Voraussetzungen erfüllt sein:
- Die Umgebungsvariable DISPLAY muss auf den Remote-XServer festgelegt sein.
- Rufen Sie die
.Xauthority
-Datei ab, die eine der Cookienummern in Xorg enthält.
Xauthority konfigurieren
Um Xauthority im Linux VDA für X11-Remoteanzeige zu aktivieren, müssen Sie die zwei folgenden Registrierungsschlüssel erstellen:
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Xorg" -t "REG_DWORD" -v "XauthEnabled" -d "0x00000001" --force
sudo /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Control\Citrix\Xorg" -t "REG_DWORD" -v "ListenTCP" -d "0x00000001" --force
<!--NeedCopy-->
Übergeben Sie die .Xauthority
-Datei nach dem Aktivieren von Xauthority manuell oder durch Bereitstellen eines freigegebenen Homeverzeichnisses an den XClient:
-
Manuelle Übergabe der
.Xauthority
-Datei an den XClientNach dem Start einer ICA-Sitzung generiert der Linux VDA die
.Xauthority
-Datei für den XClient und speichert die Datei im Homeverzeichnis des Anmeldebenutzers. Sie können die.Xauthority
-Datei auf die remote XClient-Maschine kopieren und die Umgebungsvariablen DISPLAY und XAUTHORITY festlegen.DISPLAY
ist die in der.Xauthority
-Datei gespeicherte Anzeigenummer undXAUTHORITY
ist der Dateipfad von Xauthority. Ein Beispiel ist der folgende Befehl:export DISPLAY={Display number stored in the Xauthority file} export XAUTHORITY={the file path of .Xauthority} <!--NeedCopy-->
Hinweis:
Wenn die Umgebungsvariable XAUTHORITY nicht festgelegt ist, wird standardmäßig die Datei
~/.Xauthority
verwendet. -
Übergabe der
.Xauthority
-Datei an den XClient durch Bereitstellen eines freigegebenen HomeverzeichnissesEine bequeme Methode ist das Bereitstellen eines freigegebenen Homeverzeichnisses für den Benutzer, der sich anmeldet. Wenn der Linux VDA eine ICA-Sitzung startet, wird die
.Xauthority
-Datei im Homeverzeichnis des Anmeldebenutzers erstellt. Wenn dieses Homeverzeichnis für den XClient freigegeben ist, muss der Benutzer diese.Xauthority
-Datei nicht manuell an den XClient übergeben. Wenn die Umgebungsvariablen DISPLAY und XAUTHORITY richtig festgelegt sind, wird die GUI automatisch auf dem XServer-Desktop angezeigt.
Problembehandlung
Wenn Xauthority nicht funktioniert, folgen Sie diesen Anleitungen zur Problembehandlung:
-
Rufen Sie als Administrator mit Root-Privilegien alle Xorg-Cookies ab:
ps aux | grep -i xorg <!--NeedCopy-->
Mit diesem Befehl wird der Xorg-Prozess angezeigt sowie die Parameter, die beim Starten an Xorg übergeben wurden. Ein weiterer Parameter zeigt an, welche
.Xauthority
-Datei verwendet wurde. Beispiel:/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->
Zeigen Sie Cookies mit dem Befehl Xauth an:
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy-->
-
Zeigen Sie mit dem Befehl
Xauth
die in~/.Xauthority
enthaltenen Cookies an. Für eine bestimmte Anzeigenummer müssen die angezeigten Cookies in den.Xauthority
-Dateien von Xorg und XClient dieselben sein. -
Wenn die Cookies dieselben sind, überprüfen Sie den Zugriff auf den Remoteanzeigeport mit der IP-Adresse des Linux VDA und der Anzeigenummer des veröffentlichten Desktops.
Führen Sie zum Beispiel den folgenden Befehl auf der XClient-Maschine aus:
telnet 10.158.11.11 6160 <!--NeedCopy-->
Die Portnummer ist die Summe von 6000 + <display number>.
Wenn dieser Telnet-Vorgang fehlschlägt, wird die Anfrage möglicherweise von der Firewall blockiert.