Linux Virtual Delivery Agent

Instala el VDA de Linux en Debian 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: Prepara la información de configuración y la máquina Linux

Paso 1a: Verifica la configuración de red

Asegúrate de que la red esté conectada y configurada correctamente. Por ejemplo, para configurar el servidor DNS en el VDA de Linux, puedes ejecutar los siguientes comandos:

echo "nameserver <dns ip address>" > "/etc/resolv.conf.custom"
echo "#!/bin/bash
    #
    # Description: script to override default resolv.conf file
    # with customized file.
    cp -f /etc/resolv.conf.custom /etc/resolv.conf">"/etc/NetworkManager/dispatcher.d/15-resolv"

chmod +x /etc/NetworkManager/dispatcher.d/15-resolv
<!--NeedCopy-->

Paso 1b: Establece 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: Asigna una dirección de bucle invertido al nombre de host

Asegúrate de que el nombre de dominio DNS y el nombre de dominio completo (FQDN) de la máquina se informen correctamente. La forma de hacerlo es modificar 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

Por ejemplo:

127.0.0.1 vda01.example.com vda01 localhost

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: Comprueba el nombre de host

Reinicia la máquina y 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 FQDN.

Verifica que el FQDN esté configurado correctamente:

hostname -f
<!--NeedCopy-->

Este comando devuelve el FQDN de la máquina.

Paso 1e: Deshabilita el DNS de multidifusión

La configuración predeterminada tiene el DNS de multidifusión (mDNS) habilitado, lo que puede provocar resultados inconsistentes en la resolución de nombres.

Para deshabilitar mDNS, modifica /etc/nsswitch.conf y cambia la línea:

hosts: files mdns_minimal [NOTFOUND=return] dns

A:

hosts: files dns

Paso 1f: Comprueba 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 ninguna de estas máquinas, revisa los pasos antes de continuar.

Paso 1g: Configura la sincronización del reloj (chrony)

Mantener una sincronización precisa del reloj entre los VDA, los 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.

Instala chrony:

apt-get install chrony
<!--NeedCopy-->

Como usuario root, modifica /etc/chrony/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

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 server o pool listada, incluyendo la dirección IP de bucle invertido, localhost y las entradas de servidor público *.pool.ntp.org.

Guarda los cambios y reinicia el demonio Chrony:

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

Paso 1h: Instala los paquetes

sudo apt-get install -y libsasl2-2

sudo apt-get install -y libgtk2.0-0
<!--NeedCopy-->

Paso 1i: Agrega repositorios para instalar las dependencias necesarias

Para Debian 11.3, agrega la línea deb http://deb.debian.org/debian/ bullseye main al archivo /etc/apt/sources.list.

Paso 1j: Instala y especifica una base de datos para usar

Puedes especificar SQLite o PostgreSQL para usar modificando /etc/xdl/db.conf después de instalar el paquete VDA de Linux. Para instalaciones manuales, debes instalar SQLite y PostgreSQL manualmente antes de poder especificarlos.

Esta sección describe cómo instalar las bases de datos PostgreSQL y SQLite y cómo especificar una base de datos para usar.

Nota:

Te recomendamos usar SQLite solo para el modo VDI.

Instala PostgreSQL

Ejecuta los siguientes comandos para instalar PostgreSQL:

sudo apt-get update

sudo apt-get install -y postgresql

sudo apt-get install -y libpostgresql-jdbc-java
<!--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-->

Instala SQLite

Para Debian, ejecuta el siguiente comando para instalar SQLite:

sudo apt-get install -y sqlite3
<!--NeedCopy-->

Especifica una base de datos para usar

Después de instalar el paquete de VDA de Linux, puedes especificar una base de datos para usarla editando /etc/xdl/db.conf. Para ello, completa los siguientes pasos:

  1. Ejecuta /opt/Citrix/VDA/sbin/ctxcleanup.sh. Omite este paso si se trata de una instalación nueva.
  2. Modifica /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 de 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 Citrix Hypervisor™

Cuando la función de sincronización de la hora de Citrix Hypervisor está habilitada, dentro de cada máquina virtual Linux paravirtualizada, puedes experimentar problemas con NTP y Citrix Hypervisor. Ambos intentan administrar 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 la hora del host. No se requieren cambios en el modo HVM.

