Linux Virtual Delivery Agent

Instalar el VDA de Linux en Amazon Linux 2, CentOS, RHEL y Rocky Linux manualmente

Importante:

Para instalaciones nuevas, te recomendamos usar la instalación sencilla para una instalación rápida. La instalación sencilla ahorra tiempo y trabajo, y es menos propensa a errores que la instalación manual detallada en este artículo.

Paso 1: Preparar la información de configuración y la máquina Linux

Paso 1a: Verificar la configuración de red

Asegúrate de que la red esté conectada y configurada correctamente. Por ejemplo, debes configurar el servidor DNS en el VDA de Linux.

Paso 1b: Establecer el nombre de host

Para asegurarte de que el nombre de host de la máquina se informe correctamente, modifica el archivo /etc/hostname para que contenga solo el nombre de host de la máquina.

hostname

Paso 1c: Asignar una dirección de bucle invertido al nombre de host

Para asegurarte de que el nombre de dominio DNS y el nombre de dominio completo (FQDN) de la máquina se informen correctamente, modifica la siguiente línea del archivo /etc/hosts para incluir el FQDN y el nombre de host como las dos primeras entradas:

127.0.0.1 hostname-fqdn hostname localhost localhost.localdomain localhost4 localhost4.localdomain4

Por ejemplo:

127.0.0.1 vda01.example.com vda01 localhost localhost.localdomain localhost4 localhost4.localdomain4

Quita cualquier otra referencia a hostname-fqdn o hostname de otras entradas en el archivo.

Nota:

El VDA de Linux actualmente no admite la truncación de nombres NetBIOS. El nombre de host no debe exceder los 15 caracteres.

Sugerencia:

Usa solo los caracteres a–z, A–Z, 0–9 y el guion (-). Evita los guiones bajos (_), los espacios y otros símbolos. No inicies un nombre de host con un número ni lo termines con un guion. Esta regla también se aplica a los nombres de host de Delivery Controller.

Paso 1d: Comprobar el nombre de host

Verifica que el nombre de host esté configurado correctamente:

hostname
<!--NeedCopy-->

Este comando devuelve solo el nombre de host de la máquina y no su nombre de dominio completo (FQDN).

Verifica que el FQDN esté configurado correctamente:

hostname -f
<!--NeedCopy-->

Este comando devuelve el FQDN de la máquina.

Paso 1e: Comprobar la resolución de nombres y la accesibilidad del servicio

Verifica que puedes resolver el FQDN y hacer ping al controlador de dominio y a Delivery Controller™:

nslookup domain-controller-fqdn

ping domain-controller-fqdn

nslookup delivery-controller-fqdn

ping delivery-controller-fqdn
<!--NeedCopy-->
  • Si no puedes resolver el FQDN o hacer ping a alguna de estas máquinas, revisa los pasos antes de continuar.

Paso 1f: Configurar la sincronización del reloj

Mantener una sincronización precisa del reloj entre los VDA, Delivery Controllers y los controladores de dominio es crucial. Alojar el VDA de Linux como una máquina virtual (VM) puede causar problemas de desviación del reloj. Por esta razón, se prefiere sincronizar la hora con un servicio de hora remoto.

Un entorno predeterminado de RHEL usa el demonio Chrony (chronyd) para la sincronización del reloj.

Configurar el servicio Chrony

Como usuario root, modifica /etc/chrony.conf y agrega una entrada de servidor para cada servidor de hora remoto:

server peer1-fqdn-or-ip-address iburst

server peer2-fqdn-or-ip-address iburst
<!--NeedCopy-->

En una implementación típica, sincroniza la hora desde los controladores de dominio locales y no directamente desde los servidores de grupo NTP públicos. Agrega una entrada de servidor para cada controlador de dominio de Active Directory en el dominio.

Quita cualquier otra entrada de servidor listada, incluidas la dirección IP de bucle invertido, localhost y las entradas del servidor público *.pool.ntp.org.

Guarda los cambios y reinicia el demonio Chrony:

-  sudo systemctl restart chronyd
<!--NeedCopy-->

Paso 1g: Instalar PulseAudio (solo para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0)

Ejecuta el siguiente comando para instalar pulseaudio:

sudo yum -y install pulseaudio --allowerasing
<!--NeedCopy-->

Abre /etc/pulse/client.conf y agrega la siguiente entrada:

autospawn = yes
<!--NeedCopy-->

Paso 1h: Instalar OpenJDK 11

El VDA de Linux requiere la presencia de OpenJDK 11.

  • Si usas CentOS o RHEL, OpenJDK 11 se instala automáticamente como una dependencia al instalar el VDA de Linux.
  • Si usas Amazon Linux 2 o Rocky Linux, ejecuta el siguiente comando para habilitar e instalar OpenJDK 11:

     amazon-linux-extras install java-openjdk11
     <!--NeedCopy-->
    

Confirma la versión correcta:

sudo yum info java-11-openjdk
<!--NeedCopy-->

Es posible que el OpenJDK preempaquetado sea una versión anterior. Actualiza a OpenJDK 11:

sudo yum -y update java-11-openjdk
<!--NeedCopy-->

Paso 1i: Instalar y especificar una base de datos para usar

Nota:

  • Te recomendamos usar SQLite solo para el modo VDI y usar PostgreSQL para un modelo de entrega de escritorios compartidos alojados.

  • Para la instalación sencilla y MCS, puedes especificar SQLite o PostgreSQL para usar sin tener que instalarlos manualmente. A menos que se especifique lo contrario a través de /etc/xdl/db.conf, el VDA de Linux usa PostgreSQL de forma predeterminada.

  • Para instalaciones manuales, debes instalar SQLite, PostgreSQL o ambos manualmente. Si instalas tanto SQLite como PostgreSQL, puedes especificar uno de ellos para usarlo modificando /etc/xdl/db.conf después de instalar el paquete del VDA de Linux.

  • Esta sección describe cómo instalar PostgreSQL y SQLite, y cómo especificar cuál de ellos usar.

Instalar PostgreSQL

El VDA de Linux requiere PostgreSQL:

  • PostgreSQL 9 para Amazon Linux 2, RHEL 7 y CentOS 7
  • PostgreSQL 10 para RHEL 8.x y Rocky Linux 8.x
  • PostgreSQL 13 para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0

Ejecuta los siguientes comandos para instalar PostgreSQL:

sudo yum -y install postgresql-server

sudo yum -y install postgresql-jdbc
<!--NeedCopy-->

Para RHEL 8.x y RHEL 9.2/9.0, ejecuta el siguiente comando para instalar libpq para PostgreSQL:

sudo yum -y install libpq
<!--NeedCopy-->

Ejecuta el siguiente comando para inicializar la base de datos. Esta acción crea archivos de base de datos en /var/lib/pgsql/data.

sudo postgresql-setup initdb
<!--NeedCopy-->

Ejecuta los siguientes comandos para iniciar PostgreSQL al arrancar la máquina o inmediatamente, respectivamente:

sudo systemctl enable postgresql

-  sudo systemctl start postgresql
<!--NeedCopy-->
  • Comprueba la versión de PostgreSQL usando:
psql --version
<!--NeedCopy-->

(Solo para RHEL 7 y Amazon Linux 2) Verifica que el directorio de datos esté configurado usando la utilidad de línea de comandos psql:

sudo -u postgres psql -c 'show data_directory'
<!--NeedCopy-->

Instalar SQLite

Ejecuta el siguiente comando para instalar SQLite:

sudo yum -y install sqlite
<!--NeedCopy-->

Especificar una base de datos para usar

Si instalas SQLite y PostgreSQL, puedes especificar cuál usar editando /etc/xdl/db.conf después de instalar el paquete de Linux VDA.

  1. Ejecuta /opt/Citrix/VDA/sbin/ctxcleanup.sh. Omite este paso si es una instalación nueva.
  2. Edita /etc/xdl/db.conf para especificar una base de datos que usar.
  3. Ejecuta ctxsetup.sh.

Nota:

También puedes usar /etc/xdl/db.conf para configurar el número de puerto para PostgreSQL.

Paso 2: Prepara el hipervisor

Se requieren algunos cambios al ejecutar el VDA de Linux como una máquina virtual en un hipervisor compatible. Realiza los siguientes cambios según la plataforma de hipervisor en uso. No se requieren cambios si ejecutas la máquina Linux en hardware físico.

Corrige la sincronización de la hora en XenServer (anteriormente Citrix Hypervisor™)

