Unir un cliente Ubuntu 18.04 a un dominio de Active Directory sobre Windows Server 2016 (parte II)

Publicado por P. Ruiz en

Hace unos días, en la primera parte de este artículo, comenzamos a explicarte, paso a paso (como es habitual en nosotros), la forma de unir un cliente Ubuntu 18.04 a un dominio creado con Windows Server 2016. Sin embargo, para no hacer un artículo excesivamente largo, sólo resolvimos una parte del problema. En particular, te explicamos cómo acometer los siguientes ajustes:

  • Configurar las características del equipo.

  • Instalar el software necesario.

  • Configurar Kerberos.

  • Comprobar el funcionamiento de Kerberos.

  • Unir el cliente al dominio.

Hoy por fin, completamos la tarea, resolviendo la parte final, que está formada por estos apartados:

  • Configurar SSSD.

  • Ajustar el comportamiento de PAM para iniciar sesión con usuarios del dominio.

  • Convertir al administrador del dominio en administrador local.

  • Reiniciar el equipo y comprobar el inicio de sesión gráfico.

  • Iniciar sesión con cualquier cuenta del dominio.

Como la espera ha sido larga, no quiero prolongarla más. Así que, si estás listo, comencemos…

Configurar SSSD

Como dijimos al principio del artículo anterior, SSSD (System Security Services Daemon) es un conjunto de demonios que se encarga de administrar la autenticación y el acceso a los recursos remotos mediante LDAP y Kerberos, entre otros.

Como veremos más adelante, gracias a SSSD, podremos iniciar sesión en el equipo utilizando los datos de autenticación de una cuenta del dominio en lugar de hacerlo con una cuenta local.

SSSD ya debe encontrarse instalado en el sistema (lo incluimos en el conjunto de paquetes que instalamos al principio), pero ahora debemos configurarlo para que que se comporte del modo adecuado.

Lo primero será copiar el archivo keytab que generamos al unir el cliente Ubuntu al dominio, dentro de la carpeta adecuada para la configuración de SSSD (/etc/sssd). Lo conseguiremos con una orden como esta:

sudo mv my-keytab.keytab /etc/sssd/my-keytab.keytab

Escribimos el comando y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-023

A diferencia de Kerberos, para SSSD no tenemos un archivo de configuración predeterminado que debamos poner a salvo antes de comenzar. En este caso, solo tendremos que usar el editor de textos para crear uno nuevo con el contenido adecuado:

sudo nano /etc/sssd/sssd.conf

De nuevo, escribimos el comando y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-024

A continuación, copiaremos las siguientes líneas en el área de trabajo del editor… Pero no olvides modificar los valores que te indicamos en color rojo, para adaptarlos a los datos concretos de tu instalación:

[sssd]
services = nss, pam
config_file_version = 2
domains = somebooks.local

[nss]
entry_negative_timeout = 0
#debug_level = 5

[pam]
#debug_level = 5

[domain/somebooks.local]
#debug_level = 10
enumerate = false
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
dyndns_update = false
ad_hostname = somebooks-desk.somebooks.local
ad_server = server-2016-a.somebooks.local
ad_domain = somebooks.local
ldap_schema = ad
ldap_id_mapping = true
fallback_homedir = /home/%u
default_shell = /bin/bash
ldap_sasl_mech = gssapi
ldap_sasl_authid = SOMEBOOKS-DESK$
krb5_keytab = /etc/sssd/my-keytab.keytab
ldap_krb5_init_creds = true

Cuando estemos listos, pulsamos la combinación de teclas Ctrl + X para cerrar el editor de textos.

Cuando el editor nos pregunte si queremos guardar los cambios, pulsamos la tecla S.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-025

… Y, a continuación, pulsamos la tecla Intro para conservar el mismo nombre de archivo.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-026

Antes de abandonar el archivo sssd.conf, deberemos asegurarnos de que sus permisos son los adecuados. El propietario es el único que debe tener permisos de lectura y escritura sobre el archivo, y para lograrlo, sólo tenemos que escribir lo siguiente:

sudo chmod 0600 /etc/sssd/sssd.conf

Una vez más, escribimos el comando y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-027

Puedes comprobar que el cambio ha surtido efecto recurriendo al comando ls:

sudo ls -al /etc/sssd

Efectivamente, solo el propietario tiene permisos de lectura y escritura sobre el archivo…

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-028

Ajustar el comportamiento de PAM para iniciar sesión con usuarios del dominio

En los años 90, la empresa Sun Microsystems desarrolló un framework llamado Pluggable Authentication Modules (PAM) que ofrecía una capa de abstracción para diferentes métodos de autenticación (contraseña, tarjeta, parámetros biométricos, etc,)

Tienes más información sobre la configuración de PAM en http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html

En Ubuntu, uno de los archivos de configuración de PAM es common-session, que contiene parámetros generales sobre el inicio de sesión. Entre ellos, la necesidad de crear un directorio de inicio para las cuentas de usuario.