Si ejecutas un kernel de Linux paravirtualizado con Citrix VM Tools instalado, puedes comprobar si la función de sincronización de la hora de Citrix Hypervisor está presente y habilitada desde 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 la hora está habilitada y debe deshabilitarse.
  • 1 - La función de sincronización de la hora está deshabilitada y no se requiere ninguna otra acción.

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 la hora escribiendo 1 en el archivo:

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

Para que este cambio sea permanente y persista después de reiniciar, modifica 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 Hyper-V Linux instalados pueden usar la función de sincronización de la hora de Hyper-V para usar la hora del sistema operativo host. Para asegurarte de que el reloj del sistema siga siendo preciso, habilita 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 la opción Sincronización de la hora esté seleccionada.

Nota:

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

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

Cuando la función de sincronización de la hora de VMware está habilitada, dentro de cada máquina virtual Linux paravirtualizada, puedes experimentar 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 la hora del host.

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

  1. Abre vSphere Client.
  2. Modifica 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 la 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:

Es posible que los inicios de sesión fallen si se usa el mismo nombre de usuario para la cuenta local en el VDA de Linux y la cuenta en AD.

Samba Winbind

Instala o actualiza los paquetes necesarios

sudo apt-get install winbind samba libnss-winbind libpam-winbind krb5-config krb5-locales krb5-user
<!--NeedCopy-->

Habilita 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 systemctl enable winbind
<!--NeedCopy-->

Nota:

Asegúrate de que el script winbind se encuentre en /etc/init.d.

Configura Kerberos

Abre /etc/krb5.conf como usuario root y realiza la siguiente configuración:

Nota:

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

[libdefaults]

default_realm = REALM

dns_lookup_kdc = false

[realms]

REALM = {

admin_server = domain-controller-fqdn

kdc = domain-controller-fqdn

}

[domain_realm]

domain-dns-name = REALM

.domain-dns-name = REALM

El parámetro domain-dns-name en este contexto es el nombre de dominio DNS, como example.com. El REALM es el nombre del reino Kerberos en mayúsculas, como EXAMPLE.COM.

Configura la autenticación de Winbind

Abre /etc/samba/smb.conf ejecutando el comando vim /etc/samba/smb.conf y, a continuación, realiza la siguiente configuración:

[global]

workgroup = WORKGROUP

security = ADS

realm = REALM

encrypt passwords = yes

idmap config *:range = 16777216-33554431

kerberos method = secrets and keytab

winbind refresh tickets = yes

template shell = /bin/bash

WORKGROUP es el primer campo en REALM, y REALM es el nombre del reino Kerberos en mayúsculas.

Configura nsswitch

Abre /etc/nsswitch.conf y añade winbind a las siguientes líneas:

passwd: systemd winbind group: systemd winbind

Une el 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:

sudo net ads join <Kerberos realm name in uppercase> -U <domain user with permission to add computers to the domain>
<!--NeedCopy-->

Reinicia Winbind

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

Configura PAM para Winbind

Ejecuta el siguiente comando y asegúrate de que las opciones Autenticación de Winbind NT/Active Directory y Crear directorio personal al iniciar sesión estén seleccionadas:

sudo pam-auth-update
<!--NeedCopy-->

Consejo:

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

Verifica la pertenencia al dominio

El Delivery Controller requiere que todas las máquinas VDA, ya sean Windows o 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-->

Verifica la configuración de Kerberos

Para verificar 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 conjuntos 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 utiliza 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-->

Verifica la autenticación de usuario

Usa la herramienta wbinfo para verificar que los usuarios del 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 del reino Kerberos. Para la 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-->

Nota:

Para ejecutar un comando SSH correctamente, asegúrate de que SSH está habilitado y funciona correctamente.

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 del usuario son válidos y no han caducado:

klist
<!--NeedCopy-->

Sal de la sesión.

exit
<!--NeedCopy-->

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

Consejo:

Si la autenticación de usuario es exitosa pero no puedes ver tu escritorio al iniciar sesión con una cuenta de dominio, reinicia la máquina e inténtalo de nuevo.

