Unir un cliente Ubuntu 20.04 a un dominio de Active Directory sobre Windows Server 2019 (parte 2)
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 20.04 a un dominio creado con Windows Server 2019. 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á mover 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
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
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-2019-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.
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
Puedes comprobar que el cambio ha surtido efecto recurriendo al comando ls:
sudo ls -al /etc/sssd
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
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=0077Como en ocasiones anteriores, cuando estemos listos, pulsamos la combinación de teclas Ctrl + X para cerrar el editor de textos.
… Y para que se apliquen los cambios, reiniciamos el servicio sssd:
sudo systemctl restart sssd
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
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
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
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?.
Esto nos ofrece la posibilidad de escribir el nombre de la cuenta de usuario que queremos utilizar. En nuestro caso, la cuenta administrador.
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)
Observa que ponemos delante el nombre del dominio para que gdm sepa donde encontrar la información de autenticación.
Al pulsar la tecla Intro, se nos pedirá también la contraseña.
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.
Cuando hayamos completado el asistente, si abrimos una ventana de Terminal (Alt + Control + T), podemos comprobar que nos encontramos en la cuenta correcta.
Si ahora cerramos la sesión, comprobaremos que en la pantalla de autenticación ya sí aparece la cuenta Administrador… Incluso con la inicial en mayúscula, al estilo Windows.
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.
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.
Y con esto podemos dar por concluida la tarea. Espero que te haya resultado útil.