Cuando la función de sincronización de hora de XenServer® está habilitada, dentro de cada máquina virtual Linux paravirtualizada, experimentarás problemas con NTP y XenServer. Ambos intentan gestionar el reloj del sistema. Para evitar que el reloj se desincronice con otros servidores, asegúrate de que el reloj del sistema dentro de cada invitado Linux esté sincronizado con NTP. Este caso requiere deshabilitar la sincronización de hora del host. No se requieren cambios en el modo HVM.

Si ejecutas un kernel de Linux paravirtualizado con las herramientas de máquina virtual de XenServer instaladas, puedes comprobar si la función de sincronización de hora de XenServer está presente y habilitada desde dentro de la máquina virtual Linux:

su -

cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

Este comando devuelve 0 o 1:

  • 0 - La función de sincronización de hora está habilitada y debe deshabilitarse.
  • 1 - La función de sincronización de hora está deshabilitada y no se requiere ninguna acción adicional.

Si el archivo /proc/sys/xen/independent_wallclock no está presente, los siguientes pasos no son necesarios.

Si está habilitada, deshabilita la función de sincronización de hora escribiendo 1 en el archivo:

sudo echo 1 > /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

Para que este cambio sea permanente y persistente después de reiniciar, edita el archivo /etc/sysctl.conf y agrega la línea:

xen.independent_wallclock = 1

Para verificar estos cambios, reinicia el sistema:

su -

cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->

Este comando devuelve el valor 1.

Corrige la sincronización de la hora en Microsoft Hyper-V

Las máquinas virtuales Linux con los Servicios de integración de Linux de Hyper-V instalados pueden aplicar la función de sincronización de hora de Hyper-V para usar la hora del sistema operativo host. Para asegurar que el reloj del sistema permanezca preciso, debes habilitar esta función junto con los servicios NTP.

Desde el sistema operativo de administración:

  1. Abre la consola del Administrador de Hyper-V.
  2. Para la configuración de una máquina virtual Linux, selecciona Servicios de integración.
  3. Asegúrate de que Sincronización de hora esté seleccionada.

Nota:

Este enfoque es diferente al de VMware y XenServer (anteriormente Citrix Hypervisor), donde la sincronización de hora del host está deshabilitada para evitar conflictos con NTP. La sincronización de hora de Hyper-V puede coexistir y complementar la sincronización de hora de NTP.

Corrige la sincronización de la hora en ESX y ESXi

Cuando la función de sincronización de hora de VMware está habilitada, dentro de cada máquina virtual Linux paravirtualizada, experimentarás problemas con NTP y el hipervisor. Ambos intentan sincronizar el reloj del sistema. Para evitar que el reloj se desincronice con otros servidores, asegúrate de que el reloj del sistema dentro de cada invitado Linux esté sincronizado con NTP. Este caso requiere deshabilitar la sincronización de hora del host.

Si ejecutas un kernel de Linux paravirtualizado con VMware Tools instaladas:

  1. Abre vSphere Client.
  2. Edita la configuración de la máquina virtual Linux.
  3. En el cuadro de diálogo Propiedades de la máquina virtual, abre la ficha Opciones.
  4. Selecciona VMware Tools.
  5. En el cuadro Avanzado, desmarca Sincronizar hora del invitado con el host.

Paso 3: Agrega la máquina virtual Linux al dominio de Windows

Los siguientes métodos están disponibles para agregar máquinas Linux al dominio de Active Directory (AD):

Sigue las instrucciones según el método elegido.

Nota:

Los inicios de sesión pueden fallar cuando se usa el mismo nombre de usuario para la cuenta local en el VDA de Linux y la cuenta en AD.

Samba Winbind

Para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0, ejecuta el siguiente comando para evitar que pam_winbind cambie la propiedad del directorio raíz:

usermod -d /nonexistent nobody
<!--NeedCopy-->

Instala o actualiza los paquetes requeridos:

Para RHEL 9.2/9.0/8.x y Rocky Linux 9.2/9.0/8.x:

sudo yum -y install samba-winbind samba-winbind-clients krb5-workstation oddjob-mkhomedir realmd authselect
<!--NeedCopy-->

Para Amazon Linux 2, CentOS 7 y RHEL 7:

sudo yum -y install samba-winbind samba-winbind-clients krb5-workstation oddjob-mkhomedir realmd authconfig
<!--NeedCopy-->

Habilitar el demonio Winbind para que se inicie al arrancar la máquina

El demonio Winbind debe configurarse para que se inicie al arrancar la máquina:

sudo /sbin/chkconfig winbind on
<!--NeedCopy-->

Configurar la autenticación de Winbind

Configura la máquina para la autenticación Kerberos usando Winbind:

  1. Ejecuta el siguiente comando.

    Para RHEL 9.2/9.0/8.x y Rocky Linux 9.2/9.0/8.x:

    sudo authselect select winbind with-mkhomedir --force
    <!--NeedCopy-->
    

    Para Amazon Linux 2, CentOS 7 y RHEL 7:

    sudo authconfig --disablecache --disablesssd --disablesssdauth --enablewinbind --enablewinbindauth --disablewinbindoffline --smbsecurity=ads --smbworkgroup=domain --smbrealm=REALM --krb5realm=REALM --krb5kdc=fqdn-of-domain-controller --winbindtemplateshell=/bin/bash --enablemkhomedir --updateall
    <!--NeedCopy-->
    

    Donde REALM es el nombre del reino Kerberos en mayúsculas y domain es el nombre NetBIOS del dominio.

    Si se requiere la búsqueda basada en DNS del servidor KDC y el nombre del reino, agrega las siguientes dos opciones al comando anterior:

    --enablekrb5kdcdns --enablekrb5realmdns

    Ignora cualquier error devuelto por el comando authconfig sobre el fallo al iniciar el servicio winbind. Los errores pueden ocurrir cuando authconfig intenta iniciar el servicio winbind sin que la máquina se haya unido aún al dominio.

  2. Abre /etc/samba/smb.conf y agrega las siguientes entradas bajo la sección [Global], pero después de la sección generada por la herramienta authconfig:

    kerberos method = secrets and keytab winbind refresh tickets = true winbind offline logon = no

  3. (Solo para RHEL 9.2/9.0/8.x y Rocky Linux 9.2/9.0/8.x) Abre /etc/krb5.conf y agrega entradas bajo las secciones [libdefaults], [realms] y [domain_realm]:

    Bajo la sección [libdefaults]:

    default_ccache_name = FILE:/tmp/krb5cc_%{uid} default_realm = REALM dns_lookup_kdc = true

    Bajo la sección [realms]:

    REALM = { kdc = fqdn-of-domain-controller }

    Bajo la sección [domain_realm]:

    realm = REALM .realm = REALM

El VDA de Linux requiere el archivo keytab del sistema /etc/krb5.keytab para autenticarse y registrarse con el Delivery Controller. La configuración anterior del método kerberos obliga a Winbind a crear el archivo keytab del sistema cuando la máquina se une por primera vez al dominio.

Unirse al dominio de Windows

Tu controlador de dominio debe ser accesible y debes tener una cuenta de usuario de Active Directory con permisos para agregar equipos al dominio.

Para agregar una VM de Linux al dominio de Windows, ejecuta el siguiente comando:

sudo realm join -U user --client-software=winbind REALM
<!--NeedCopy-->

Consejo:

Para las VM de Linux que se ejecutan en Amazon Linux 2, RHEL 7.9 y CentOS 7.9, también puedes usar el siguiente comando para agregarlas al dominio de Windows:

sudo net ads join REALM -U user
<!--NeedCopy-->

REALM es el nombre del reino Kerberos en mayúsculas, y user es un usuario de dominio que tiene permisos para agregar equipos al dominio.

Configurar PAM para Winbind

Por defecto, la configuración del módulo PAM de Winbind (pam_winbind) no habilita el almacenamiento en caché de tickets Kerberos ni la creación de directorios de inicio. Abre /etc/security/pam_winbind.conf y agrega o cambia las siguientes entradas bajo la sección [Global]:

krb5_auth = yes krb5_ccache_type = FILE mkhomedir = yes

Asegúrate de que se eliminen los puntos y comas iniciales de cada configuración. Estos cambios requieren reiniciar el demonio Winbind:

sudo systemctl restart winbind
<!--NeedCopy-->

Consejo:

El demonio winbind permanece en ejecución solo si la máquina está unida a un dominio.

Abre /etc/krb5.conf y cambia la siguiente configuración bajo la sección [libdefaults] de KEYRING a tipo FILE:

default_ccache_name = FILE:/tmp/krb5cc_%{uid}

