Linux Virtual Delivery Agent

Integrar NIS en Active Directory

En este tema, se describe cómo integrar NIS con Windows Active Directory (AD) en Linux VDA mediante SSSD. Linux VDA se considera un componente de Citrix Virtual Apps and Desktops. Por eso, encaja bien en el entorno de Active Directory (AD) de Windows.

Para usar NIS, en lugar de Active Directory, como un proveedor de UID y GID, es necesario que la información de cuenta (la combinación de nombre de usuario y contraseña) sea la misma en AD y en NIS.

Nota:

El servidor de Active Directory sigue encargándose de la autenticación. No se admite NIS+. Si se utiliza NIS como el UID y el proveedor GID, ya no se usan los atributos de POSIX procedentes del servidor Windows.

Sugerencia:

Este método representa un modo ya retirado de implementar Linux VDA, que solo debe usarse en casos especiales. Para una distribución de RHEL/CentOS, siga las instrucciones de Instalar Linux VDA en Amazon Linux 2, CentOS, RHEL y Rocky Linux manualmente. Para una distribución de Ubuntu, siga las instrucciones de Instalar Linux VDA en Ubuntu manualmente.

¿Qué es SSSD?

SSSD es un demonio del sistema, cuya función principal es ofrecer acceso para identificar y autenticar recursos remotos en un marco común que incluya almacenamiento en caché y la opción sin conexión para el sistema. Proporciona los módulos PAM y NSS y, más adelante, puede ofrecer interfaces D-BUS con información adicional para el usuario. También incluye una base de datos mejor para almacenar cuentas de usuarios locales y datos de usuario extendidos.

Integrar NIS con AD

Para integrar NIS con AD, siga estos pasos:

Paso1: Agregar el Linux VDA como cliente NIS

Configure el cliente NIS:

yum –y install ypbind rpcbind oddjob-mkhomedir
<!--NeedCopy-->

Establezca el dominio NIS:

ypdomainname nis.domain
echo "NISDOMAIN=nis.domain" >> /etc/sysconfig/network
<!--NeedCopy-->

Agregue la dirección IP para el cliente y el servidor NIS en /etc/hosts:

{NIS server IP address}   server.nis.domain nis.domain

Configure NIS con authconfig:

sudo authconfig --enablenis --nisdomain=nis.domain --nisserver=server.nis.domain --enablemkhomedir --update
<!--NeedCopy-->

nis.domain representa el nombre de dominio del servidor NIS. server.nis.domain es el nombre de host del servidor NIS, que puede ser también la dirección IP del servidor NIS.

Configure los servicios de NIS:

sudo systemctl start rpcbind ypbind

sudo systemctl enable rpcbind ypbind
<!--NeedCopy-->

Compruebe que la configuración de NIS es correcta:

ypwhich
<!--NeedCopy-->

Valide que la información de la cuenta esté disponible desde el servidor NIS:

getent passwd nisaccount
<!--NeedCopy-->

Nota:

El valor de nisaccount representa la verdadera cuenta de NIS en el servidor NIS. Compruebe que el GID, el UID, el directorio principal y el shell de inicio de sesión están configurados correctamente.

Paso 2: Unirse al dominio y crear una tabla keytab de host mediante Samba

SSSD no proporciona funciones de cliente de Active Directory para unirse al dominio y administrar el archivo de sistema keytab. Existen varios métodos para conseguir estas funciones:

  • adcli
  • realmd
  • Winbind
  • Samba

En esta sección, se describe solo el enfoque de Samba. Para realmd, consulte la documentación de RHEL o CentOS. Debe seguir estos pasos para configurar SSSD.

Unirse al dominio y crear una tabla keytab de host mediante Samba:

En el cliente Linux, con archivos correctamente configurados:

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

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

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

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

Si se necesitan las búsquedas basadas en DNS del nombre de territorio Kerberos y del servidor KDC, agregue las dos opciones siguientes al comando anterior:

--enablekrb5kdcdns --enablekrb5realmdns

Abra /etc/samba/smb.conf y agregue las siguientes entradas en la sección [Global], pero después de la sección que haya generado la herramienta authconfig:

kerberos method = secrets and keytab
winbind offline logon = no

Para unirse a un dominio Windows, el controlador de dominio debe ser accesible y usted debe tener una cuenta de usuario de Active Directory con permisos para agregar máquinas 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.

Paso 3: Configurar SSSD

Configurar SSSD consta de los siguientes pasos:

  • Instalar los paquetes sssd-ad y sssd-proxy en la máquina cliente Linux.
  • Realice cambios de configuración en varios archivos (por ejemplo: sssd.conf).
  • Inicie el servicio sssd.

/etc/sssd/sssd.conf

A continuación, se ofrece un ejemplo de configuración de sssd.conf (se pueden agregar opciones adicionales, según sea necesario):

[sssd]
config_file_version = 2
domains = EXAMPLE
services = nss, pam

[domain/EXAMPLE]
# Uncomment if you need offline logins
# cache_credentials = true
re_expression = (((?P<domain>[^\\]+)\\(?P<name>.+$))|((?P<name>[^@]+)@(?P<domain>.+$))|(^(?P<name>[^@\\]+)$))
id_provider = proxy
proxy_lib_name = nis
auth_provider = ad
access_provider = ad

# Should be specified as the long version of the Active Directory domain.
ad_domain = EXAMPLE.COM

# Kerberos settings
krb5_ccachedir = /tmp
krb5_ccname_template = FILE:%d/krb5cc_%U

# Uncomment if service discovery is not working
# ad_server = server.ad.example.com

# Comment out if the users have the shell and home dir set on the AD side
default_shell = /bin/bash
fallback_homedir = /home/%d/%u

# Uncomment and adjust if the default principal SHORTNAME$@REALM is not available
# ldap_sasl_authid = host/client.ad.example.com@AD.EXAMPLE.COM
<!--NeedCopy-->

Reemplace ad.domain.com, server.ad.example.com por el valor correspondiente. Para obtener más información, consulte sssd-ad(5) - Linux man page.

Establezca la pertenencia y los permisos de archivos en sssd.conf:

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

Paso 4: Configurar NSS/PAM

RHEL/CentOS:

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

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

sudo systemctl start sssd

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

Sugerencia:

Al configurar Linux VDA, tenga en cuenta que, para SSSD, no hay ninguna configuración especial para el cliente Linux VDA. Para soluciones adicionales en el script ctxsetup.sh, use el valor predeterminado.

Paso 5: 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 -ke
<!--NeedCopy-->

Paso 6: Verificar la autenticación del usuario

Use el comando getent para saber si se admite el formato del inicio de sesión y si funciona NSS:

sudo getent passwd DOMAIN\username
<!--NeedCopy-->

El parámetro DOMAIN indica la versión corta del nombre de dominio. Si se necesita otro formato de inicio de sesión, compruébelo primero con el comando getent.

Los formatos de inicio de sesión admitidos son:

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

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.

sudo 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:

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

Compruebe que los tíquets que se encuentran en la memoria caché de credenciales de Kerberos del usuario son válidos y no han caducado:

klist
<!--NeedCopy-->
Integrar NIS en Active Directory