Esto lo conseguiremos, para las cuentas que pertenecen al dominio, añadiendo el argumento pam_mkdhomedir.so en el archivo common-session. Al hacerlo, indicamos que se cree el directorio local, para cada cuenta, la primera vez que se inicie sesión con ella.

Para lograrlo, comenzaremos por editar el archivo de configuración:

sudo nano /etc/pam.d/common-session

Como antes, escribimos el comando y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-029

Cuando se haya abierto el editor de textos, buscamos una línea con el siguiente aspecto:

session required        pam_unix.so

Y justo debajo escribimos, o copiamos, la siguiente línea:

session required pam_mkhomedir.so skel=/etc/skel umask=0077

Como en ocasiones anteriores, cuando estemos listos, pulsamos la combinación de teclas Ctrl + X para cerrar el editor de textos.

Cuando el editor nos pregunte si queremos guardar los cambios, pulsamos la tecla S.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-030

… Y, a continuación, pulsamos la tecla Intro para conservar el mismo nombre de archivo.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-031

… Y para que se apliquen los cambios, reiniciamos el servicio sssd:

sudo systemctl restart sssd

Si no aparece ningún mensaje, el reinicio se ha producido de forma satisfactoria.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-032

Convertir al administrador del dominio en administrador local

Si vamos a iniciar sesión con la cuenta Administrador del dominio de forma local en el equipo cliente, parece lógico que esta cuenta también tenga privilegios administrativos en el propio equipo. Para lograrlo, solo tenemos que incluir dicha cuenta en el grupo sudo, para lo que podemos utilizar la siguiente orden:

sudo adduser administrador sudo

… Y comprobamos que la tarea se ejecuta correctamente.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-033

A continuación, comprobamos que podemos autenticarnos con el usuario Administrador (recuerda que esta cuenta no existe localmente y que se trata de una cuenta del dominio). Para lograrlo, basta con escribir la orden:

su -l administrador

Al hacerlo, comprobamos que incluso se crea una nueva carpeta para la cuenta dentro de /home.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-034

Reiniciar el equipo y comprobar el inicio de sesión gráfico

Para reiniciar el equipo, solo tenemos que recurrir a la orden:

sudo reboot

Escribimos el comando y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-035

Observa que ni siguiera tenemos que abandonar la cuenta administrador, ya que ahora forma parte del grupo sudo.

Al completar el reinicio, la interfaz gráfica nos muestra únicamente las cuentas de usuario que conoce. Sin embargo, si queremos iniciar sesión gráfica con la cuenta administrador, solo tenemos que usar la opción ¿No está en la lista?.

Hacemos clic sobre ¿No está en la lista?.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-036

Esto nos ofrece la posibilidad de escribir el nombre de la cuenta de usuario que queremos utilizar…

En nuestro caso, la cuenta administrador.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-037

Al pulsar la tecla Intro, se nos pedirá también la contraseña.

Escribiremos la contraseña de la cuenta Administrador en el dominio Windows Server.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-038

Ten en cuenta que Windows Server no diferencia entre mayúsculas y minúsculas, y suele mostrar el nombre de la cuenta con la primera letra en mayúscula (Administrador). Sin embargo, Ubuntu sí que diferencia y utiliza el nombre de la cuenta escrito completamente en minúscula (administrador)

Inmediatamente veremos cómo se inicia sesión en la interfaz gráfica.

Y, como es la primera vez que iniciamos sesión gráfica con esa cuenta, nos aparecerá el asistente de bienvenida.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-039

Cuando hayamos completado el asistente, podemos comprobar que aparece el nombre de cuenta correcto en el área de notificaciones del sistema.

Incluso vemos que aparece escrito con mayúsculas, que es como lo ha devuelto Windows Server tras la autenticación.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-040

Si ahora cerramos la sesión, comprobaremos que en la pantalla de autenticación ya sí aparece la cuenta Administrador.

Ya no tendremos que volver a escribir el nombre de la cuenta.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-041

Iniciar sesión con cualquier cuenta del dominio

Como cabe esperar, a partir de este momento, podremos repetir los pasos anteriores para iniciar sesión en el equipo cliente con cualquier cuenta de usuario que se encuentre definida en Windows Server, sin necesidad de que exista de forma local en el cliente Ubuntu.

Solo habrá que hacer clic, de nuevo, sobre ¿No está en la lista?.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-042

… Y escribir el nombre de la cuenta que vayamos a usar.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-043

Una vez escrita la contraseña, podremos volver a comprobar, en el área de notificación del sistema, que hemos iniciado sesión con la cuenta adecuada.

Comprobamos el nombre de la cuenta.

Unir-un-cliente-Ubuntu-1804-a-un-dominio-de-Active-Directory-sobre-Windows-Server-2016-044

Y con esto podemos dar por concluida la tarea. Espero que te haya resultado útil.