Para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0, ejecuta los siguientes comandos para resolver el problema de SELinux con Winbind:

-  ausearch -c 'winbindd' --raw | audit2allow -M my-winbindd -p /etc/selinux/targeted/policy/policy.*

semodule -X 300 -i my-winbindd.pp
<!--NeedCopy-->

Verificar la pertenencia al dominio

-  El Delivery Controller requiere que todas las máquinas VDA (VDA de Windows y Linux) tengan un objeto de equipo en **Active Directory**.

Ejecuta el comando net ads de Samba para verificar que la máquina está unida a un dominio:

sudo net ads testjoin
<!--NeedCopy-->

Ejecuta el siguiente comando para verificar información adicional del dominio y del objeto de equipo:

sudo net ads info
<!--NeedCopy-->

Verificar la configuración de Kerberos

Para asegurarte de que Kerberos está configurado correctamente para su uso con el VDA de Linux, verifica que el archivo keytab del sistema se ha creado y contiene claves válidas:

-  sudo klist -ke
<!--NeedCopy-->

Este comando muestra la lista de claves disponibles para las diversas combinaciones de nombres principales y suites de cifrado. Ejecuta el comando kinit de Kerberos para autenticar la máquina con el controlador de dominio usando estas claves:

sudo kinit -k MACHINE\$@REALM
<!--NeedCopy-->

Los nombres de la máquina y del reino deben especificarse en mayúsculas. El signo de dólar ($) debe escaparse con una barra invertida (\) para evitar la sustitución de la shell. En algunos entornos, el nombre de dominio DNS es diferente del nombre del reino Kerberos. Asegúrate de que se usa el nombre del reino. Si este comando se ejecuta correctamente, no se muestra ninguna salida.

Verifica que el ticket TGT para la cuenta de la máquina se ha almacenado en caché usando:

sudo klist
<!--NeedCopy-->

Examina los detalles de la cuenta de la máquina usando:

sudo net ads status
<!--NeedCopy-->

Verificar la autenticación de usuarios

  • Usa la herramienta wbinfo para verificar que los usuarios de dominio pueden autenticarse con el dominio:
wbinfo --krb5auth=domain\\username%password
<!--NeedCopy-->

El dominio especificado aquí es el nombre de dominio de AD, no el nombre de reino de Kerberos. Para el shell bash, el carácter de barra invertida (\) debe escaparse con otra barra invertida. Este comando devuelve un mensaje que indica éxito o fallo.

Para verificar que el módulo PAM de Winbind está configurado correctamente, inicia sesión en el VDA de Linux usando una cuenta de usuario de dominio que no se haya usado antes.

ssh localhost -l domain\\username
id -u
<!--NeedCopy-->

Verifica que los tickets en la caché de credenciales de Kerberos son válidos y no han caducado:

klist
<!--NeedCopy-->

Cierra la sesión.

exit
<!--NeedCopy-->

Puedes realizar una prueba similar iniciando sesión directamente en la consola de Gnome o KDE. Continúa con Paso 6: Instalar el VDA de Linux después de la verificación de unión al dominio.

Servicios de autenticación de Quest

Configurar Quest en el controlador de dominio

Asume que has instalado y configurado el software de Quest en los controladores de dominio de Active Directory y que se te han concedido privilegios administrativos para crear objetos de equipo en Active Directory.

Permitir que los usuarios de dominio inicien sesión en máquinas VDA de Linux

Para permitir que los usuarios de dominio establezcan sesiones HDX™ en una máquina VDA de Linux:

  1. En la consola de administración Usuarios y equipos de Active Directory, abre las propiedades de usuario de Active Directory para esa cuenta de usuario.
  2. Selecciona la ficha Cuenta Unix.
  3. Marca la casilla Unix-enabled.
  4. Establece el Número GID principal en el ID de grupo de un grupo de usuarios de dominio real.

Nota:

Estas instrucciones son equivalentes para configurar usuarios de dominio para iniciar sesión mediante la consola, RDP, SSH o cualquier otro protocolo de acceso remoto.

Configurar Quest en el VDA de Linux

Solucionar la aplicación de la política de SELinux

El entorno RHEL predeterminado tiene SELinux totalmente aplicado. Esta aplicación interfiere con los mecanismos IPC de socket de dominio Unix usados por Quest e impide que los usuarios de dominio inicien sesión.

  • La forma cómoda de solucionar este problema es deshabilitar SELinux. Como usuario root, edita /etc/selinux/config y cambia la configuración de SELinux:

SELINUX=permissive

Este cambio requiere reiniciar la máquina:

reboot
<!--NeedCopy-->

Importante:

Usa esta configuración con cuidado. Volver a habilitar la aplicación de la política de SELinux después de deshabilitarla puede provocar un bloqueo completo, incluso para el usuario root y otros usuarios locales.

Configurar el demonio VAS

La renovación automática de los tickets de Kerberos debe estar habilitada y desconectada. La autenticación (inicio de sesión sin conexión) debe estar deshabilitada.

sudo /opt/quest/bin/vastool configure vas vasd auto-ticket-renew-interval 32400

sudo /opt/quest/bin/vastool configure vas vas_auth allow-disconnected-auth false
<!--NeedCopy-->

Este comando establece el intervalo de renovación en nueve horas (32 400 segundos), lo que es una hora menos que la vida útil predeterminada del ticket de 10 horas. Establece este parámetro en un valor inferior en sistemas con una vida útil del ticket más corta.

Configurar PAM y NSS

Para permitir el inicio de sesión de usuarios de dominio a través de HDX y otros servicios como su, ssh y RDP, ejecuta los siguientes comandos para configurar PAM y NSS manualmente:

sudo /opt/quest/bin/vastool configure pam

sudo /opt/quest/bin/vastool configure nss
<!--NeedCopy-->

Unirse al dominio de Windows

Une la máquina Linux al dominio de Active Directory usando el comando vastool de Quest:

sudo /opt/quest/bin/vastool -u user join domain-name
<!--NeedCopy-->

El usuario es cualquier usuario de dominio que tenga permisos para unir equipos al dominio de Active Directory. El nombre-de-dominio es el nombre DNS del dominio, por ejemplo, example.com.

Reinicia la máquina Linux después de unirte al dominio.

Verificar la pertenencia al dominio

El Delivery Controller requiere que todas las máquinas VDA (VDA de Windows y Linux) tengan un objeto de equipo en Active Directory. Para verificar que una máquina Linux unida a Quest está en el dominio:

sudo /opt/quest/bin/vastool info domain
<!--NeedCopy-->

Si la máquina está unida a un dominio, este comando devuelve el nombre del dominio. Si la máquina no está unida a ningún dominio, aparece el siguiente error:

ERROR: No se pudo encontrar ningún dominio. ERROR: VAS_ERR_CONFIG: at ctx.c:414 in _ctx_init_default_realm default_realm no configurado en vas.conf. Es posible que el equipo no esté unido al dominio

Verificar la autenticación de usuarios

Para verificar que Quest puede autenticar usuarios de dominio a través de PAM, inicia sesión en el VDA de Linux usando una cuenta de usuario de dominio que no se haya usado antes.

ssh localhost -l domain\\username
id -u
<!--NeedCopy-->

Verifica que se creó un archivo de caché de credenciales de Kerberos correspondiente para el UID devuelto por el comando id -u:

ls /tmp/krb5cc_uid
<!--NeedCopy-->

Verifica que los tickets en la caché de credenciales de Kerberos son válidos y no han caducado:

/opt/quest/bin/vastool klist
<!--NeedCopy-->

Cierra la sesión.

exit
<!--NeedCopy-->

Puedes realizar una prueba similar iniciando sesión directamente en la consola de Gnome o KDE. Continúa con Paso 6: Instalar el VDA de Linux después de la verificación de unión al dominio.

Centrify DirectControl

Unirse a un dominio de Windows

Con el agente de Centrify DirectControl instalado, une la máquina Linux al dominio de Active Directory usando el comando adjoin de Centrify:

su –
adjoin -w -V -u user domain-name
<!--NeedCopy-->

El parámetro de usuario es cualquier usuario de dominio de Active Directory que tenga permisos para unir equipos al dominio de Active Directory. El nombre-de-dominio es el nombre del dominio al que se unirá la máquina Linux.

-  #### Verificar la pertenencia al dominio

El Delivery Controller requiere que todas las máquinas VDA (VDA de Windows y Linux) tengan un objeto de equipo en Active Directory. Para verificar que una máquina Linux unida a Centrify está en el dominio:

