Xauthority
Le Linux VDA prend en charge les environnements qui utilisent le déport d’affichage X11 interactif (y compris xterm et gvim). Cette fonctionnalité fournit un mécanisme de sécurité nécessaire pour sécuriser les communications entre XClient et XServer.
Deux méthodes permettent de sécuriser l’autorisation pour cette communication sécurisée :
- Xhost. Par défaut, Xhost permet uniquement au XClient localhost de communiquer avec XServer. Si vous choisissez d’autoriser un XClient distant à accéder à XServer, la commande Xhost doit être exécutée pour accorder l’autorisation sur la machine spécifique. Vous pouvez aussi utiliser xhost + pour autoriser n’importe quel XClient à se connecter à XServer.
-
Xauthority. Le fichier
.Xauthorityse trouve dans le répertoire de base de chaque utilisateur. Il est utilisé pour stocker les informations d’identification dans les cookies utilisés par xauth pour l’authentification de XServer. Lorsqu’une instance XServer (Xorg) est lancée, le cookie est utilisé pour authentifier les connexions à cet affichage spécifique.
Fonctionnement
Lorsque Xorg démarre, un fichier .Xauthority est transmis à Xorg. Le fichier .Xauthority contient les éléments suivants :
- Numéro d’affichage
- Protocole de demande distante
- Numéro de cookie
Vous pouvez accéder à ce fichier à l’aide de la commande xauth. Par exemple :
# xauth -f ~/.Xauthority
# > list
# > us01msip06:107 MIT-MAGIC-COOKIE-1 fb228d1b695729242616c5908f11624b
<!--NeedCopy-->
Si XClient se connecte à Xorg à distance, deux conditions doivent être préalablement remplies :
- Définissez la variable d’environnement DISPLAY vers le XServer distant.
- Obtenez le fichier
.Xauthorityqui contient l’un des numéros de cookie dans Xorg.
Configurer Xauthority
Pour activer Xauthority sur Linux VDA pour le déport d’affichage X11, vous devez créer les deux clés de registre suivantes :
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-->
Après avoir activé Xauthority, transmettez le fichier .Xauthority à XClient manuellement, ou en montant un répertoire de base partagé :
-
Transmettre le fichier
.Xauthorityà XClient manuellementAprès le lancement d’une session ICA, le Linux VDA génère le fichier
.Xauthoritypour le XClient et stocke le fichier dans le répertoire de base de la session utilisateur. Vous pouvez copier ce fichier.Xauthoritysur la machine XClient distante et définir les variables d’environnement DISPLAY et XAUTHORITY.DISPLAYest le numéro d’affichage stocké dans le fichier.XauthorityetXAUTHORITYest le chemin d’accès au fichier Xauthority. Pour un exemple, reportez-vous à la commande suivante :export DISPLAY={Display number stored in the Xauthority file} export XAUTHORITY={the file path of .Xauthority} <!--NeedCopy-->Remarque :
Si la variable d’environnement XAUTHORITY n’est pas définie, le fichier
~/.Xauthorityest utilisé par défaut. -
Transmettre le fichier
.Xauthorityà XClient en montant un répertoire de base partagéLa façon la plus pratique consiste à monter un répertoire de base partagé pour la session utilisateur. Lorsque le Linux VDA démarre une session ICA, le fichier
.Xauthorityest créé dans le répertoire de base de la session utilisateur. Si ce répertoire de base est partagé avec le XClient, l’utilisateur n’a pas besoin de transmettre manuellement ce fichier.Xauthorityà XClient. Après avoir correctement défini les variables d’environnement DISPLAY et XAUTHORITY, l’interface utilisateur est affichée dans le bureau XServer automatiquement.
Résolution des problèmes
Si Xauthority ne fonctionne pas, suivez la procédure de dépannage ci-dessous :
-
En tant qu’administrateur avec privilège root, récupérez tous les cookies Xorg :
ps aux | grep -i xorg <!--NeedCopy-->Cette commande affiche le processus Xorg et les paramètres transmis à Xorg lors du démarrage. Un autre paramètre affiche le fichier
.Xauthorityutilisé. Par exemple :/var/xdl/xauth/.Xauthority110 <!--NeedCopy-->Affichez les cookies à l’aide de la commande Xauth :
Xauth -f /var/xdl/xauth/.Xauthority110 <!--NeedCopy--> -
Utilisez la commande
Xauthpour afficher les cookies contenus dans~/.Xauthority. Pour le même numéro d’affichage, les cookies affichés doivent être identiques dans les fichiers.Xauthorityde Xorg et de XClient. -
Si les cookies sont identiques, vérifiez l’accessibilité du port d’affichage à distance en utilisant l’adresse IP du Linux VDA et le numéro d’affichage du bureau publié.
Par exemple, exécutez la commande suivante sur la machine XClient :
telnet 10.158.11.11 6160 <!--NeedCopy-->Le numéro de port est la somme de 6000 + \<numéro d’affichage\>.
Si l’opération telnet échoue, il est possible que le pare-feu bloque la requête.