Centrify DirectControl

Une el 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 user es cualquier usuario de dominio de Active Directory con permisos para unir equipos al dominio de Active Directory. El parámetro domain-name es el nombre del dominio al que se unirá la máquina Linux.

Verifica la pertenencia al dominio

El Delivery Controller requiere que todas las máquinas VDA, ya sean Windows o Linux, tengan un objeto de equipo en Active Directory. Para verificar que una máquina Linux unida con Centrify está en el dominio:

su –

adinfo
<!--NeedCopy-->

Verifica que el valor de Unido al dominio es válido y que el modo CentrifyDC devuelve conectado. Si el modo permanece atascado en el estado inicial, el cliente de Centrify está experimentando problemas de conexión o autenticación con el servidor.

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

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

Configurar Kerberos

Ejecuta el siguiente comando para instalar Kerberos:

sudo apt-get install krb5-user
<!--NeedCopy-->

Para configurar Kerberos, abre /etc/krb5.conf como root y establece los parámetros:

Nota:

Configura Kerberos según tu infraestructura de AD. Las siguientes opciones están pensadas para el modelo de dominio único y bosque único.

[libdefaults]

default_realm = REALM

dns_lookup_kdc = false

rdns = false

[realms]

REALM = {

admin_server = domain-controller-fqdn

kdc = domain-controller-fqdn

}

[domain_realm]

domain-dns-name = REALM

.domain-dns-name = REALM

El parámetro domain-dns-name en este contexto es el nombre de dominio DNS, como example.com. El REALM es el nombre del ámbito de Kerberos en mayúsculas, como EXAMPLE.COM.

Unir el dominio

SSSD debe configurarse para usar Active Directory como su proveedor de identidades y Kerberos para la autenticación. Sin embargo, SSSD no proporciona funciones de cliente de AD para unir el dominio y administrar el archivo keytab del sistema. En su lugar, puedes usar adcli, realmd o Samba.

Nota:

Esta sección solo proporciona información para adcli y Samba.

  • Si usas adcli para unir el dominio, completa los siguientes pasos:
  1. Instala adcli.

    sudo apt-get install adcli
    <!--NeedCopy-->
    
  2. Une el dominio con adcli.

    Quita el archivo keytab del sistema antiguo y une el dominio usando:

    su -
    
    -  rm -rf /etc/krb5.keytab
    
    adcli join domain-dns-name -U user -H hostname-fqdn
    
    <!--NeedCopy-->
    

    El usuario es un usuario de dominio con permisos para agregar máquinas al dominio. El hostname-fqdn es el nombre de host en formato FQDN para la máquina.

    La opción -H es necesaria para que adcli genere SPN en el formato host/hostname-fqdn@REALM, que el VDA de Linux requiere.

  3. Verifica el keytab del sistema.

    Ejecuta el comando sudo klist -ket para asegurarte de que se ha creado el archivo keytab del sistema.

    Verifica que la marca de tiempo de cada clave coincide con la hora en que la máquina se unió al dominio.

  • Si usas Samba para unir el dominio, completa los siguientes pasos:
  1. Instala el paquete.

    sudo apt-get install samba krb5-user
    <!--NeedCopy-->
    
  2. Configura Samba.

  • Abre /etc/samba/smb.conf y realiza las siguientes configuraciones:

  • [global]

  • workgroup = WORKGROUP

  • security = ADS

  • realm = REALM

  • client signing = yes

  • client use spnego = yes

    kerberos method = secrets and keytab

     -  *WORKGROUP* es el primer campo en *REALM*, y *REALM* es el nombre del ámbito de Kerberos en mayúsculas.
    
  1. Une el dominio con Samba.

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

    sudo net ads join <the Kerberos realm name in uppercase> -U <domain user with permission to add computers to the domain>
    <!--NeedCopy-->
    

Configurar SSSD

Instalar o actualizar los paquetes necesarios:

Instala los paquetes de SSSD y de configuración necesarios si aún no están instalados:

sudo apt-get install sssd
<!--NeedCopy-->
  • Si los paquetes ya están instalados, se recomienda una actualización:
sudo apt-get install --only-upgrade sssd
<!--NeedCopy-->

Configurar SSSD

Se requieren cambios en la configuración de SSSD antes de iniciar el demonio SSSD. Para algunas versiones de SSSD, el archivo de configuración /etc/sssd/sssd.conf no se instala de forma predeterminada y debe crearse manualmente. Como usuario root, crea o abre /etc/sssd/sssd.conf y aplica la siguiente configuración:

[sssd]

services = nss, pam

config_file_version = 2

domains = domain-dns-name

[domain/domain-dns-name]

id_provider = ad

access_provider = ad

auth_provider = krb5

krb5_realm = REALM

# Set krb5_renewable_lifetime higher if TGT renew lifetime is longer than 14 days

krb5_renewable_lifetime = 14d

# Set krb5_renew_interval to lower value if TGT ticket lifetime is shorter than 2 hours

krb5_renew_interval = 1h

krb5_ccachedir = /tmp

krb5_ccname_template = FILE:%d/krb5cc_%U

# This ldap_id_mapping setting is also the default value

ldap_id_mapping = true

override_homedir = /home/%d/%u

default_shell = /bin/bash

ad_gpo_map_remote_interactive = +ctxhdx

Nota:

ldap_id_mapping se establece en true para que SSSD se encargue de asignar los SID de Windows a los UID de Unix. De lo contrario, Active Directory debe poder proporcionar extensiones POSIX. El servicio PAM ctxhdx se agrega a ad_gpo_map_remote_interactive.

El parámetro domain-dns-name en este contexto es el nombre de dominio DNS, como example.com. El REALM es el nombre del ámbito Kerberos en mayúsculas, como EXAMPLE.COM. No es necesario configurar el nombre de dominio NetBIOS.

Para obtener información sobre la configuración, consulta las páginas man de sssd.conf y sssd-ad.

El demonio SSSD requiere que el archivo de configuración tenga solo permisos de lectura para el propietario:

sudo chmod 0600 /etc/sssd/sssd.conf
<!--NeedCopy-->

Iniciar el demonio SSSD

Ejecuta los siguientes comandos para iniciar el demonio SSSD ahora y para habilitar que el demonio se inicie al arrancar la máquina:

sudo systemctl start sssd

sudo systemctl enable sssd
<!--NeedCopy-->

Configuración de PAM

Ejecuta el siguiente comando y asegúrate de que las opciones Autenticación SSS y Crear directorio de inicio al iniciar sesión estén seleccionadas:

sudo pam-auth-update
<!--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.

  • Si usas adcli para verificar la pertenencia al dominio, ejecuta el comando sudo adcli info domain-dns-name para mostrar la información del dominio.

  • Si usas Samba para verificar la pertenencia al dominio, ejecuta el comando sudo net ads testjoin para verificar que la máquina está unida a un dominio y el comando sudo net ads info para verificar información adicional del dominio y del objeto de equipo.

Verificar la configuración de Kerberos

Para verificar 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 de principal 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 ámbito deben especificarse en mayúsculas. El signo de dólar ($) debe escaparse con una barra invertida (\) para evitar la sustitución de shell. En algunos entornos, el nombre de dominio DNS es diferente del nombre del ámbito Kerberos. Asegúrate de que se usa el nombre del ámbito. Si este comando se ejecuta correctamente, no se muestra ninguna salida.

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

sudo klist
<!--NeedCopy-->

Verificar la autenticación de usuario

SSSD no proporciona una herramienta de línea de comandos para probar la autenticación directamente con el demonio, y solo se puede hacer a través de PAM.

-  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.
ssh localhost -l domain\\username

id -u

klist

exit
<!--NeedCopy-->

Verifica que los tickets Kerberos devueltos por el comando klist son correctos para ese usuario y no han caducado.

  • Como usuario root, verifica que se ha creado un archivo de caché de tickets correspondiente para el UID devuelto por el comando id -u anterior:
ls /tmp/krb5cc_uid
<!--NeedCopy-->

Se puede realizar una prueba similar iniciando sesión en KDE o Gnome Display Manager. Continúa con 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

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

Hacer ejecutable el script de instalación de PBIS