su –
adinfo
<!--NeedCopy-->

Verifica que el valor de Joined to domain sea válido y que el modo CentrifyDC devuelva connected. Si el modo se queda atascado en el estado inicial, el cliente de Centrify está experimentando problemas de conexión o autenticación con el servidor.

Hay disponible información de diagnóstico y del sistema más completa mediante:

adinfo --sysinfo all
adinfo –diag
<!--NeedCopy-->

Prueba la conectividad con los distintos servicios de Active Directory y Kerberos.

adinfo --test
<!--NeedCopy-->

Continúa con el Paso 6: Instalar el VDA de Linux después de verificar la unión al dominio.

SSSD

Si usas SSSD, sigue las instrucciones de esta sección. Esta sección incluye instrucciones para unir una máquina VDA de Linux a un dominio de Windows y proporciona orientación para configurar la autenticación Kerberos.

Para configurar SSSD en RHEL y CentOS, haz lo siguiente:

  1. Une el dominio y crea un keytab de host
  2. Configura SSSD
  3. Habilita SSSD
  4. Verifica la configuración de Kerberos
  5. Verifica la autenticación de usuario

Unir el dominio y crear un keytab de host

SSSD no proporciona funciones de cliente de Active Directory para unir el dominio y administrar el archivo keytab del sistema. Puedes usar adcli, realmd o Samba en su lugar.

Esta sección describe el enfoque de Samba para Amazon Linux 2 y RHEL 7, y el enfoque de adcli para RHEL 8.x/9.x y Rocky Linux 8.x/9.x. Para realmd, consulta la documentación de RHEL o CentOS. Estos pasos deben seguirse antes de configurar SSSD.

  • Samba (Amazon Linux 2 y RHEL 7):

    Instala o actualiza los paquetes necesarios:

     sudo yum -y install krb5-workstation authconfig oddjob-mkhomedir samba-common-tools
     <!--NeedCopy-->
    

    En el cliente Linux con los archivos configurados correctamente:

    • /etc/krb5.conf
    • /etc/samba/smb.conf:

    Configura la máquina para la autenticación de Samba y Kerberos:

     sudo authconfig --smbsecurity=ads --smbworkgroup=domain --smbrealm=REALM --krb5realm=REALM --krb5kdc=fqdn-of-domain-controller --update
     <!--NeedCopy-->
    

    Donde REALM es el nombre del reino Kerberos en mayúsculas y dominio es el nombre NetBIOS corto del dominio de Active Directory.

    Nota:

    La configuración de este artículo está pensada para el modelo de dominio único y bosque único. Configura Kerberos según tu infraestructura de AD.

    Si se requiere la búsqueda basada en DNS del servidor KDC y el nombre del reino, agrega las dos opciones siguientes al comando anterior:

    --enablekrb5kdcdns --enablekrb5realmdns

    Abre /etc/samba/smb.conf y agrega las siguientes entradas en la sección [Global], pero después de la sección generada por la herramienta authconfig:

    kerberos method = secrets and keytab winbind offline logon = no

    Une el dominio de Windows. Asegúrate de que tu controlador de dominio sea accesible y de que tienes una cuenta de usuario de Active Directory con permisos para agregar equipos al dominio:

     sudo net ads join REALM -U user
     <!--NeedCopy-->
    

    REALM es el nombre del reino Kerberos en mayúsculas y usuario es un usuario de dominio que tiene permisos para agregar equipos al dominio.

  • Adcli (RHEL 9.2/9.0/8.x y Rocky Linux 9.2/9.0/8.x):

    Instala o actualiza los paquetes necesarios:

     sudo yum -y install samba-common samba-common-tools krb5-workstation authconfig oddjob-mkhomedir realmd oddjob authselect
     <!--NeedCopy-->
    

    Configura la máquina para la autenticación de Samba y Kerberos:

     sudo authselect select sssd with-mkhomedir --force
     <!--NeedCopy-->
    

    Abre /etc/krb5.conf y agrega las entradas en las secciones [realms] y [domain_realm].

    En la sección [realms]:

    REALM = { kdc = fqdn-of-domain-controller }

    En la sección [domain_realm]:

    realm = REALM .realm = REALM

    Une el dominio de Windows. Asegúrate de que tu controlador de dominio sea accesible y de que tienes una cuenta de usuario de Active Directory con permisos para agregar equipos al dominio:

     sudo realm join REALM -U user
     <!--NeedCopy-->
    

    REALM es el nombre del reino Kerberos en mayúsculas y usuario es un usuario de dominio que tiene permisos para agregar equipos al dominio.

Configurar SSSD

La configuración de SSSD consta de los siguientes pasos:

  • Instala el paquete sssd-ad en el VDA de Linux ejecutando el comando sudo yum -y install sssd.
  • Realiza cambios de configuración en varios archivos (por ejemplo, sssd.conf).
  • Inicia el servicio sssd.

Un ejemplo de configuración de sssd.conf para RHEL 7 (se pueden agregar opciones adicionales según sea necesario):

Un ejemplo de configuración de SSSD para RHEL 7

Reemplaza ad.example.com, server.ad.example.com con los valores correspondientes. Para obtener más detalles, consulta sssd-ad(5) - página man de Linux.

(Solo RHEL 9.2/9.0/8.x y Rocky Linux 9.2/9.0/8.x) Abre /etc/sssd/sssd.conf y agrega las siguientes entradas en la sección [domain/ad.example.com]:

ad_gpo_access_control = permissive full_name_format = %2$s\%1$s fallback_homedir = /home/%d/%u # Kerberos settings krb5_ccachedir = /tmp krb5_ccname_template = FILE:%d/krb5cc_%U

Establece la propiedad y los permisos del archivo en sssd.conf:

chown root:root /etc/sssd/sssd.conf chmod 0600 /etc/sssd/sssd.conf restorecon /etc/sssd/sssd.conf

Habilitar SSSD

Para RHEL 9.2/9.0/8.x y Rocky Linux 9.2/9.0/8.x:

Ejecuta los siguientes comandos para habilitar SSSD:

sudo systemctl restart sssd
sudo systemctl enable sssd.service
sudo chkconfig sssd on
<!--NeedCopy-->

Para Amazon Linux 2, CentOS 7 y RHEL 7:

Usa authconfig para habilitar SSSD. Instala oddjob-mkhomedir para asegurar que la creación del directorio de inicio sea compatible con SELinux:

authconfig --enablesssd --enablesssdauth --enablemkhomedir --update

sudo systemctl start sssd

sudo chkconfig sssd on
<!--NeedCopy-->

Verificar la configuración de Kerberos

Verifica que el archivo keytab del sistema se haya creado y contenga claves válidas:

sudo klist -ke
<!--NeedCopy-->

Este comando muestra la lista de claves disponibles para las diversas combinaciones de nombres principales y conjuntos de cifrado. Ejecuta el comando Kerberos kinit para autenticar la máquina con el controlador de dominio usando estas claves:

sudo kinit –k MACHINE\$@REALM
<!--NeedCopy-->

Los nombres de la máquina y del reino deben especificarse en mayúsculas. El signo de dólar ($) debe escaparse con una barra invertida (\) para evitar la sustitución de la shell. En algunos entornos, el nombre de dominio DNS es diferente del nombre del reino de Kerberos. Asegúrate de que se use el nombre del reino. Si este comando se ejecuta correctamente, no se muestra ninguna salida.

Verifica que el ticket TGT para la cuenta de la máquina se haya almacenado en caché usando:

sudo klist
<!--NeedCopy-->

Verificar la autenticación de usuario

  • Usa el comando getent para verificar que el formato de inicio de sesión sea compatible y que el NSS funcione:
sudo getent passwd DOMAIN\\username
<!--NeedCopy-->

El parámetro DOMAIN indica el nombre de dominio de la versión corta. Si se necesita otro formato de inicio de sesión, verifica primero usando el comando getent.

Los formatos de inicio de sesión compatibles son:

  • Nombre de inicio de sesión de nivel inferior: DOMAIN\username
  • UPN: username@domain.com
  • Formato de sufijo NetBIOS: username@DOMAIN

Para verificar que el módulo PAM de SSSD esté configurado correctamente, inicia sesión en el VDA de Linux usando una cuenta de usuario de dominio que no se haya usado antes.

-  sudo ssh localhost –l DOMAIN\\username

id -u
<!--NeedCopy-->

Verifica que se haya creado un archivo de caché de credenciales de Kerberos correspondiente para el uid devuelto por el comando:

