Instalar Linux Virtual Delivery Agent para Ubuntu
Puede elegir entre seguir los pasos de este artículo para la instalación manual o utilizar Easy Install para la instalación y configuración automáticas. Easy Install ahorra tiempo y trabajo y es menos propenso a errores que la instalación manual.
- Nota
Use Easy Install solo para instalaciones nuevas. No utilice Easy Install para actualizar una instalación existente.
Paso 1: Prepare Ubuntu para la instalación del VDA
Paso 1a: Verifique la configuración de red
Compruebe que la red esté conectada y correctamente configurada antes de continuar.
Paso 1b: Establezca el nombre de host
Para que el nombre de host de la máquina se notifique correctamente, cambie el archivo /etc/hostname para que solo contenga el nombre de host de la máquina.
hostname
Paso 1c: Asigne una dirección de bucle invertido al nombre de host
Para que se notifiquen correctamente el nombre de dominio DNS y el nombre de dominio completo de la máquina (FQDN), cambie la siguiente línea del archivo /etc/hosts para que contenga el nombre de dominio completo y el nombre de host en las dos primeras entradas:
127.0.0.1 hostname-fqdn hostname localhost
Por ejemplo:
127.0.0.1 vda01.example.com vda01 localhost
Quite las demás referencias a hostname-fqdn o hostname de otras entradas del archivo.
Nota:
Actualmente, Linux VDA no admite el truncamiento del nombre NetBIOS. Por lo tanto, el nombre de host no debe superar los 15 caracteres.
Sugerencia:
Use solamente caracteres de “a” a “z”, de “A” a “Z”, de 0 a 9 y guiones (-). No utilice guiones bajos (_), espacios ni otros símbolos. No inicie un nombre de host con un número ni lo termine con un guión. Esta regla también se aplica a nombres de host de Delivery Controller.
Paso 1d: Compruebe el nombre de host
Compruebe que el nombre de host está definido correctamente:
hostname
<!--NeedCopy-->
Este comando devuelve solo el nombre de host de la máquina, no su nombre de dominio completo.
Compruebe que el nombre de dominio completo (FQDN) está definido correctamente:
hostname -f
<!--NeedCopy-->
Este comando devuelve el nombre de dominio completo de la máquina.
Paso 1e: Inhabilite el DNS de multidifusión
Con la configuración predeterminada, el DNS de multidifusión (mDNS) está habilitado, lo que puede dar lugar a resoluciones de nombres incoherentes.
Para inhabilitar mDNS, modifique /etc/nsswitch.conf y cambie la línea que contiene:
hosts: files mdns_minimal [NOTFOUND=return] dns
A:
hosts: files dns
Paso 1f: Compruebe la resolución de nombres y la disponibilidad del servicio
Compruebe que se puede resolver el nombre de dominio completo (FQDN) y haga ping al controlador de dominio y al Delivery Controller:
nslookup domain-controller-fqdn
ping domain-controller-fqdn
nslookup delivery-controller-fqdn
ping delivery-controller-fqdn
<!--NeedCopy-->
Si no puede resolver el FQDN o hacer ping en alguna de estas máquinas, revise los pasos antes de continuar.
Paso 1g: Configure la sincronización del reloj (chrony)
Mantener sincronizados los relojes de los VDA, los Delivery Controllers y los controladores de dominio es fundamental. Ahora bien, alojar Linux VDA como una máquina virtual puede causar problemas de reloj sesgado. Por este motivo, se recomienda sincronizar la hora con un servicio remoto de sincronización horaria.
Instalar Chrony:
apt-get install chrony
<!--NeedCopy-->
Como usuario root, modifique /etc/chrony/chrony.conf y agregue una entrada de servidor para cada servidor horario remoto:
server peer1-fqdn-or-ip-address iburst
server peer2-fqdn-or-ip-address iburst
En una implementación típica, sincronice la hora con los controladores del dominio local, no directamente con grupos públicos de servidores NTP. Agregue una entrada de servidor para cada controlador de dominio de Active Directory que tenga en el dominio.
Quite las demás entradas server o pool de la lista, incluidas las entradas loopback IP address, localhost y public server *.pool.ntp.org.
Guarde los cambios y reinicie el demonio de Chrony:
sudo systemctl restart chrony
<!--NeedCopy-->
Paso 1h: Instale OpenJDK
Linux VDA depende de OpenJDK. Por regla general, el entorno en tiempo de ejecución se instala durante la instalación del sistema operativo. Compruebe si se ha instalado:
sudo apt-get install -y default-jdk
<!--NeedCopy-->
Paso 1i: Instale PostgreSQL
Linux VDA requiere PostgreSQL 9.x en Ubuntu 16.04:
sudo apt-get install -y postgresql
sudo apt-get install -y libpostgresql-jdbc-java
<!--NeedCopy-->
Paso 1j: Instale Motif
sudo apt-get install -y libxm4
<!--NeedCopy-->
Paso 1k: Instale otros paquetes
sudo apt-get install -y libsasl2-2
sudo apt-get install -y libsasl2-modules-gssapi-mit
sudo apt-get install -y libldap-2.4-2
sudo apt-get install -y krb5-user
sudo apt-get install -y cups
<!--NeedCopy-->
Paso 2: Prepare el hipervisor
Se necesitan algunos cambios cuando se ejecuta Linux VDA como una máquina virtual en un hipervisor admitido. Realice los siguientes cambios en función de la plataforma del hipervisor que utilice. No se requieren cambios si se está ejecutando la máquina Linux sin sistema operativo.
Corregir la sincronización horaria en Citrix XenServer
Si está habilitada la funcionalidad de sincronización horaria de XenServer, se darán problemas en las máquinas virtuales Linux paravirtualizadas debido a que tanto NTP como XenServer intentarán administrar el reloj del sistema. Para evitar la desincronización del reloj respecto a los demás servidores, el reloj del sistema de cada invitado Linux debe sincronizarse con NTP. Por eso, es necesario inhabilitar la sincronización horaria del host. No se requieren cambios en el modo HVM.
En algunas distribuciones de Linux, si se ejecuta un kernel Linux paravirtualizado con XenServer Tools instalado, puede comprobar si la función de sincronización horaria de XenServer está presente y habilitarla en la máquina virtual de Linux:
su -
cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->
Este comando devuelve 0 o 1:
- 0. La funcionalidad de sincronización horaria está habilitada, por lo que se debe inhabilitar.
- 1. La funcionalidad de sincronización horaria está inhabilitada, por lo que no es necesaria ninguna otra acción.
Si el archivo /proc/sys/xen/independent_wallclock no está presente, no es necesario que siga estos pasos.
Si se habilita, inhabilite la función de sincronización de tiempo con un 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 la máquina, modifique el archivo /etc/sysctl.conf y agregue la línea:
xen.independent_wallclock = 1
Para comprobar los cambios, reinicie el sistema:
su -
cat /proc/sys/xen/independent_wallclock
<!--NeedCopy-->
Este comando devuelve el valor 1.
Corregir la sincronización horaria en Microsoft Hyper-V
Las máquinas virtuales Linux que tienen instalados los servicios de integración de Hyper-V para Linux pueden utilizar la funcionalidad de sincronización horaria de Hyper-V para usar la hora del sistema operativo del host. Para que el reloj del sistema no se desincronice, se debe habilitar esta funcionalidad junto con los servicios NTP.
Desde el sistema operativo de administración:
- Abra la consola del Administrador de Hyper-V.
- Para ver la configuración de una máquina virtual Linux, seleccione Integration Services.
- Compruebe que Time synchronization está seleccionado.
- Nota
Este método difiere de XenServer y VMware, donde se inhabilita la sincronización horaria del host para evitar conflictos con NTP. La sincronización horaria de Hyper-V puede coexistir y complementarse con la sincronización horaria de NTP.
Corregir la sincronización horaria en ESX y ESXi
Si está habilitada la funcionalidad de sincronización horaria de VMware, se darán problemas en las máquinas virtuales Linux paravirtualizadas debido a que tanto NTP como el hipervisor intentarán sincronizar el reloj del sistema. Para evitar la desincronización del reloj respecto a los demás servidores, el reloj del sistema de cada invitado Linux debe sincronizarse con NTP. Por eso, es necesario inhabilitar la sincronización horaria del host.
Si ejecuta un kernel Linux paravirtualizado con VMware Tools instalado:
- Abra vSphere Client.
- Modifique la configuración de la máquina virtual Linux.
- En el cuadro de diálogo Propiedades de la máquina virtual, abra la ficha Opciones.
- Seleccione VMware Tools.
- En el cuadro Advanced, desmarque la casilla Synchronize guest time with host.
Paso 3: Agregue la máquina virtual (VM) de Linux al dominio de Windows
Linux VDA admite varios métodos para agregar máquinas Linux al dominio de Active Directory (AD):
- Samba Winbind
- Servicio de autenticación Quest
- Centrify DirectControl
- SSSD
Siga las instrucciones en función del método elegido.
Samba Winbind
Instalar o actualizar los paquetes requeridos
sudo apt-get install winbind samba libnss-winbind libpam-winbind krb5-config krb5-locales krb5-user
<!--NeedCopy-->
Habilitar el demonio de Winbind para que se inicie a la misma vez que la máquina
El demonio de Winbind debe configurarse para iniciarse en el arranque:
sudo systemctl enable winbind
<!--NeedCopy-->
Configurar Kerberos
Abra /etc/krb5.conf
como usuario root y configure los parámetros siguientes:
[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
<!--NeedCopy-->
La propiedad domain-dns-name en este contexto es el nombre de dominio DNS (por ejemplo, ejemplo.com). REALM es el nombre del territorio Kerberos en mayúsculas, como EJEMPLO.COM.
Configurar la autenticación de Winbind
Debe configurar Windbind manualmente, ya que Ubuntu no tiene una herramienta como authconfig
en RHEL y yast2 en SUSE.
Abra /etc/samba/smb.conf
y configure los parámetros siguientes:
[global]
workgroup = WORKGROUP
security = ADS
realm = REALM
encrypt passwords = yes
idmap config *:range = 16777216-33554431
winbind trusted domains only = no
kerberos method = secrets and keytab
winbind refresh tickets = yes
template shell = /bin/bash
<!--NeedCopy-->
WORKGROUP es el primer campo de REALM, y REALM es el nombre del territorio Kerberos en mayúsculas.
Configurar nsswitch
Abra /etc/nsswitch.conf
y agregue winbind
a las siguientes líneas:
passwd: compat winbind
group: compat winbind
Unirse al dominio de Windows
Se requiere que el controlador de dominio esté accesible y se necesita disponer de una cuenta de usuario de Active Directory con permisos para agregar equipos al dominio:
sudo net ads join REALM -U user
<!--NeedCopy-->
Donde REALM es el nombre del territorio Kerberos en mayúsculas, y user es un usuario de dominio con permisos para agregar equipos al dominio.
Reiniciar Winbind
sudo systemctl restart winbind
<!--NeedCopy-->
Configurar PAM para Winbind
Ejecute el siguiente comando, compruebe que las opciones Winbind NT/Active Directory authentication y Create home directory on login están seleccionadas:
sudo pam-auth-update
<!--NeedCopy-->
Sugerencia:
El demonio winbind permanece en ejecución solo si la máquina está unida a un dominio.
Verificar la pertenencia al dominio
El Delivery Controller requiere que todas las máquinas VDA, Windows o Linux, tengan un objeto de equipo en Active Directory.
Ejecute el comando net ads
de Samba para comprobar que la máquina está unida a un dominio:
sudo net ads testjoin
<!--NeedCopy-->
Ejecute el siguiente comando para comprobar la información adicional de dominio y objeto de equipo:
sudo net ads info
<!--NeedCopy-->
Verificar la configuración de Kerberos
Para verificar que Kerberos está configurado correctamente para su uso con Linux VDA, compruebe que el archivo del sistema keytab se ha creado y contiene claves válidas:
sudo klist -ke
<!--NeedCopy-->
Muestra la lista de las claves disponibles para las distintas combinaciones de nombres principales y conjuntos de cifrado. Ejecute el comando kinit
de Kerberos para autenticar la máquina en el controlador de dominio con estas claves:
sudo kinit -k MACHINE$@REALM
<!--NeedCopy-->
Los nombres de máquina y territorio deben especificarse en mayúsculas. Debe anteponerse la barra diagonal inversa (\) al signo de dólar ($) para evitar la sustitución del shell. En algunos entornos, el nombre de dominio DNS difiere del nombre del territorio Kerberos. Compruebe que se usa el nombre del territorio Kerberos. Si la operación de este comando se realiza correctamente, no aparece ningún resultado.
Compruebe que el tíquet de TGT de la cuenta de la máquina se ha almacenado en caché:
sudo klist
<!--NeedCopy-->
Examine los datos de la cuenta de la máquina:
sudo net ads status
<!--NeedCopy-->
Verificar la autenticación de usuario
Use la herramienta wbinfo para comprobar que los usuarios de dominio pueden autenticarse en el dominio:
wbinfo --krb5auth=domain\username%password
<!--NeedCopy-->
El dominio especificado es el nombre de dominio de AD, no el nombre del territorio Kerberos. Para shell de Bash, debe anteponerse una barra diagonal inversa (\) a otra barra diagonal inversa. Este comando devuelve un mensaje que indica si la operación se ha realizado correctamente o no.
Para verificar que el módulo Winbind PAM está configurado correctamente, use una cuenta de usuario de dominio para iniciar sesión en Linux VDA. La cuenta de usuario de dominio no se ha utilizado anteriormente.
ssh localhost -l domain\username
id -u
<!--NeedCopy-->
Compruebe que se ha creado el archivo de caché con las credenciales de Kerberos para el UID devuelto por el comando id -u:
ls /tmp/krb5cc_uid
<!--NeedCopy-->
Compruebe que los tíquets que se encuentran en la memoria caché de credenciales de Kerberos son válidos y no han caducado:
klist
<!--NeedCopy-->
Salga de la sesión.
exit
<!--NeedCopy-->
Se puede realizar una prueba similar iniciando sesión directamente en la consola Gnome o KDE. Continúe con el Paso 4: Instale Linux VDA después de la verificación de unión al dominio.
Sugerencia:
Si la autenticación de usuario se realizó correctamente pero no aparece su escritorio al iniciar sesión con una cuenta de dominio, reinicie la máquina e inténtelo de nuevo.
Servicio de autenticación Quest
Configurar Quest en el controlador de dominio
Se asume que se ha instalado y configurado el software de Quest en los controladores de dominio de Active Directory, y que se han recibido los privilegios administrativos necesarios para crear objetos de equipo en Active Directory.
Permitir que los usuarios de dominio inicien sesión en máquinas con Linux VDA
Para permitir que los usuarios de dominio puedan establecer sesiones HDX en una máquina con Linux VDA:
- En la consola de administración Usuarios y equipos de Active Directory, abra las propiedades de usuario de Active Directory correspondientes a esa cuenta de usuario.
- Seleccione la ficha Unix Account.
- Active Unix-enabled.
- Defina Primary GID Number con el ID de grupo de un grupo de usuarios real del dominio.
Nota:
Estas instrucciones son equivalentes a definir usuarios de dominio para que inicien sesión desde la consola, RDP, SSH u otro protocolo de comunicación remota.
Configurar Quest en Linux VDA
Solución a la aplicación de la directiva de SELinux
En el entorno predeterminado de RHEL, SELinux se aplica en su totalidad. Esto interfiere con los mecanismos de IPC de sockets para dominios Unix que utiliza Quest y evita que los usuarios inicien sesión.
Lo más conveniente para solucionar este problema es inhabilitar SELinux. Como usuario root, modifique /etc/selinux/config y cambie el parámetro SELinux:
SELINUX=disabled
Este cambio requiere un reinicio de la máquina:
reboot
<!--NeedCopy-->
Importante:
Utilice esta opción con cuidado. Habilitar la directiva de SELinux tras haberla inhabilitado puede causar un bloqueo absoluto, incluso para el usuario root y otros usuarios locales.
Configurar el demonio de VAS
La renovación automática de tíquets de Kerberos debe estar habilitada y desconectada. La autenticación (inicio de sesión sin conexión) debe estar inhabilitada:
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 a nueve horas (32 400 segundos), es decir, una hora menos que la validez predeterminada de 10 horas del tíquet. Establezca esta opción en un valor inferior en sistemas con una validez más corta de tíquets.
Configurar PAM y NSS
Para habilitar el inicio de sesión del usuario de dominio mediante HDX y otros servicios como su, ssh y RDP, ejecute los siguientes comandos para configurar PAM y NSS de forma manual:
sudo /opt/quest/bin/vastool configure pam
sudo /opt/quest/bin/vastool configure nss
<!--NeedCopy-->
Unirse al dominio de Windows
Una la máquina Linux al dominio de Active Directory mediante el comando vastool
de Quest:
sudo /opt/quest/bin/vastool -u user join domain-name
<!--NeedCopy-->
El usuario es un usuario de dominio con permisos para unir equipos al dominio de Active Directory. La variable domain-name es el nombre DNS del dominio; por ejemplo, ejemplo.com.
Verificar la pertenencia al dominio
El Delivery Controller requiere que todas las máquinas VDA, Windows o Linux, tengan un objeto de equipo en Active Directory. Para comprobar si hay una máquina Linux unida a Quest 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. En cambio, si la máquina no está unida a ningún dominio, aparece el siguiente error:
ERROR: No domain could be found.
ERROR: VAS_ERR_CONFIG: at ctx.c:414 in _ctx_init_default_realm
default_realm not configured in vas.conf. Computer may not be joined to domain
Verificar la autenticación de usuario
Para verificar que Quest pueda autenticar usuarios de dominio a través de PAM, use una cuenta de usuario de dominio para iniciar sesión en Linux VDA. La cuenta de usuario de dominio no se ha utilizado anteriormente.
ssh localhost -l domain\username
id -u
<!--NeedCopy-->
Compruebe que se ha creado el archivo de caché con las credenciales de Kerberos para el UID devuelto por el comando id -u:
ls /tmp/krb5cc_uid
<!--NeedCopy-->
Compruebe que los vales que se encuentran en la memoria caché de credenciales de Kerberos son válidos y no han caducado:
/opt/quest/bin/vastool klist
<!--NeedCopy-->
Salga de la sesión.
exit
<!--NeedCopy-->
Continúe con el Paso 4: Instale Linux VDA después de la verificación de unión al dominio.
Centrify DirectControl
Unirse al dominio de Windows
Con el agente Centrify DirectControl instalado, una la máquina Linux al dominio de Active Directory mediante el comando adjoin
de Centrify:
su –
adjoin -w -V -u user domain-name
<!--NeedCopy-->
El parámetro user es un 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.
Verificar la pertenencia al dominio
El Delivery Controller requiere que todas las máquinas VDA, Windows o Linux, tengan un objeto de equipo en Active Directory. Para comprobar si hay una máquina Linux unida a Centrify en el dominio:
su –
adinfo
<!--NeedCopy-->
Compruebe que el valor Joined to domain sea válido y que el modo CentrifyDC devuelva el valor connected. Si el modo se queda bloqueado en el estado inicial, el cliente Centrify tiene problemas de conexión o autenticación en el servidor.
Para obtener información de diagnóstico y sistema más completa:
adinfo --sysinfo all
adinfo --diag
<!--NeedCopy-->
Pruebe la conectividad a los distintos servicios de Active Directory y Kerberos:
adinfo --test
<!--NeedCopy-->
Continúe con el Paso 4: Instale Linux VDA después de la verificación de unión al dominio.
SSSD
Configurar Kerberos
Ejecute el siguiente comando para instalar Kerberos:
sudo apt-get install krb5-user
<!--NeedCopy-->
Para configurar Kerberos, abra /etc/krb5.conf
como root y configure los siguientes parámetros:
[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
<!--NeedCopy-->
La propiedad domain-dns-name
en este contexto es el nombre de dominio DNS (por ejemplo, example.com
). REALM
es el nombre del territorio Kerberos en mayúsculas, como EXAMPLE.COM
.
Unirse al dominio
SSSD debe estar configurado para usar Active Directory como su proveedor de identidades y Kerberos para la autenticación. SSSD no proporciona funciones de cliente de Active Directory para unirse al dominio y administrar el archivo de sistema keytab. Puede usar adcli
, realmd
o Samba
en su lugar.
Nota:
En esta sección, solo se proporciona información para
adcli
ySamba
.
Use adcli para unirse al dominio:
Instale adcli:
Instale el paquete requerido:
sudo apt-get install adcli
<!--NeedCopy-->
Únase al dominio con adcli:
Quite el antiguo archivos keytab de sistema y únase al dominio con:
su -
rm -rf /etc/krb5.keytab
adcli join domain-dns-name -U user -H hostname-fqdn
<!--NeedCopy-->
El parámetro user es un usuario del dominio con permisos para agregar máquinas al dominio. El parámetro hostname-fqdn es el nombre de host en formato FQDN (nombre de dominio completo) de la máquina.
La opción -H es necesaria para que adcli genere SPN en este formato: host/hostname-fqdn@REALM, que es el requerido por Linux VDA.
Compruebe el archivo keytab del sistema:
Las capacidades de la herramienta adcli son limitadas y no proporciona ninguna forma para probar si una máquina se ha unido al dominio. La mejor opción para asegurarse de que el archivo keytab del sistema se ha creado es la siguiente:
sudo klist -ket
<!--NeedCopy-->
Compruebe que la fecha y hora para cada clave coinciden con el momento en que la máquina se unió al dominio.
Use samba para unirse al dominio:
Instale el paquete:
sudo apt-get install samba
<!--NeedCopy-->
Configure samba:
Abra /etc/samba/smb.conf
y configure los parámetros siguientes:
[global]
workgroup = WORKGROUP
security = ADS
realm = REALM
client signing = yes
client use spnego = yes
kerberos method = secrets and keytab
<!--NeedCopy-->
WORKGROUP es el primer campo de REALM, y REALM es el nombre del territorio Kerberos en mayúsculas.
Únase al dominio con samba:
Para ello, se requiere que el controlador de dominio esté accesible y se necesita disponer de una cuenta de Windows con permisos para agregar equipos al dominio.
sudo net ads join REALM -U user
<!--NeedCopy-->
Donde REALM es el nombre del territorio Kerberos en mayúsculas, y user es un usuario de dominio con permisos para agregar equipos al dominio.
Configurar SSSD
Instalar o actualizar los paquetes requeridos:
Instale los paquetes de configuración y SSSD requeridos si aún no están instalados:
sudo apt-get install sssd
<!--NeedCopy-->
Si los paquetes ya están instalados, se recomienda actualizarlos:
sudo apt-get update sssd
<!--NeedCopy-->
Nota:
De forma predeterminada, el proceso de instalación en Ubuntu configura automáticamente nsswitch.conf y el módulo de PAM de inicio de sesión.
Configurar SSSD
Es necesario hacer los cambios en la configuración de SSSD antes de iniciar el demonio SSSD. En algunas versiones de SSSD, el archivo de configuración /etc/sssd/sssd.conf no se instala de forma predeterminada y se debe crear manualmente. Como usuario root, cree o abra el archivo /etc/sssd/sssd.conf y configure los siguientes parámetros:
[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
<!--NeedCopy-->
Nota:
ldap_id_mapping tiene el valor true, de forma que el propio SSSD se ocupa de asignar los SID de Windows a UID de Unix. De lo contrario, Active Directory debe ser capaz de proporcionar extensiones POSIX. El
ctxhdx
de servicio PAM se agrega a ad_gpo_map_remote_interactive.
La propiedad domain-dns-name en este contexto es el nombre de dominio DNS (por ejemplo, ejemplo.com). REALM es el nombre del territorio Kerberos en mayúsculas, como EJEMPLO.COM. No es necesario configurar el nombre de dominio NetBIOS.
Sugerencia:
Para obtener más información sobre estas opciones de configuración, consulte las páginas man de sssd.conf y sssd-ad.
El demonio SSSD requiere que el archivo de configuración tenga permisos de lectura de propietario solamente:
sudo chmod 0600 /etc/sssd/sssd.conf
<!--NeedCopy-->
Iniciar el demonio de SSSD
Ejecute los siguientes comandos para iniciar el demonio SSSD ahora y para permitir que el demonio se inicie al iniciar la máquina:
sudo systemctl start sssd
sudo systemctl enable sssd
<!--NeedCopy-->
Configuración de PAM
Ejecute el siguiente comando y compruebe que las opciones SSS authentication y Create home directory on login están seleccionadas:
sudo pam-auth-update
<!--NeedCopy-->
Verificar la pertenencia al dominio
El Delivery Controller requiere que todas las máquinas VDA, Windows y Linux, tengan un objeto de equipo en Active Directory.
Use adcli para verificar la pertenencia al dominio:
Vea la información de dominio, mediante la ejecución del siguiente comando:
sudo adcli info domain-dns-name
<!--NeedCopy-->
Use samba para verificar la pertenencia al dominio:
Ejecute el comando net ads
de Samba para comprobar que la máquina está unida a un dominio:
sudo net ads testjoin
<!--NeedCopy-->
Ejecute el siguiente comando para comprobar la información adicional de dominio y objeto de equipo:
sudo net ads info
<!--NeedCopy-->
Verificar la configuración de Kerberos
Para verificar que Kerberos está configurado correctamente para su uso con Linux VDA, compruebe que el archivo del sistema keytab se ha creado y contiene claves válidas:
sudo klist -ke
<!--NeedCopy-->
Muestra la lista de las claves disponibles para las distintas combinaciones de nombres principales y conjuntos de cifrado. Ejecute el comando kinit
de Kerberos para autenticar la máquina en el controlador de dominio con estas claves:
sudo kinit -k MACHINE$@REALM
<!--NeedCopy-->
Los nombres de máquina y territorio deben especificarse en mayúsculas. Debe anteponerse la barra diagonal inversa (\) al signo de dólar ($) para evitar la sustitución del shell. En algunos entornos, el nombre de dominio DNS difiere del nombre del territorio Kerberos. Compruebe que se usa el nombre del territorio Kerberos. Si la operación de este comando se realiza correctamente, no aparece ningún resultado.
Compruebe que el tíquet de TGT de la cuenta de la máquina se ha almacenado en la caché mediante lo siguiente:
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 mediante PAM.
Para verificar que el módulo SSSD PAM está configurado correctamente, use una cuenta de usuario de dominio para iniciar sesión en Linux VDA. La cuenta de usuario de dominio no se ha utilizado anteriormente.
ssh localhost -l domain\username
id -u
klist
exit
<!--NeedCopy-->
Compruebe que los tíquets de Kerberos devueltos por el comando klist son correctos para ese usuario y no han caducado.
Como usuario root, compruebe que se ha creado el archivo de caché de tíquets correspondiente para el uid devuelto por el comando id -u previo:
ls /tmp/krb5cc_uid
<!--NeedCopy-->
Se puede realizar una prueba similar iniciando sesión en KDE o Gnome Display Manager. Continúe con el Paso 4: Instale Linux VDA después de la verificación de unión al dominio.
Paso 4: Instale Linux VDA
Paso 4a: Descargue el paquete de Linux VDA
Vaya a la página web de Citrix y descargue el paquete de Linux VDA adecuado según su distribución de Linux.
Paso 4b: Instale Linux VDA
Instale el software de Linux VDA mediante el administrador de paquetes Debian:
sudo dpkg -i xendesktopvda_7.15.0.404-1.ubuntu16.04_amd64.deb
<!--NeedCopy-->
Lista de dependencias de Debian para Ubuntu:
postgresql >= 9.5
libpostgresql-jdbc-java >= 9.2
default-jdk >= 2:1.8
imagemagick >= 8:6.8.9.9
ufw >= 0.35
ubuntu-desktop >= 1.361
libxrandr2 >= 2:1.5.0
libxtst6 >= 2:1.2.2
libxm4 >= 2.3.4
util-linux >= 2.27.1
bash >= 4.3
findutils >= 4.6.0
sed >= 4.2.2
cups >= 2.1
libldap-2.4-2 >= 2.4.42
libsasl2-modules-gssapi-mit >= 2.1.~
python-requests >= 2.9.1
libgoogle-perftools4 >= 2.4~
<!--NeedCopy-->
Paso 4c: Configure Linux VDA
Después de instalar el paquete, debe configurar Linux VDA. Para ello, ejecute el script ctxsetup.sh. Antes de realizar cambios, este script examina el entorno existente y verifica si están instaladas todas las dependencias. Si fuera necesario, puede volver a ejecutar este script en cualquier momento para cambiar la configuración.
Puede ejecutar el script manual o automáticamente con respuestas preconfiguradas. Consulte la ayuda del script antes de continuar:
sudo /opt/Citrix/VDA/sbin/ctxsetup.sh –help
<!--NeedCopy-->
Configuración con preguntas
Ejecute una configuración manual con preguntas para el usuario:
sudo /opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->
Configuración automatizada
En caso de una instalación automática, las opciones necesarias para el script de instalación pueden especificarse con variables de entorno. Si están presentes todas las variables necesarias, el script no solicita al usuario ninguna otra información, lo que permite que el proceso de instalación se realice mediante los scripts.
Las variables de entorno admitidas son:
- CTX_XDL_SUPPORT_DDC_AS_CNAME = Y | N: Linux VDA permite especificar un nombre de Delivery Controller mediante un registro CNAME de DNS. Se establece en N de forma predeterminada.
- CTX_XDL_DDC_LIST = list-ddc-fqdns: Linux VDA necesita una lista de nombres de dominio completo de Delivery Controllers, separados por espacios, para registrarse en un Delivery Controller. Se debe especificar al menos un FQDN o alias de CNAME.
- CTX_XDL_VDA_PORT = port-number: Linux VDA se comunica con los Delivery Controllers a través de un puerto TCP/IP. Este es el puerto 80 de forma predeterminada.
- CTX_XDL_REGISTER_SERVICE = Y | N: Los servicios de Linux Virtual Desktop se inician después del arranque de la máquina. Se establece en Y de forma predeterminada.
- CTX_XDL_ADD_FIREWALL_RULES = Y | N: Los servicios de Linux Virtual Desktop requieren que se permitan las conexiones de red entrantes a través del firewall del sistema. Puede abrir automáticamente los puertos necesarios (de forma predeterminada, los puertos 80 y 1494) en el firewall del sistema para Linux Virtual Desktop. Se establece en Y de forma predeterminada.
-
CTX_XDL_AD_INTEGRATION = 1 | 2 | 3 | 4: Linux VDA requiere parámetros de configuración Kerberos para autenticarse en 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. Especifique el método admitido de integración de Active Directory que se va a utilizar:
- 1 – Samba Winbind
- 2 – Servicio de autenticación Quest
- 3 – Centrify DirectControl
- 4 – SSSD
- CTX_XDL_HDX_3D_PRO = Y | N: Linux VDA admite HDX 3D Pro, un conjunto de tecnologías para la aceleración de la GPU que se ha diseñado para optimizar la virtualización de aplicaciones con gráficos sofisticados. Si se selecciona HDX 3D Pro, Virtual Delivery Agent se configura para el modo de escritorios VDI (sesión única); es decir, CTX_XDL_VDI_MODE=Y.
- CTX_XDL_VDI_MODE = Y | N: Indica si configurar la máquina a partir de un modelo de entrega de escritorios dedicados (VDI) o un modelo de entrega de escritorios compartidos alojados. Para entornos HDX 3D Pro, establezca esta variable en Y. De forma predeterminada, esta variable está establecida en N.
- CTX_XDL_SITE_NAME = dns-name: Linux VDA detecta los servidores LDAP mediante DNS. Para limitar los resultados de búsqueda de DNS a un sitio local, especifique un nombre de sitio DNS. Esta variable está establecida en <none> de forma predeterminada.
- CTX_XDL_LDAP_LIST = list-ldap-servers: Linux VDA consulta a DNS para detectar servidores LDAP. Sin embargo, si el DNS no puede proporcionar registros del servicio LDAP, se puede suministrar una lista de nombres FQDN de LDAP, separados por espacios, con el puerto de LDAP. Por ejemplo, ad1.miempresa.com:389. Esta variable está establecida en <none> de forma predeterminada.
- CTX_XDL_SEARCH_BASE = search-base-set: Linux VDA consulta a LDAP a partir de una base de búsqueda establecida en la raíz del dominio de Active Directory (por ejemplo, DC=miempresa,DC=com). Sin embargo, para mejorar el rendimiento de la búsqueda, puede especificar otra base de búsqueda (por ejemplo, OU=VDI,DC=mycompany,DC=com). Esta variable está establecida en <none> de forma predeterminada.
- CTX_XDL_START_SERVICE = Y | N: Indica si los servicios de Linux VDA se inician cuando se complete su configuración. Se establece en Y de forma predeterminada.
Establezca la variable de entorno y ejecute 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=1|2|3|4
export CTX_XDL_HDX_3D_PRO=Y|N
export CTX_XDL_VDI_MODE=Y|N
export CTX_XDL_SITE_NAME=dns-name
export CTX_XDL_LDAP_LIST=list-ldap-servers
export CTX_XDL_SEARCH_BASE=search-base-set
export CTX_XDL_START_SERVICE=Y|N
sudo -E /opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->
Cuando ejecute el comando sudo, escriba la opción -E para pasar las variables de entorno existentes al nuevo shell que se crea. Citrix recomienda crear un archivo de script shell a partir de los comandos anteriores con #!/bin/bash en la primera línea.
También puede especificar todos los parámetros con un único 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=1|2|3|4 \
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_START_SERVICE=Y|N \
/opt/Citrix/VDA/sbin/ctxsetup.sh
<!--NeedCopy-->
Quitar cambios de configuración
En algunos casos, puede que sea necesario quitar los cambios de configuración realizados por el script ctxsetup.sh sin desinstalar el paquete de Linux VDA.
Consulte la ayuda de 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 provoca que Linux VDA deje de funcionar.
Registros de configuración
Los scripts ctxcleanup.sh y ctxsetup.sh muestran errores en la consola, con información adicional que se enviará a un archivo de registros de configuración /tmp/xdl.configure.log.
Reinicie 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 para 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 VDA para Linux elimina los datos asociados con PostgreSQL y otros datos de configuración. Sin embargo, no se elimina el paquete de PostgreSQL ni los demás paquetes dependientes que se configuraron antes de instalar Linux VDA.
Sugerencia:
La información en esta sección no cubre la eliminación de paquetes dependientes incluido el de PostgreSQL.
Paso 5: Ejecute Linux VDA
Una vez configurado Linux VDA mediante el script ctxsetup.sh, utilice los siguientes comandos para controlarlo.
Iniciar Linux VDA:
Para iniciar los servicios de Linux VDA:
sudo systemctl start ctxhdx
sudo systemctl start ctxvda
<!--NeedCopy-->
Detener Linux VDA:
Para detener los servicios de Linux VDA:
sudo systemctl stop ctxvda
sudo systemctl stop ctxhdx
<!--NeedCopy-->
Reiniciar 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 de 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 6: Cree el catálogo de máquinas en XenApp o XenDesktop
El proceso de creación de catálogos de máquinas y de incorporación de máquinas Linux es similar al proceso habitual de VDA para Windows. Para ver una descripción detallada sobre cómo completar estas tareas, consulte Crear catálogos de máquinas y Administrar catálogos de máquinas.
Existen restricciones que diferencian el proceso de creación de catálogos de máquinas con VDA para Windows del mismo proceso con VDA para Linux:
- Para el sistema operativo, seleccione:
- La opción de SO de servidor para un modelo de entrega de escritorios compartidos alojados.
- La opción de SO de escritorio para un modelo de entrega de escritorios VDI dedicados.
- Compruebe que las máquinas están establecidas como máquinas cuyas opciones de administración de energía no están administradas.
- Como los agentes Linux VDA no admiten MCS, elija el método de implementación PVS u Otro servicio o tecnología (imágenes existentes).
- No mezcle máquinas con agentes VDA para Windows y Linux en el mismo catálogo.
Nota:
Las primeras versiones de Citrix Studio no admitían el concepto de “SO Linux”. Sin embargo, seleccionar la opción SO de servidor Windows o SO de servidor implica un modelo equivalente de entrega de escritorios compartidos alojados. Seleccionar la opción SO de escritorio Windows o SO de escritorio implica un modelo de entrega de un usuario por máquina.
Sugerencia:
Si quita una máquina y luego la vuelve a unir al dominio de Active Directory, esa máquina se debe quitar y volver a agregar al catálogo de máquinas.
Paso 7: Cree el grupo de entrega en XenApp o XenDesktop
El proceso de creación de un grupo de entrega y de incorporación de catálogos de máquinas con agentes VDA para Linux es muy similar al proceso de máquinas con agentes VDA para Windows. Para ver una descripción detallada sobre cómo completar estas tareas, consulte Crear grupos de entrega.
Se aplican las siguientes restricciones para crear grupos de entrega que contengan catálogos de máquinas con Linux VDA:
- Para el tipo de entrega, seleccione Desktops. Linux VDA para Ubuntu no admite la entrega de aplicaciones.
- Los grupos y usuarios de AD que seleccione deben estar correctamente configurados para poder iniciar sesión en las máquinas con VDA para Linux.
- No permita que usuarios no autenticados (anónimos) inicien sesión.
- No mezcle el grupo de entrega con catálogos de máquinas que contienen máquinas Windows.
En este artículo
- Paso 1: Prepare Ubuntu para la instalación del VDA
- Paso 2: Prepare el hipervisor
- Paso 3: Agregue la máquina virtual (VM) de Linux al dominio de Windows
- Paso 4: Instale Linux VDA
- Paso 5: Ejecute Linux VDA
- Paso 6: Cree el catálogo de máquinas en XenApp o XenDesktop
- Paso 7: Cree el grupo de entrega en XenApp o XenDesktop