sudo chmod +x pbis-open-9.1.0.551.linux.x86_64.deb.sh
<!--NeedCopy-->

Ejecutar el script de instalación de PBIS

sudo sh pbis-open-9.1.0.551.linux.x86_64.deb.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:

sudo /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 shell predeterminado, ejecuta el comando sudo /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 de AD y la OU unidos actualmente. De lo contrario, solo aparece el nombre de host.

Verificar la autenticación de usuario

Para verificar que PBIS 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.

sudo ssh localhost -l domain\\user

id -u
<!--NeedCopy-->

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

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

Sal de la sesión.

exit
<!--NeedCopy-->

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

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 la ruta de tu tiempo de ejecución.

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

Paso 5: Descargar el paquete del VDA de Linux

  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 Componentes para encontrar el VDA de Linux. Por ejemplo:

    Componentes para Citrix Virtual Apps and Desktops

  4. Haz clic en el enlace del VDA de Linux para acceder a las descargas del VDA de Linux.

    Descargas del VDA de Linux

  5. Descarga el paquete del VDA de Linux que coincida con tu distribución de Linux.

  6. Descarga la clave pública GPG que puedes usar para verificar la integridad del paquete del VDA de Linux. Por ejemplo:

    Clave pública GPG

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

    sudo apt-get install dpkg-sig
    gpg --import <path to the public key>
    dpkg-sig --verify <path to the Linux VDA package>
    <!--NeedCopy-->
    

Paso 6: Instalar el VDA de Linux

Paso 6a: Instalar el VDA de Linux

Instala el software del VDA de Linux usando el gestor de paquetes de Debian:

sudo dpkg -i xendesktopvda_<version>.debian10_amd64.deb
<!--NeedCopy-->

Lista de dependencias para Debian 11.3:

openjdk-11-jdk >= 11

imagemagick >= 8:6.9.10

ufw >= 0.36

desktop-base >= 10.0.2

libxrandr2 >= 2:1.5.1

libxtst6 >= 2:1.2.3

libxm4 >= 2.3.8

util-linux >= 2.33

gtk3-nocsd >= 3

bash >= 5.0

findutils >= 4.6.0

sed >= 4.7

cups >= 2.2

ghostscript >= 9.53~

libmspack0 >= 0.10

ibus >= 1.5

libgoogle-perftools4 >= 2.7~

libpython3.9 >= 3.9~

libsasl2-modules-gssapi-mit >= 2.1.~

libqt5widgets5 >= 5.5~

mutter >= 3.38.6~

libqrencode4 >= 4.0.0

libimlib2 >= 1.5.1
<!--NeedCopy-->

Nota:

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

Paso 6b: Actualizar el VDA de Linux (opcional)

Puedes actualizar una instalación existente desde las dos versiones anteriores y desde una versión LTSR.

sudo dpkg -i <PATH>/<Linux VDA deb>
<!--NeedCopy-->

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.

Paso 7: Instalar los controladores NVIDIA GRID

La habilitación de HDX™ 3D Pro requiere que instales los controladores NVIDIA GRID en tu hipervisor y en las máquinas VDA.

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

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

  1. Asegúrate de que la VM invitada esté apagada.
  2. En el panel de control del hipervisor, asigna una GPU a la VM.
  3. Inicia la VM.
  4. Instala el controlador de VM invitado en la VM.

Paso 8: Configurar el VDA de Linux

Nota:

Antes de configurar el entorno de tiempo 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 VDA de Linux 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, las opciones requeridas por el script de configuración se pueden proporcionar con variables de entorno. Si todas las variables requeridas están presentes, el script no solicita ninguna información al usuario, lo que permite un proceso de instalación mediante script.