ls /tmp/krb5cc_{uid}
<!--NeedCopy-->

Verifica que los tickets en la caché de credenciales de Kerberos del usuario sean válidos y no hayan caducado.

klist
<!--NeedCopy-->

Continúa con el Paso 6: Instalar el VDA de Linux después de la verificación de la unión al dominio.

PBIS

Descargar el paquete PBIS requerido

wget https://github.com/BeyondTrust/pbis-open/releases/download/9.1.0/pbis-open-9.1.0.551.linux.x86_64.rpm.sh
<!--NeedCopy-->

Hacer ejecutable el script de instalación de PBIS

chmod +x pbis-open-9.1.0.551.linux.x86_64.rpm.sh
<!--NeedCopy-->
  • Ejecutar el script de instalación de PBIS

sh pbis-open-9.1.0.551.linux.x86_64.rpm.sh
<!--NeedCopy-->

Unirse al dominio de Windows

Tu controlador de dominio debe ser accesible y debes tener una cuenta de usuario de Active Directory con permisos para agregar equipos al dominio:

/opt/pbis/bin/domainjoin-cli join domain-name user
<!--NeedCopy-->

El usuario es un usuario de dominio que tiene permisos para agregar equipos al dominio de Active Directory. El nombre-de-dominio es el nombre DNS del dominio, por ejemplo, example.com.

Nota: Para establecer Bash como la shell predeterminada, ejecuta el comando /opt/pbis/bin/config LoginShellTemplate/bin/bash.

Verificar la pertenencia al dominio

El Delivery Controller requiere que todas las máquinas VDA (VDA de Windows y Linux) tengan un objeto de equipo en Active Directory. Para verificar que una máquina Linux unida a PBIS esté en el dominio:

/opt/pbis/bin/domainjoin-cli query
<!--NeedCopy-->

Si la máquina está unida a un dominio, este comando devuelve la información sobre el dominio AD y la OU actualmente unidos. De lo contrario, solo aparece el nombre de host.

Verificar la autenticación de usuario

Para verificar que PBIS pueda autenticar usuarios de dominio a través de PAM, inicia sesión en el VDA de Linux usando una cuenta de usuario de dominio que no se haya usado antes.

ssh localhost -l domain\\user

id -u
<!--NeedCopy-->

Verifica que se haya creado un archivo de caché de credenciales de Kerberos correspondiente para el UID devuelto por el comando id -u:

ls /tmp/krb5cc_uid
<!--NeedCopy-->
  • Sal de la sesión.
-  exit
<!--NeedCopy-->

Paso 4: Instalar .NET Runtime 6.0

Antes de instalar el VDA de Linux, instala .NET Runtime 6.0 según las instrucciones en https://docs.microsoft.com/en-us/dotnet/core/install/linux-package-managers.

Después de instalar .NET Runtime 6.0, ejecuta el comando which dotnet para encontrar tu ruta de tiempo de ejecución.

Según la salida del comando, establece la ruta del binario de tiempo de ejecución de .NET. Por ejemplo, si la salida del comando es /aa/bb/dotnet, usa /aa/bb como la ruta del binario de .NET.

    -  ## Paso 5: Descarga el paquete de Linux VDA
  1. Ve a la página de descarga de Citrix Virtual Apps and Desktops.
  2. Expande la versión adecuada de Citrix Virtual Apps and Desktops.
  3. Expande Components para encontrar el Linux VDA. Por ejemplo:

    -  ![Componentes para Citrix Virtual Apps and Desktops](/en-us/linux-virtual-delivery-agent/2311/media/components-for-citrix-virtual-apps-and-desktops.png)
    
  4. Haz clic en el enlace de Linux VDA para acceder a las descargas de Linux VDA.

    Descargas de Linux VDA

  5. Descarga el paquete de Linux VDA que coincida con tu distribución de Linux.
    1. Descarga la clave pública GPG que puedes usar para verificar la integridad del paquete de Linux VDA. Por ejemplo:

      • Clave pública GPG

      • Para verificar la integridad del paquete de Linux VDA, ejecuta los siguientes comandos para importar la clave pública en la base de datos RPM y para comprobar la integridad del paquete:

     rpmkeys --import <path to the public key>
     rpm --checksig --verbose <path to the Linux VDA package>
     <!--NeedCopy-->
    

Paso 6: Instala el Linux VDA

Puedes realizar una instalación nueva o actualizar una instalación existente. El Linux VDA admite actualizaciones desde la versión más reciente. Por ejemplo, puedes actualizar el Linux VDA de 2308 a 2311 y de 1912 LTSR a 2203 LTSR.

