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 es un componente de Citrix XenApp y XenDesktop. Por eso, encaja bien en el entorno de Active Directory (AD) de Windows.
Para usar NIS como un proveedor de UID y GID en lugar de Active Directory, se necesita que la información de cuenta (la combinación de nombre de usuario y contraseña) sea la misma tanto en AD como 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 RHEL/CentOS, siga las instrucciones de Instalar Linux Virtual Delivery Agent para RHEL/CentOS. Para una distribución Ubuntu, siga las instrucciones de Instalar Linux Virtual Delivery Agent para Ubuntu.
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.
Software requerido
El proveedor de AD se introdujo por primera vez con SSSD 1.9.0.
Se han probado y verificado los siguientes entornos con las instrucciones de este artículo:
- RHEL 7.3 o versiones posteriores/CentOS 7.3 o versiones posteriores
- Linux VDA versión 1.3 o posterior
Integrar NIS con AD
Para integrar NIS con AD, haga lo siguiente:
- Agregue el Linux VDA como cliente NIS
- Unirse al dominio y crear una tabla keytab de host mediante Samba
- Configuración de SSSD
- Configurar NSS/PAM
- Verificar la configuración de Kerberos
- Verificar la autenticación de usuarios
Agregue 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.
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
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.
Configuración de 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 lower-case version of the long version of the Active Directory domain.
ad_domain = ad.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
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.
Verificar la configuración de Kerberos
Para verificar que Kerberos está configurado correctamente para su uso con Linux VDA, compruebe que el archivo keytab del sistema** 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 vale de concesión de vales de la cuenta de la máquina se ha almacenado en caché:
sudo klist -ke
<!--NeedCopy-->
Verificar la autenticación de usuarios
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 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 vales que se encuentran en la memoria caché de credenciales de Kerberos son válidos y no han caducado:
klist
<!--NeedCopy-->