Las variables de entorno admitidas incluyen:

    -  **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 DNS CNAME. Establecido en N de forma predeterminada.
    -  **CTX\_XDL\_DDC\_LIST='list-ddc-fqdns'** – El VDA de Linux requiere una lista de nombres de dominio completos (FQDN) de Delivery Controller separados por espacios para usar al registrarse en un Delivery Controller. Se debe especificar al menos un FQDN o un alias CNAME.
    -  **CTX\_XDL\_VDA\_PORT=port-number** – El VDA de Linux se comunica con los Delivery Controllers a través de un puerto TCP/IP, que es el puerto 80 de forma predeterminada.
  • CTX_XDL_REGISTER_SERVICE=Y | N – Los servicios del VDA de Linux se inician después del arranque de la máquina. Establecido en Y de forma predeterminada.
  • CTX_XDL_ADD_FIREWALL_RULES=Y | N – Los servicios del VDA de Linux requieren que se permitan las conexiones de red entrantes a través del firewall del sistema. Puedes abrir automáticamente los puertos requeridos (puertos 80 y 1494 de forma predeterminada) en el firewall del sistema para el VDA de Linux. Establecido en Y de forma predeterminada.
  • CTX_XDL_AD_INTEGRATION=winbind | quest |centrify | sssd | pbis – El VDA de Linux requiere ajustes de configuración 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_HDX_3D_PRO=Y | N – El VDA de Linux admite 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_VDI_MODE=Y | N – Si se debe 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 esta variable en Y. Esta variable está establecida en N de forma predeterminada.
    • 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 DNS a un sitio local, especifica un nombre de sitio DNS. Esta variable está establecida en <ninguno> de forma predeterminada.
  • CTX_XDL_LDAP_LIST=’list-ldap-servers’ – El VDA de Linux consulta el DNS para descubrir servidores LDAP. Si el DNS no puede proporcionar registros de servicio LDAP, puedes proporcionar una lista de FQDN de LDAP separados por espacios con los puertos LDAP. Por ejemplo, ad1.mycompany.com:389 ad2.mycompany.com:3268 ad3.mycompany.com:3268. Para permitir 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). Sin embargo, para mejorar el rendimiento de la búsqueda, puedes especificar una base de búsqueda (por ejemplo, OU=VDI,DC=mycompany,DC=com). Esta variable se establece en <none> de forma predeterminada.
  • CTX_XDL_FAS_LIST=’list-fas-servers’ – Los servidores del Servicio de autenticación federada (FAS) se configuran a través de la Directiva de grupo de AD. El VDA de Linux no es compatible con la Directiva de grupo de AD, pero puedes proporcionar una lista de servidores FAS separados por punto y coma. La secuencia debe ser la misma que la configurada en la Directiva de grupo de AD. Si se elimina alguna dirección de servidor, rellena su espacio en blanco con la cadena de texto <none> y no modifiques el orden de las direcciones de los servidores. Para comunicarte correctamente con los servidores FAS, asegúrate de añadir un número de puerto coherente con el especificado en los servidores FAS, por ejemplo, CTX_XDL_FAS_LIST=’fas_server_1_url:port_number; fas_server_2_url: port_number; fas_server_3_url: port_number’.
  • 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_DESKTOP _ENVIRONMENT=gnome/gnome-classic/mate – Especifica el entorno de escritorio GNOME, GNOME Classic o MATE que se usará en las sesiones. Si dejas la variable sin especificar, se usa el escritorio instalado actualmente en el VDA. Sin embargo, si el escritorio instalado actualmente es MATE, debes establecer el valor de la variable en mate.

    También puedes cambiar el entorno de escritorio para un usuario de sesión de destino siguiendo estos pasos:

    1. Crea un archivo .xsession en el directorio $HOME/\<username\> del VDA.
    2. Edita el archivo .xsession para especificar un entorno de escritorio según las 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_START_SERVICE=Y | N – Indica si los servicios de Linux VDA se inician o no cuando se completa la configuración de Linux VDA. Se establece en Y de forma predeterminada.
  • CTX_XDL_TELEMETRY_SOCKET_PORT – El puerto de socket para escuchar a Citrix Scout. El puerto predeterminado es 7503.
  • CTX_XDL_TELEMETRY_PORT – El puerto para comunicarse con Citrix Scout. El puerto predeterminado es 7502.

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

export CTX_XDL_SUPPORT_DDC_AS_CNAME=Y|N

export CTX_XDL_DDC_LIST='list-ddc-fqdns'

export CTX_XDL_VDA_PORT=port-number