Paso 6a: Realiza una instalación nueva

  1. (Opcional) Desinstala la versión anterior

    Si instalaste una versión anterior que no sea una de las dos anteriores y una versión LTSR, desinstálala antes de instalar la nueva versión.

    1. Detén los servicios de Linux VDA:

      sudo systemctl stop ctxvda
      
      sudo systemctl stop ctxhdx
      <!--NeedCopy-->
      

      Nota:

      Antes de detener los servicios ctxvda y ctxhdx, ejecuta el comando systemctl stop ctxmonitord para detener el demonio del servicio de monitorización. De lo contrario, el demonio del servicio de monitorización reinicia los servicios que detuviste.

    2. Desinstala el paquete:

      sudo rpm -e XenDesktopVDA
      <!--NeedCopy-->
      

    Nota:

    Para ejecutar un comando, se necesita la ruta completa; alternativamente, puedes agregar /opt/Citrix/VDA/sbin y /opt/Citrix/VDA/bin a la ruta del sistema.

  2. Descarga el paquete de Linux VDA

    Ve a la página de descarga de Citrix Virtual Apps and Desktops. Expande la versión adecuada de Citrix Virtual Apps and Desktops y haz clic en Components para descargar el paquete de Linux VDA que coincida con tu distribución de Linux.

  3. Instala el Linux VDA

    Nota:

        -  Para CentOS, RHEL y Rocky Linux, instala el repositorio EPEL antes de poder instalar el Linux VDA correctamente. Para obtener información sobre cómo instalar EPEL, consulta las instrucciones en <https://docs.fedoraproject.org/en-US/epel/>.
    
    • Antes de instalar el Linux VDA en RHEL 9.2/9.0 y Rocky Linux 9.2/9.0, actualiza el paquete libsepol a la versión 3.4 o posterior.
    • Instala el software de Linux VDA usando Yum:

      Para Amazon Linux 2:

       sudo yum install -y XenDesktopVDA-<version>.amzn2.x86_64.rpm
       <!--NeedCopy-->
      

      Para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0:

       sudo yum install -y XenDesktopVDA-<version>.el9_x.x86_64.rpm
       <!--NeedCopy-->
      

      Para RHEL 8.x y Rocky Linux 8.x:

       sudo yum install -y XenDesktopVDA-<version>.el8_x.x86_64.rpm
       <!--NeedCopy-->
      

      Para CentOS 7 y RHEL 7:

       sudo yum install -y XenDesktopVDA-<version>.el7_x.x86_64.rpm
       <!--NeedCopy-->
      
    • Instala el software de Linux VDA usando el gestor de paquetes RPM. Antes de hacerlo, debes resolver las siguientes dependencias:

      Para Amazon Linux 2:

       sudo rpm -i XenDesktopVDA-<version>.amzn2.x86_64.rpm
       <!--NeedCopy-->
      

      RHEL 9.2/9.0 y Rocky Linux 9.2/9.0:

       sudo rpm -i XenDesktopVDA-<version>.el9_x.x86_64.rpm
       <!--NeedCopy-->
      
  • Para RHEL 8.x y Rocky Linux 8.x:

     ```
     -  sudo rpm -i XenDesktopVDA-<version>.el8_x.x86_64.rpm
     <!--NeedCopy--> ```
    
     **Para CentOS 7 y RHEL 7:**
    
     ```
     sudo rpm -i XenDesktopVDA-<version>.el7_x.x86_64.rpm
     <!--NeedCopy--> ```
    
     **Lista de dependencias RPM para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0:**
    
     ```
     -  tzdata-java >= 2022
    
     java-11-openjdk >= 11
    
      icoutils >= 0.32
    
      firewalld >= 0.6.3
    
      policycoreutils-python >= 2.8.9
    
      policycoreutils-python-utils >= 2.8
    
      python3-policycoreutils >= 2.8
    
      dbus >= 1.12.8
    
      dbus-common >= 1.12.8
    
      dbus-daemon >= 1.12.8
    
      dbus-tools >= 1.12.8
    
      dbus-x11 >= 1.12.8
    
      xorg-x11-server-utils >= 7.7
    
      xorg-x11-xinit >= 1.3.4
    
      libXpm >= 3.5.12
    
      libXrandr >= 1.5.1
    
      libXtst >= 1.2.3
    
      pam >= 1.3.1
    
      util-linux >= 2.32.1
    
      util-linux-user >= 2.32.1
    
      xorg-x11-utils >= 7.5
    
      bash >= 4.3
    
      findutils >= 4.6
    
      gawk >= 4.2
    
      sed >= 4.5
    
      cups >= 1.6.0
    
      foomatic-filters >= 4.0.9
    
      cups-filters >= 1.20.0
    
      ghostscript >= 9.25
    
      libxml2 >= 2.9
    
      libmspack >= 0.7
    
      krb5-workstation >= 1.13
    
      ibus >= 1.5
    
      nss-tools >= 3.44.0
    
      gperftools-libs >= 2.4
    
      cyrus-sasl-gssapi >= 2.1
    
      python3 >= 3.6~
    
      qt5-qtbase >= 5.5~
    
      qt5-qtbase-gui >= 5.5~
    
      qrencode-libs >= 3.4.4
    
      imlib2 >= 1.4.9
    
     <!--NeedCopy--> ```
    
     **Lista de dependencias RPM para RHEL 8.x y Rocky Linux 8.x:**
    
     ```
     java-11-openjdk >= 11
    
     icoutils >= 0.32
    
     firewalld >= 0.6.3
    
     policycoreutils-python >= 2.8.9
    
     policycoreutils-python-utils >= 2.8
    
     python3-policycoreutils >= 2.8
    
     dbus >= 1.12.8
    
     dbus-common >= 1.12.8
    
     dbus-daemon >= 1.12.8
    
     dbus-tools >= 1.12.8
    
     dbus-x11 >= 1.12.8
    
     xorg-x11-server-utils >= 7.7
    
     xorg-x11-xinit >= 1.3.4
    
     libXpm >= 3.5.12
    
     libXrandr >= 1.5.1
    
     libXtst >= 1.2.3
    
     pam >= 1.3.1
    
     util-linux >= 2.32.1
    
     util-linux-user >= 2.32.1
    
     xorg-x11-utils >= 7.5
    
     bash >= 4.3
    
     findutils >= 4.6
    
     gawk >= 4.2
    
     sed >= 4.5
    
     cups >= 1.6.0
    
     foomatic-filters >= 4.0.9
    
     cups-filters >= 1.20.0
    
     ghostscript >= 9.25
    
     libxml2 >= 2.9
    
     libmspack >= 0.7
    
     krb5-workstation >= 1.13
    
     ibus >= 1.5
    
     nss-tools >= 3.44.0
    
     gperftools-libs >= 2.4
    
     cyrus-sasl-gssapi >= 2.1
    
     python3 >= 3.6~
    
     qt5-qtbase >= 5.5~
    
     qt5-qtbase-gui >= 5.5~
    
     qrencode-libs >= 3.4.4
    
     imlib2 >= 1.4.9
     <!--NeedCopy--> ```
    
     **Lista de dependencias RPM para CentOS 7 y RHEL 7:**
    
     ```
     java-11-openjdk >= 11
    
     ImageMagick >= 6.7.8.9
    
     firewalld >= 0.3.9
    
     policycoreutils-python >= 2.0.83
    
     dbus >= 1.6.12
    
     dbus-x11 >= 1.6.12
    
     xorg-x11-server-utils >= 7.7
    
     xorg-x11-xinit >= 1.3.2
    
     xorg-x11-server-Xorg >= 1.20.4
    
     libXpm >= 3.5.10
    
     libXrandr >= 1.4.1
    
     libXtst >= 1.2.2
    
     pam >= 1.1.8
    
     util-linux >= 2.23.2
    
     bash >= 4.2
    
     findutils >= 4.5
    
     gawk >= 4.0
    
     sed >= 4.2
    
     cups >= 1.6.0
    
     foomatic-filters >= 4.0.9
    
     libxml2 >= 2.9
    
     libmspack >= 0.5
    
     ibus >= 1.5
    
     cyrus-sasl-gssapi >= 2.1
    
     python3 >= 3.6~
    
     gperftools-libs >= 2.4
    
     nss-tools >= 3.44.0
    
     qt5-qtbase >= 5.5~
    
     qt5-qtbase >= 5.5~
    
     imlib2 >= 1.4.5
     <!--NeedCopy--> ```
    
     **Lista de dependencias RPM para Amazon Linux 2:**
    
     ```
     java-11-openjdk >= 11
    
     ImageMagick >= 6.7.8.9
    
     firewalld >= 0.3.9
    
     policycoreutils-python >= 2.0.83
    
     dbus >= 1.6.12
    
     dbus-x11 >= 1.6.12
    
     xorg-x11-server-utils >= 7.7
    
     xorg-x11-xinit >= 1.3.2
    
     xorg-x11-server-Xorg >= 1.20.4
    
     libXpm >= 3.5.10
    
     libXrandr >= 1.4.1
    
     libXtst >= 1.2.2
    
     pam >= 1.1.8
    
     util-linux >= 2.23.2
    
     bash >= 4.2
    
     findutils >= 4.5
    
     gawk >= 4.0
    
     sed >= 4.2
    
     cups >= 1.6.0
    
     foomatic-filters >= 4.0.9
    
     libxml2 >= 2.9
    
     libmspack >= 0.5
    
     ibus >= 1.5
    
     cyrus-sasl-gssapi >= 2.1
    
     gperftools-libs >= 2.4
    
     nss-tools >= 3.44.0
    
     qt5-qtbase >= 5.5~
    
     qrencode-libs >= 3.4.1
    
     imlib2 >= 1.4.5
     <!--NeedCopy--> ```
    

    Nota:

    Para una matriz de las distribuciones de Linux y las versiones de Xorg que admite esta versión de Linux VDA, consulta Requisitos del sistema.

    Después de instalar el Linux VDA en RHEL 7.x, ejecuta el comando sudo yum install -y python-websockify x11vnc. El propósito es instalar python-websockify y x11vnc manualmente para usar la función de duplicación de sesión. Para obtener más información, consulta Duplicación de sesiones.

Paso 6b: Actualiza una instalación existente (opcional)

El Linux VDA admite actualizaciones desde la versión más reciente. Por ejemplo, puedes actualizar el Linux VDA de 2308 a 2311 y de 1912 LTSR a 2203 LTSR.

Nota:

  • La actualización de una instalación existente sobrescribe los archivos de configuración en /etc/xdl. Antes de realizar una actualización, asegúrate de hacer una copia de seguridad de los archivos.

    • Antes de actualizar el Linux VDA en RHEL 9.2/9.0 y Rocky Linux 9.2/9.0, actualiza el paquete libsepol a la versión 3.4 o posterior.
-  Para actualizar tu software usando `Yum`:

**Para Amazon Linux 2:**

```
sudo yum install -y XenDesktopVDA-<version>.amzn2.x86_64.rpm
<!--NeedCopy--> ```

**Para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0:**

```
sudo yum install -y XenDesktopVDA-<version>.el9_x.x86_64.rpm
<!--NeedCopy--> ```

**Para RHEL 8.x y Rocky Linux 8.x:**

```
sudo yum install -y XenDesktopVDA-<version>.el8_x.x86_64.rpm
<!--NeedCopy--> ```

**Para CentOS 7 y RHEL 7:**

```
sudo yum install -y XenDesktopVDA-<version>.el7_x.x86_64.rpm
<!--NeedCopy--> ```
  • Para actualizar tu software usando el administrador de paquetes RPM:

    Para Amazon Linux 2:

     sudo rpm -U XenDesktopVDA-<version>.amzn2.x86_64.rpm
     <!--NeedCopy-->
    

    Para RHEL 9.2/9.0 y Rocky Linux 9.2/9.0:

     sudo rpm -U XenDesktopVDA-<version>.el9_x.x86_64.rpm
     <!--NeedCopy-->
    

    Para RHEL 8.x y Rocky Linux 8.x:

     sudo rpm -U XenDesktopVDA-<version>.el8_x.x86_64.rpm
     <!--NeedCopy-->
    

    Para CentOS 7 y RHEL 7:

     sudo rpm -U XenDesktopVDA-<version>.el7_x.x86_64.rpm
     <!--NeedCopy-->
    

Nota:

Si usas RHEL 7, asegúrate de completar los siguientes pasos después de ejecutar los comandos de actualización anteriores:

  1. ejecuta /opt/Citrix/VDA/bin/ctxreg create -k "HKLM\Software\Citrix\VirtualDesktopAgent" -t "REG_SZ" -v "DotNetRuntimePath" -d "/opt/rh/rh-dotnet31/root/usr/bin/" --force para establecer la ruta correcta del entorno de ejecución de .NET.
  2. Reinicia el servicio ctxvda.

Importante:

Reinicia la máquina Linux VDA después de actualizar el software.

Paso 7: Instala los controladores NVIDIA GRID

Para habilitar HDX 3D Pro, debes instalar los controladores NVIDIA GRID en tu hipervisor y en las máquinas VDA.

Nota:

Para usar HDX 3D Pro con Amazon Linux 2, te recomendamos instalar el controlador NVIDIA 470. Para obtener más información, consulta Requisitos del sistema.

Para instalar y configurar el Administrador de GPU virtual NVIDIA GRID (el controlador del host) en los hipervisores específicos, consulta las siguientes guías:

Para instalar y configurar los controladores de VM invitada NVIDIA GRID, realiza los siguientes pasos:

  1. Asegúrate de que la VM invitada esté apagada.
  2. En XenCenter®, asigna una GPU a la VM.
  3. Inicia la VM.
  4. Prepara la VM para el controlador NVIDIA GRID:

    yum install gcc
    
    yum install "kernel-devel-$(uname -r)"
    
    systemctl set-default multi-user.target
    <!--NeedCopy-->
    
  5. Sigue los pasos del documento de Red Hat Enterprise Linux para instalar el controlador NVIDIA GRID.

Nota:

Durante la instalación del controlador de GPU, selecciona la opción predeterminada (‘no’) para cada pregunta.

Importante:

Después de habilitar el paso a través de GPU, la VM Linux ya no es accesible a través de XenCenter. Usa SSH para conectarte.

Fragmento de código NVIDIA smi

Establece la configuración correcta para la tarjeta:

etc/X11/ctx-nvidia.sh

Para aprovechar las grandes resoluciones y las capacidades de varios monitores, necesitas una licencia NVIDIA válida. Para solicitar la licencia, consulta la documentación del producto “GRID Licensing Guide.pdf - DU-07757-001 September 2015”.

Paso 8: Configura el Linux VDA

Nota:

Antes de configurar el entorno de ejecución, asegúrate de que la configuración regional en_US.UTF-8 esté instalada en tu sistema operativo. Si la configuración regional no está disponible en tu sistema operativo, ejecuta el comando sudo locale-gen en_US.UTF-8. Para Debian, edita el archivo /etc/locale.gen descomentando la línea # en_US.UTF-8 UTF-8 y luego ejecuta el comando sudo locale-gen.

Después de instalar el paquete, debes configurar el Linux VDA ejecutando el script ctxsetup.sh. Antes de realizar cualquier cambio, el script verifica el entorno y se asegura de que todas las dependencias estén instaladas. Si es necesario, puedes volver a ejecutar el script en cualquier momento para cambiar la configuración.

Puedes ejecutar el script manualmente con indicaciones o automáticamente con respuestas preconfiguradas. Revisa la Ayuda sobre el script antes de continuar:

sudo /opt/Citrix/VDA/sbin/ctxsetup.sh --help
<!--NeedCopy-->

Configuración guiada

Ejecuta una configuración manual con preguntas guiadas:

sudo /opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->

Configuración automatizada

Para una instalación automatizada, proporciona las opciones requeridas por el script de configuración con variables de entorno. Si todas las variables requeridas están presentes, el script no solicitará ninguna información.

Las variables de entorno admitidas incluyen:

  • CTX_XDL_NON_DOMAIN_JOINED=’y|n’ – Si unir la máquina a un dominio. El valor predeterminado es ‘n’. Para escenarios unidos a un dominio, establécelo en ‘n’.

  • CTX_XDL_AD_INTEGRATION=’winbind|sssd|centrify|pbis|quest’ – El Linux VDA requiere configuraciones de Kerberos para autenticarse con los Delivery Controllers. La configuración de Kerberos se determina a partir de la herramienta de integración de Active Directory instalada y configurada en el sistema.

  • CTX_XDL_DDC_LIST=’<list-ddc-fqdns>‘ – El Linux VDA requiere una lista de nombres de dominio completos (FQDN) de Delivery Controller separados por espacios para registrarse con un Delivery Controller. Se debe especificar al menos un FQDN o CNAME.

  • CTX_XDL_VDI_MODE=’y|n’ – Si configurar la máquina como un modelo de entrega de escritorio dedicado (VDI) o un modelo de entrega de escritorio compartido alojado. Para entornos HDX 3D Pro, establece el valor en ‘y’.

  • CTX_XDL_HDX_3D_PRO=’y|n’ – El Linux VDA es compatible con HDX 3D Pro, un conjunto de tecnologías de aceleración de GPU diseñadas para optimizar la virtualización de aplicaciones gráficas enriquecidas. Si se selecciona HDX 3D Pro, el VDA se configura para el modo de escritorios VDI (sesión única) - (es decir, CTX_XDL_VDI_MODE=‘y’).

  • CTX_XDL_START_SERVICE=’y|n’ – Determina si los servicios de Linux VDA se inician cuando se completa la configuración.

  • CTX_XDL_REGISTER_SERVICE=’y|n’ – Los servicios de Linux Virtual Desktop se inician después del arranque de la máquina.

  • CTX_XDL_ADD_FIREWALL_RULES=’y|n’ – Los servicios de Linux VDA requieren que se permitan las conexiones de red entrantes a través del firewall del sistema. Puedes abrir automáticamente los puertos requeridos (por defecto los puertos 80 y 1494) en el firewall del sistema para el Linux Virtual Desktop.

  • CTX_XDL_DESKTOP_ENVIRONMENT=gnome/gnome-classic/mate – Especifica el entorno de escritorio GNOME, GNOME Classic o MATE para usar en las sesiones. Si dejas la variable sin especificar, se usa el escritorio predeterminado configurado en el VDA.

    También puedes cambiar el entorno de escritorio para un usuario de sesión de destino completando los siguientes pasos:

    1. Crea un archivo .xsession en el directorio $HOME/<username> en el VDA.
    2. Edita el archivo .xsession para especificar un entorno de escritorio basado en distribuciones.

      • Para el escritorio MATE

         MSESSION="$(type -p mate-session)"  
         if [ -n "$MSESSION" ]; then  
           exec mate-session  
         fi  
        
      • Para el escritorio GNOME Classic

         GSESSION="$(type -p gnome-session)"  
         if [ -n "$GSESSION" ]; then  
         export GNOME_SHELL_SESSION_MODE=classic  
         exec gnome-session --session=gnome-classic  
         fi 
        
      • Para el escritorio GNOME

         GSESSION="$(type -p gnome-session)"  
         if [ -n "$GSESSION" ]; then  
         exec gnome-session  
         fi  
        
    3. Comparte el permiso de archivo 700 con el usuario de la sesión de destino.

    A partir de la versión 2209, los usuarios de sesión pueden personalizar sus entornos de escritorio. Para habilitar esta función, debes instalar entornos de escritorio intercambiables en el VDA con antelación. Para obtener más información, consulta Entornos de escritorio personalizados por usuarios de sesión.

  • CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime – La ruta para instalar .NET Runtime 6.0 para admitir el nuevo servicio de agente de broker (ctxvda). La ruta predeterminada es ‘/usr/bin’.

  • CTX_XDL_VDA_PORT=port-number – El VDA de Linux se comunica con los Delivery Controllers a través de un puerto TCP/IP.

  • CTX_XDL_SITE_NAME=<dns-name> – El VDA de Linux descubre servidores LDAP a través de DNS. Para limitar los resultados de la búsqueda de DNS a un sitio local, especifica un nombre de sitio DNS. Si no es necesario, establécelo en ’<none>‘.

  • CTX_XDL_LDAP_LIST=’<list-ldap-servers>‘ – El VDA de Linux consulta DNS para descubrir servidores LDAP. Si DNS no puede proporcionar registros de servicio LDAP, puedes proporcionar una lista de FQDN de LDAP separados por espacios con puertos LDAP. Por ejemplo, ad1.mycompany.com:389 ad2.mycompany.com:3268 ad3.mycompany.com:3268. Para habilitar consultas LDAP más rápidas dentro de un bosque de Active Directory, habilita el Catálogo global en un controlador de dominio y especifica el número de puerto LDAP relevante como 3268. Esta variable se establece en ‘<none>‘ de forma predeterminada.

  • CTX_XDL_SEARCH_BASE=search-base-set – El VDA de Linux consulta LDAP a través de una base de búsqueda establecida en la raíz del dominio de Active Directory (por ejemplo, DC=mycompany,DC=com). Para mejorar el rendimiento de la búsqueda, puedes especificar una base de búsqueda (por ejemplo, OU=VDI,DC=mycompany,DC=com). Si no es necesario, establécelo en ‘<none>‘.

  • CTX_XDL_SUPPORT_DDC_AS_CNAME=’y|n’ – El VDA de Linux admite la especificación de un nombre de Delivery Controller mediante un registro CNAME de DNS.

