Sitzungsspiegelung
Die Sitzungsspiegelung ermöglicht es Domänenadministratoren, ICA-Sitzungen von Benutzern in einem Intranet anzuzeigen. Dabei wird unter Einsatz von noVNC eine Verbindung mit den ICA-Sitzungen hergestellt.
Hinweis
Sie benötigen
Citrix Director
7.16 oder höher, um das Feature zu verwenden.
Installation und Konfiguration
Abhängigkeiten
Für die Sitzungsspiegelung sind zwei neue Elemente, python-websockify
und x11vnc
, erforderlich. Installieren Sie python-websockify
und x11vnc
manuell, nachdem Sie den Linux VDA installiert haben.
Für RHEL 7.x und Amazon Linux2:
Führen Sie die folgenden Befehle aus, um python-websockify
und x11vnc
(x11vnc
Version 0.9.13 oder höher) zu installieren:
sudo pip3 install websockify
sudo yum install x11vnc
<!--NeedCopy-->
(Für RHEL 7.x) Lösen Sie python-websockify
und x11vnc
, indem Sie die Extra Packages for Enterprise Linux (EPEL) und die optionalen RPMs-Repositorys aktivieren:
-
EPEL
Das EPEL Repository ist für
x11vnc
erforderlich. Führen Sie folgenden Befehl aus, um das EPEL-Repository zu aktivieren:yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm <!--NeedCopy-->
-
Optionale RPMs
Führen Sie den folgenden Befehl aus, um das optionale
RPMs
-Repository für die Installation einiger Abhängigkeitspakete vonx11vnc
zu aktivieren:subscription-manager repos --enable rhel-7-server-optional-rpms --enable rhel-7-server-extras-rpms <!--NeedCopy-->
Für RHEL 9.4/9.3/9.2/9.0/8.x und Rocky Linux 9.4/9.3/9.2/9.0/8.x:
Führen Sie die folgenden Befehle aus, um python-websockify
und x11vnc
(x11vnc
Version 0.9.13 oder höher) zu installieren.
sudo pip3 install websockify
sudo yum install x11vnc
<!--NeedCopy-->
Lösen Sie x11vnc
auf, indem Sie die EPEL- und CodeReady Linux Builder-Repositorys aktivieren:
dnf install -y --nogpgcheck https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
subscription-manager repos --enable "codeready-builder -for-rhel-8-x86_64-rpms"
<!--NeedCopy-->
Ubuntu:
Führen Sie die folgenden Befehle aus, um python-websockify
und x11vnc
(x11vnc
Version 0.9.13 oder höher) zu installieren:
sudo pip3 install websockify
sudo apt-get install x11vnc
<!--NeedCopy-->
SUSE:
Führen Sie die folgenden Befehle aus, um python-websockify
und x11vnc
(x11vnc
Version 0.9.13 oder höher) zu installieren:
sudo pip3 install websockify
sudo zypper install x11vnc
<!--NeedCopy-->
Für Debian:
Führen Sie die folgenden Befehle aus, um python-websockify
und x11vnc
(x11vnc
Version 0.9.13 oder höher) zu installieren:
sudo pip3 install websockify
sudo apt-get install x11vnc
<!--NeedCopy-->
Port
Das Sitzungsspiegelungsfeature wählt automatisch verfügbare Ports innerhalb von 6001-6099 aus, um Verbindungen vom Linux VDA zu Citrix Director
aufzubauen. Daher ist die Anzahl der ICA-Sitzungen, die Sie gleichzeitig spiegeln können, auf 99 begrenzt. Stellen Sie sicher, dass genügend Ports zur Verfügung stehen, insbesondere wenn mehrere Sitzungen gespiegelt werden.
Registrierung
Die folgende Tabelle enthält die relevanten Registrierungseinträge:
Registrierung | Beschreibung | Standardwert |
---|---|---|
EnableSessionShadowing | Aktiviert oder deaktiviert die Sitzungsspiegelung | 1 (aktiviert) |
ShadowingUseSSL | Legt fest, ob die Verbindung zwischen Linux VDA und Citrix Director verschlüsselt werden soll. | 0 (deaktiviert) |
Führen Sie den Befehl ctxreg
auf dem Linux VDA aus, um die Registrierungswerte zu ändern. Um beispielsweise die Sitzungsspiegelung zu deaktivieren, führen Sie den folgenden Befehl aus:
/opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "EnableSessionShadowing" -d "0x00000000"
<!--NeedCopy-->
SSL
Für die noVNC-Verbindung zwischen Linux VDA und Citrix Director wird das WebSocket-Protokoll verwendet. Ob für die Sitzungsspiegelung ws://
oder wss://
gewählt wird, hängt von der zuvor erwähnten Registrierung “shadowingUseSSL” ab. Standardmäßig ist ws://
ausgewählt. Aus Sicherheitsgründen empfehlen wir jedoch die Verwendung von wss://
und die Installation von Zertifikaten auf jedem Citrix Director-Client und jedem Linux VDA-Server. Citrix übernimmt keinerlei Haftung für die Sicherheit bei Spiegelung von Linux VDA-Sitzungen mit ws://
.
Führen Sie den folgenden Befehl aus, um SSL zu aktivieren:
/opt/Citrix/VDA/bin/ctxreg update -k "HKLM\Software\Citrix\VirtualDesktopAgent" -v "ShadowingUseSSL" -d "0x00000001"
<!--NeedCopy-->
Beschaffung von Server- und SSL-Stammzertifikat
Zertifikate müssen von einer vertrauenswürdigen Zertifizierungsstelle signiert werden.
Ein separates Serverzertifikat einschließlich Schlüssel ist für jeden Linux VDA-Server erforderlich, auf dem Sie SSL konfigurieren möchten. Da durch ein Serverzertifikat ein ganz bestimmter Computer identifiziert wird, müssen Sie den vollqualifizierten Domänennamen (FQDN) jedes Servers kennen. Der Einfachheit halber sollten Sie erwägen, ein Platzhalterzertifikat für die gesamte Domäne zu verwenden.
Ein Stammzertifikat ist auch für jeden Citrix Director-Client erforderlich, der mit dem Linux VDA kommuniziert. Stammzertifikate erhalten Sie von derselben Zertifizierungsstelle, die auch die Serverzertifikate ausgibt.
Sie können Server- und Clientzertifikate von den folgenden Zertifizierungsstellen installieren:
- Eine Zertifizierungsstelle, die mit Ihrem Betriebssystem gebündelt ist
- Eine Unternehmenszertifizierungsstelle (eine Zertifizierungsstelle, die Ihr Unternehmen Ihnen zugänglich macht)
- Eine Zertifizierungsstelle, die nicht mit Ihrem Betriebssystem gebündelt ist
Fragen Sie das Sicherheitsteam Ihres Unternehmens, mit welcher Methode Zertifikate abgerufen werden.
Wichtig:
- Der allgemeine Name (CN) für ein Serverzertifikat muss in Form des FQDN des Linux VDA oder mindestens eines richtigen Platzhalterzeichens plus Domänenzeichen angegeben werden. Zum Beispiel vda1.basedomain.com oder *.basedomain.com.
- Hashalgorithmen einschließlich SHA1 und MD5 sind für einige Browser zu schwach für Signaturen in digitalen Zertifikaten. Daher wird SHA-256 als Mindeststandard angegeben.
- Chrome akzeptiert keine selbstsignierten SSL-Zertifikate mehr, da sie als unsicher eingestuft werden. Der Fehler
NET::ERR_CERT_COMMON_NAME_INVALID
tritt auf, weil dem generierten Zertifikat das Feld SAN (subjectAltName) fehlt. Um dieses Problem zu beheben, stellen Sie ein Zertifikat mit erweiterten Attributen (X509 v3-Erweiterungen) bereit, die das SAN-Feld enthalten.
Installieren eines Stammzertifikats auf jedem Citrix Director-Client
Die Sitzungsspiegelung verwendet denselben registrierungsbasierten Zertifikatsspeicher wie IIS. Sie können daher Zertifikate wahlweise mit IIS oder dem Zertifikat-Snap-In der Microsoft Management Console (MMC) installieren. Wenn Sie ein Zertifikat von einer Zertifizierungsstelle erhalten haben, rufen Sie den IIS-Assistenten für Webserverzertifikate wieder auf. Der Assistent führt den Prozess fort und installiert das Zertifikat. Sie können auch Zertifikate mit der MMC anzeigen und importieren und das Zertifikat als eigenständiges Snap-In hinzufügen. Bei Internet Explorer und Google Chrome werden die unter dem Betriebssystem installierten Zertifikate standardmäßig importiert. Bei Mozilla Firefox müssen Sie die Root-ZS-Zertifikate über die Registerkarte Berechtigungen des Zertifikatsmanagers importieren.
Installieren Sie ein Serverzertifikat und den zugehörigen Schlüssel auf jedem Linux VDA-Server
Nennen Sie die Serverzertifikate “shadowingcert.*” und die Schlüsseldatei “shadowingkey.*” (* gibt das Format an, z. B. shadowingcert.pem und shadowingkey.key). Legen Sie Serverzertifikate und Schlüsseldateien im Pfad /etc/xdl/shadowingssl ab und schützen Sie sie ordnungsgemäß mit eingeschränkten Berechtigungen, wobei nur ctxsrvr Lesezugangsberechtigung hat. Ein Fehler bei Namen oder Pfad führt dazu, dass der Linux VDA das Zertifikat bzw. die Schlüsseldatei nicht findet und einen Verbindungsfehler mit Citrix Director
verursacht. Die Befehle lauten wie folgt:
cp <vda's-public-key> /etc/xdl/shadowingssl/shadowingcert.pem
cp <vda's-server-private-key> /etc/xdl/shadowingssl/shadowingkey.key
sudo chown ctxsrvr:ctxadm /etc/xdl/shadowingssl/shadowingcert.pem
sudo chown ctxsrvr:ctxadm /etc/xdl/shadowingssl/shadowingkey.key
<!--NeedCopy-->
Verwendung
Suchen Sie in Citrix Director
die Zielsitzung und klicken Sie in der Ansicht Sitzungsdetails auf Spiegeln, um eine Spiegelungsanforderung an den Linux VDA zu senden.
Wenn die Verbindung initialisiert wurde, wird auf dem ICA-Sitzungsclient (nicht dem Citrix Director
-Client) eine Aufforderung an den Benutzer zur Autorisierung des Spiegelns der Sitzung angezeigt.
Wenn der Benutzer auf Ja klickt, wird unter Citrix Director
ein Fenster mit dem Hinweis angezeigt, dass die ICA-Sitzung gespiegelt wird.
Weitere Informationen zur Verwendung finden Sie in der Dokumentation für Citrix Director.
Einschränkungen
- Wenn Ihre VDAs einer Domäne angehören und auf Microsoft Azure mithilfe von Azure Active Directory (AAD) zur Authentifizierung gehostet werden, funktioniert das Sitzungsspiegelungsfeature nicht.
- Die Sitzungsspiegelung ist nur für die Verwendung in einem Intranet vorgesehen. Sie funktioniert nicht in externen Netzwerken, auch nicht über Citrix Gateway. Citrix übernimmt keinerlei Haftung bei Spiegelung von Linux VDA-Sitzungen in einem externen Netzwerk.
- Wenn die Sitzungsspiegelung aktiviert ist, kann ein Domänenadministrator die ICA-Sitzungen anzeigen, hat jedoch keine Berechtigung zum Schreiben oder Steuern.
- Wenn ein Administrator in
Citrix Director
auf Spiegeln klickt, wird dem Benutzer eine Aufforderung zum Zulassen der Spiegelung der Sitzung angezeigt. Eine Sitzung kann nur gespiegelt werden, wenn der Sitzungsbenutzer die Berechtigung erteilt. - Für die o. g. Aufforderung gilt ein Timeout von 20 Sekunden. Nach Ablauf des Timeouts schlägt sie fehl.
- Eine Sitzung kann nur von einem Administrator gespiegelt werden. Wenn Administrator B beispielsweise eine Spiegelungsanforderung für einen Sitzungsadministrator A sendet, wird die Aufforderung zum Zulassen erneut auf dem Benutzergerät angezeigt. Wenn der Benutzer zustimmt, wird die Spiegelungsverbindung für Administrator A beendet und eine neue Spiegelungsverbindung für Administrator B aufgebaut. Wenn ein Administrator eine weitere Spiegelungsanfrage für dieselbe Sitzung sendet, kann auch eine neue Spiegelungsverbindung aufgebaut werden.
- Um die Sitzungsspiegelung zu verwenden, installieren Sie
Citrix Director
7.16 oder höher. -
Citrix Director
-Clients verwenden beim Herstellen einer Verbindung mit dem Linux VDA-Server den FQDN anstelle der IP-Adresse. Daher muss derCitrix Director
-Client in der Lage sein, den FQDN des Linux VDA-Servers aufzulösen.
Problembehandlung
Wenn die Sitzungsspiegelung fehlschlägt, debuggen Sie sowohl auf dem Citrix Director
-Client als auch auf dem Linux VDA.
Citrix Director-Client
Prüfen Sie mit den Entwicklertools des Browsers die Ausgabeprotokolle auf der Registerkarte Konsole. Oder überprüfen Sie die Antwort der ShadowLinuxSession-API auf der Registerkarte Netzwerk. Wenn die Bestätigung zum Abrufen der Benutzerberechtigung erscheint, der Verbindungsaufbau jedoch fehlschlägt, pingen Sie den FQDN des VDA manuell an, um zu überprüfen, ob Citrix Director
den FQDN auflösen kann. Wenn es ein Problem mit der wss://
-Verbindung gibt, überprüfen Sie Ihre Zertifikate.
Linux VDA
-
Überprüfen Sie die Datei
/var/log/xdl/vda.log
auf Hinweise. -
Bearbeiten Sie die Datei
/var/xdl/sessionshadowing.sh
und ändern Sie die Variable ‘LogFile’, um eine Logdatei anzugeben, die während der Sitzungsspiegelung vom Director nach Hinweisen durchsucht werden kann. -
Sie können auch manuell überprüfen, ob Ihre Zertifikate mit der NoVNC-Verbindung korrekt funktionieren:
-
Führen Sie ps aux | grep xorg aus, um die Xorg-Anzeigenummer $display-num der aktuellen Sitzung zu finden, zum Beispiel :3.
-
Führen Sie den folgenden Befehl aus, um einen x11vnc-Server zu starten und auf eine eingehende Verbindung zu warten.
Hinweis
Bevor Sie den folgenden Befehl ausführen, legen Sie die Variablen $passwd, $port, $display-num fest.
runuser -l "ctxsrvr" -s /bin/bash -c "websockify <port> -v --cert /etc/xdl/shadowingssl/shadowingcert.pem --key /etc/xdl/shadowingssl/shadowingkey.key -- x11vnc -viewonly -shared -passwd $passwd -rfbport $port -display $display-num -many -o /var/log/xdl/x11vnc.log" <!--NeedCopy-->
-
Versuchen Sie, mit NoVNC eine Verbindung herzustellen, um den SSL-Modus wie folgt zu überprüfen. Geben Sie den FQDN Ihres VDA und die Portnummer ein. In diesem Beispiel lautet die Portnummer 6009.
-
Beheben Sie alle Fehler, die von Websockify auf dem VDA gedruckt oder vom Browser auf dem Client gemeldet wurden.
Wichtige Kontrollpunkte beim Verbindungsaufbau:
- Überprüfen Sie, ob eine Firewall-Beschränkung vorliegt, die das Öffnen des Ports durch die Sitzungsspiegelung verhindert.
- Vergewissern Sie sich, dass Sie die Zertifikate und Schlüsseldateien ordnungsgemäß benannt und für das SSL-Szenario im richtigen Verzeichnis abgelegt haben.
- Stellen Sie sicher, dass zwischen 6001 und 6099 genügend Ports für neue Spiegelungsanforderungen vorhanden sind.
- Stellen Sie sicher, dass ‘netstat’ installiert ist, da es für
/var/xdl/sessionshadowing.sh
erforderlich ist. - Führen Sie
openssl x509 -in shadowingcert.pem -text -noout
aus, um zu überprüfen, ob die Zertifikate korrekt konfiguriert sind. Achten Sie dabei besonders auf die CN- und SAN-Felder. -
Auf RHEL 8 kann es zu einem Problem kommen, bei dem
rebind.so
nicht gefunden werden kann. Führen Sie den folgenden Befehl aus, um dieses Problem zu beheben:ln -s /usr/bin/rebind.so /usr/local/bin/rebind.so <!--NeedCopy-->
-