export CTX_XDL_REGISTER_SERVICE=Y|N

export CTX_XDL_ADD_FIREWALL_RULES=Y|N

export CTX_XDL_AD_INTEGRATION=winbind | quest |centrify | sssd | pbis

export CTX_XDL_HDX_3D_PRO=Y|N

export CTX_XDL_VDI_MODE=Y|N

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_FAS_LIST='list-fas-servers' | '<none>'

export CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime

export CTX_XDL_DESKTOP_ENVIRONMENT= gnome | gnome-classic | mate | '<none>'

export CTX_XDL_TELEMETRY_SOCKET_PORT=port-number

export CTX_XDL_TELEMETRY_PORT=port-number

export CTX_XDL_START_SERVICE=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_SUPPORT_DDC_AS_CNAME=Y|N \

CTX_XDL_DDC_LIST='list-ddc-fqdns' \

CTX_XDL_VDA_PORT=port-number \

CTX_XDL_REGISTER_SERVICE=Y|N \

CTX_XDL_ADD_FIREWALL_RULES=Y|N \

CTX_XDL_AD_INTEGRATION=winbind | quest |centrify | sssd | pbis \

CTX_XDL_HDX_3D_PRO=Y|N \

CTX_XDL_VDI_MODE=Y|N \

CTX_XDL_SITE_NAME=dns-name \

CTX_XDL_LDAP_LIST='list-ldap-servers' \

CTX_XDL_SEARCH_BASE=search-base-set \

CTX_XDL_FAS_LIST='list-fas-servers' \

CTX_XDL_DOTNET_RUNTIME_PATH=path-to-install-dotnet-runtime \

CTX_XDL_DESKTOP_ENVIRONMENT=gnome|gnome-classic|mate \

CTX_XDL_TELEMETRY_SOCKET_PORT=port-number \

CTX_XDL_TELEMETRY_PORT=port-number \

CTX_XDL_START_SERVICE=Y|N \

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

Quitar cambios de configuración

En algunos escenarios, es posible que debas 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 Linux VDA 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.

Desinstalar el software de Linux VDA

Para comprobar si Linux VDA está instalado y ver la versión del paquete instalado:

dpkg -l xendesktopvda
<!--NeedCopy-->

Para ver información más detallada:

apt-cache show xendesktopvda
<!--NeedCopy-->

Para desinstalar el software de Linux VDA:

dpkg -r xendesktopvda
<!--NeedCopy-->

Nota:

La desinstalación del software de Linux VDA elimina los datos de configuración asociados a PostgreSQL y otros datos de configuración. Sin embargo, el paquete de PostgreSQL y otros paquetes dependientes que se configuraron antes de la instalación de Linux VDA no se eliminan.

Sugerencia:

La información de esta sección no cubre la eliminación de paquetes dependientes, incluido PostgreSQL.

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 Linux VDA

Una vez que hayas configurado el Linux VDA mediante el script ctxsetup.sh, usa los siguientes comandos para controlar el Linux VDA.

Iniciar el Linux VDA:

Para iniciar los servicios de Linux VDA:

sudo systemctl start ctxhdx

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

Detener el Linux VDA:

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 supervisión. De lo contrario, el demonio del servicio de supervisión reiniciará los servicios que detuviste.

Reiniciar el Linux VDA:

Para reiniciar los servicios de Linux VDA:

sudo systemctl stop ctxvda

sudo systemctl restart ctxhdx

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

Comprobar el estado del Linux VDA:

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 Linux VDA es similar al enfoque tradicional de Windows VDA. 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 Linux VDA, existen algunas restricciones que diferencian el proceso de la creación de catálogos de máquinas para máquinas Windows VDA:

  • 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 Linux y Windows VDA en el mismo catálogo de máquinas.

Nota:

Las versiones anteriores de Citrix Studio no admitían la noción de “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:

Si quitas y vuelves a unir una máquina al dominio de Active Directory, debes quitar y volver a agregar la máquina al catálogo de máquinas.

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 Linux VDA es casi idéntico al de las máquinas Windows VDA. 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 Linux VDA, 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 Linux VDA.
  • 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.

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

Instala el VDA de Linux en Debian manualmente