Establece la variable de entorno y ejecuta el script de configuración:

export CTX_XDL_NON_DOMAIN_JOINED='n'
export CTX_XDL_AD_INTEGRATION=winbind|centrify|sssd|pbis|quest
export CTX_XDL_DDC_LIST='<list-ddc-fqdns>'
export CTX_XDL_VDI_MODE='y|n'
export CTX_XDL_HDX_3D_PRO='y|n'
export CTX_XDL_START_SERVICE='y|n'
export CTX_XDL_REGISTER_SERVICE='y|n'
export CTX_XDL_ADD_FIREWALL_RULES='y|n'
export CTX_XDL_DESKTOP_ENVIRONMENT= gnome|gnome-classic|mate|'<none>'
export CTX_XDL_DOTNET_RUNTIME_PATH='<path-to-install-dotnet-runtime>'
export CTX_XDL_VDA_PORT='<port-number>'
export CTX_XDL_SITE_NAME='<dns-site-name>'|'<none>'
export CTX_XDL_LDAP_LIST='<list-ldap-servers>'|'<none>'
export CTX_XDL_SEARCH_BASE='<search-base-set>'|'<none>'
export CTX_XDL_SUPPORT_DDC_AS_CNAME='y|n'
sudo -E /opt/Citrix/VDA/sbin/ctxsetup.sh --silent
<!--NeedCopy-->

Al ejecutar el comando sudo, escribe la opción -E para pasar las variables de entorno existentes al nuevo shell que crea. Te recomendamos que crees un archivo de script de shell a partir de los comandos anteriores con #!/bin/bash como primera línea.

Alternativamente, puedes especificar todos los parámetros mediante un solo comando:

sudo CTX_XDL_NON_DOMAIN_JOINED='n' \
CTX_XDL_AD_INTEGRATION=winbind|centrify|sssd|pbis|quest \
CTX_XDL_DDC_LIST='<list-ddc-fqdns>' \
CTX_XDL_VDI_MODE='y|n' \
CTX_XDL_HDX_3D_PRO='y|n' \
CTX_XDL_START_SERVICE='y|n' \
CTX_XDL_REGISTER_SERVICE='y|n' \
CTX_XDL_ADD_FIREWALL_RULES='y|n' \
CTX_XDL_DESKTOP_ENVIRONMENT= gnome|gnome-classic|mate|'<none>' \
CTX_XDL_DOTNET_RUNTIME_PATH='<path-to-install-dotnet-runtime>' \
CTX_XDL_VDA_PORT='<port-number>' \
CTX_XDL_SITE_NAME='<dns-site-name>'|'<none>' \
CTX_XDL_LDAP_LIST='<list-ldap-servers>'|'<none>' \
CTX_XDL_SEARCH_BASE='<search-base-set>'|'<none>' \
CTX_XDL_SUPPORT_DDC_AS_CNAME='y|n' \
/opt/Citrix/VDA/sbin/ctxsetup.sh --silent
<!--NeedCopy-->

Quitar cambios de configuración

En algunos escenarios, es posible que tengas que quitar los cambios de configuración realizados por el script ctxsetup.sh sin desinstalar el paquete de Linux VDA.

Revisa la Ayuda sobre este script antes de continuar:

sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh --help
<!--NeedCopy-->

Para quitar los cambios de configuración:

sudo /opt/Citrix/VDA/sbin/ctxcleanup.sh
<!--NeedCopy-->

Importante:

Este script elimina todos los datos de configuración de la base de datos y deja el VDA de Linux inoperable.

Registros de configuración

Los scripts ctxsetup.sh y ctxcleanup.sh muestran errores en la consola, con información adicional escrita en el archivo de registro de configuración /tmp/xdl.configure.log.

Reinicia los servicios de Linux VDA para que los cambios surtan efecto.

Paso 9: Ejecuta XDPing

Ejecuta sudo /opt/Citrix/VDA/bin/xdping para comprobar si hay problemas de configuración comunes en un entorno de Linux VDA. Para obtener más información, consulta XDPing.

Paso 10: Ejecuta el VDA de Linux

Después de configurar el VDA de Linux mediante el script ctxsetup.sh, puedes ejecutar los siguientes comandos para controlar el VDA de Linux.

Inicia el VDA de Linux:

Para iniciar los servicios de Linux VDA:

sudo systemctl start ctxhdx

sudo systemctl start ctxvda
<!--NeedCopy-->

Detén el VDA de Linux:

Para detener los servicios de Linux VDA:

sudo systemctl stop ctxvda

sudo systemctl stop ctxhdx
<!--NeedCopy-->

Nota:

Antes de detener los servicios ctxvda y ctxhdx, ejecuta el comando systemctl stop ctxmonitord para detener el demonio del servicio de monitorización. De lo contrario, el demonio del servicio de monitorización reinicia los servicios que detuviste.

Reinicia el VDA de Linux:

Para reiniciar los servicios de Linux VDA:

sudo systemctl stop ctxvda

sudo systemctl restart ctxhdx

sudo systemctl start ctxvda
<!--NeedCopy-->

Comprueba el estado del VDA de Linux:

Para comprobar el estado de ejecución de los servicios de Linux VDA:

sudo systemctl status ctxvda

sudo systemctl status ctxhdx
<!--NeedCopy-->

Paso 11: Crea catálogos de máquinas

El proceso para crear catálogos de máquinas y agregar máquinas VDA de Linux es similar al enfoque tradicional de VDA de Windows. Para obtener una descripción más detallada de cómo completar estas tareas, consulta Crear catálogos de máquinas y Administrar catálogos de máquinas.

Para crear catálogos de máquinas que contengan máquinas VDA de Linux, existen algunas restricciones que diferencian el proceso de la creación de catálogos de máquinas para máquinas VDA de Windows:

  • Para el sistema operativo, selecciona:
    • La opción SO multisesión para un modelo de entrega de escritorios compartidos alojados.
    • La opción SO de sesión única para un modelo de entrega de escritorios dedicados VDI.
  • No mezcles máquinas VDA de Linux y Windows en el mismo catálogo de máquinas.

Nota:

Las versiones anteriores de Citrix Studio no admitían la noción de un “SO Linux”. Sin embargo, seleccionar la opción SO de Windows Server o SO de servidor implica un modelo de entrega de escritorios compartidos alojados equivalente. Seleccionar la opción SO de escritorio de Windows o SO de escritorio implica un modelo de entrega de un solo usuario por máquina.

Sugerencia:

Cuando vuelvas a unir una máquina quitada al dominio de Active Directory, quita la máquina del catálogo de máquinas y vuelve a agregarla.

Paso 12: Crea grupos de entrega

El proceso para crear un grupo de entrega y agregar catálogos de máquinas que contengan máquinas VDA de Linux es casi idéntico al de las máquinas VDA de Windows. Para obtener una descripción más detallada de cómo completar estas tareas, consulta Crear grupos de entrega.

Para crear grupos de entrega que contengan catálogos de máquinas VDA de Linux, se aplican las siguientes restricciones:

  • Asegúrate de que los usuarios y grupos de AD que selecciones se hayan configurado correctamente para iniciar sesión en las máquinas VDA de Linux.
  • No permitas el inicio de sesión de usuarios no autenticados (anónimos).
  • No mezcles el grupo de entrega con catálogos de máquinas que contengan máquinas Windows.

Importante:

La publicación de aplicaciones es compatible con Linux VDA versión 1.4 y posteriores. Sin embargo, el VDA de Linux no admite la entrega de escritorios y aplicaciones a la misma máquina.

Para obtener información sobre cómo crear catálogos de máquinas y grupos de entrega, consulta Citrix Virtual Apps and Desktops 7 2311.

Instalar el VDA de Linux en Amazon Linux 2, CentOS, RHEL y Rocky Linux manualmente