Unir un cliente Ubuntu 16.04 al dominio Windows Server 2016 (Parte II)

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 16.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 resolver los siguientes aspectos:

  • Configurar las características del equipo.
  • Ajustar la resolución de nombres.
  • Instalar el software necesario.
  • Configurar Kerberos.
  • Configurar Samba.
  • Configurar SSSD.

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

  • Añadir el nombre dns del equipo al archivo host.
  • Unir el equipo al dominio.
  • Configurar Ubuntu para iniciar sesión con un usuario del dominio.
  • Ajustar el comportamiento de la interfaz gráfica
  • Autenticarnos en el dominio desde la interfaz gráfica.

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

Añadir el nombre dns del equipo al archivo host

Ya casi estamos listos para comenzar a probar si todo esto funciona, pero antes, vamos a añadir al archivo hosts el nombre dns que tendrá el equipo linux dentro del dominio. Para conseguirlo, volveremos a utilizar gEdit para editar el archivo:

sudo gedit /etc/hosts

Cuando tengamos su contenido en la pantalla, buscamos la línea que hacía referencia al nombre del equipo local y le añadimos su nombre dns. La línea quedará parecida a esta:

127.0.1.1 cliente-lnx-01 cliente-lnx-01.somebooks.local

Cuando hayamos acabado, podemos guardar los cambios y cerrar la ventana.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-023

Unir el equipo al dominio

Llegados a este punto, estaremos listos para la prueba de fuego: comprobar su el equipo con Ubuntu 16.04 LTS con el que estamos trabajando, se une correctamente al dominio con Windows Server 2016. Aunque, lo primero, será reiniciar los servicios ntp y samba para asegurarnos de que están utilizando los últimos ajustes que hemos estado realizando:

sudo systemctl restart ntp
sudo systemctl restart smbd nmbd

Escribimos ambos comandos en la terminal.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-024

A continuación, comprobamos la configuración autenticándonos con Kerberos en el dominio. Para ello, utilizaremos el comando kinit y la cuenta Administrador del propio dominio:

 sudo kinit Administrador 

Si todo va bien, Kerberos nos pedirá la contraseña de la cuenta. Observa que nos muestra el nombre dns de la cuenta (Administrador@SOMEBOOKS.LOCAL) donde queda constancia de que se trata de la cuenta correcta

Escribimos la contraseña y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-025

Si la salida no nos ofrece ningún tipo de error, es porque el proceso de autenticación ha funcionado correctamente. No obstante, utilizaremos el comando klist para estar completamente seguros.

klist muestra la información sobre el ticket de autenticación, incluida la fecha y hora de concesión, de caducidad, la cuenta y el dominio que estamos empleando

Ejecución del comando klist.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-026

Como la autenticación ha sido correcta, ya estamos listos para unirnos al dominio. Lo conseguiremos con el siguiente comando Samba:

sudo net ads join -k

Escribimos el comando y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-027

Al hacerlo, recibimos un mensaje indicándonos que el equipo se ha unido al dominio. Sin embargo, vemos un aviso que hace referencia a un fallo en la actualización del servidor DNS.

La documentación de Samba nos recomienda volver a ejecutar el comando o modificar el archivo hosts para incluir el nombre completo de nuestro equipo (algo que ya hemos hecho más arriba). En ambos casos, el problema persiste y, siguiendo con la lectura de la documentación, lo atribuye al servidor DNS del dominio.

De todos modos, si en estos momentos comprobamos el controlador de dominio Windows Server 2016 (puede que necesites un reinicio), comprobaremos que el equipo cliente ya aparece en el contenedor Computers y todo parece correcto. Es decir, a pesar del error, podemos seguir adelante.

El cliente ya está incluido en el servidor Windows.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-028

De vuelta en el equipo cliente, reiniciamos el servicio SSD para que aplique la configuración actual:

sudo systemctl restart sssd

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

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-029

A partir de aquí, el sistema está listo para que los clientes puedan autenticarse el en dominio. Aún así, vamos a hacer una última comprobación: usaremos el comando getent para obtener la información de autenticación de la cuenta Administrador:

sudo getent passwd Administrador

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

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-030

Como vemos en la imagen anterior, el sistema operativo nos devuelve la información de la cuenta Administrador, a pesar de que no disponemos de ninguna cuenta local con ese nombre. La única explicación es que se trata de la cuenta del dominio.

Ya sólo nos queda hacer algunos ajustes para el el entorno gráfico los reconozca adecuadamente. Es lo que haremos a continuación.

Configurar Ubuntu para iniciar sesión con usuarios del dominio

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 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,)

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 gedit /etc/pam.d/common-session

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

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-031

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

session required        pam_unix.so

Identificamos la línea anterior.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-032

A continuación, justo debajo de la línea anterior, escribimos, o copiamos, la siguiente línea:

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

Una vez realizado el cambio, podemos guardar y cerrar la ventana.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-033

Ajustar el comportamiento de la interfaz gráfica

En versiones anteriores de Ubuntu, el archivo de configuración se encontraba en /etc/lightdm/lightdm.conf

Antes de reiniciar el equipo cliente dentro del dominio, aún necesitamos hacer un pequeño ajuste más. El motivo es que LightDM, el gestor de sesiones para X Window  que utiliza Ubuntu,
nos ofrece de forma predeterminada la lista de usuarios locales para
que elijamos cualquiera de ellos y escribamos su contraseña.

El problema
es que, en este caso, el usuario que usaremos no es local, sino que se
trata de una cuenta creada en el dominio… Y por lo tanto, no se mostrará en la pantalla de autenticación.

Para cambiar el comportamiento predeterminado de LightDM, sólo necesitaremos cambiar su archivo de configuración, aunque en Ubuntu 16.04 se encuentra un poco escondido:

sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

Como en otras ocasiones, escribimos la orden anterior y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-034

Poco después tendremos en pantalla la ventana del editor de textos….

…Con el contenido inicial del archivo 50-ubuntu.conf.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-035

A continuación, nos ponemos en la última línea y añadimos lo siguiente:

greeter-show-manual-login=true

Obviamente, lo que hace esta opción es permitir que escribamos tanto
el nombre de la cuenta como su contraseña cada vez que nos autentiquemos
(puedes consultar más opciones sobre el contenido de este archivo en https://wiki.ubuntu.com/LightDM).

Opcionalmente, también podemos evitar que la pantalla de autenticación recuerde los nombres de las cuentas con los que hemos iniciado sesión. De esta forma, evitaremos que cualquiera que arranque el ordenador conozca las cuentas del dominio a las que hayamos podido conectarnos. Lo conseguiremos añadiendo lo siguiente:

greeter-hide-users=true

cuando hayamos terminado, guardamos los cambios y cerramos la ventana.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-036

Después de esto, ya estamos listos para la primera prueba…

Reiniciamos el equipo.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-037

Autenticarnos en el dominio desde la interfaz gráfica

Cuando volvamos a la pantalla de autenticación, comprobaremos que no se muestra el nombre de ningún usuario. En su lugar, encontramos la palabra Acceder seguida de un cuadro de texto. Hacemos clic sobre él y escribimos el nombre NetBIOS de una cuenta del dominio (por ejemplo, somebooks\walt)

Cuando terminemos de escribirlo, pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-038

Al hacerlo, el sistema nos pide la contraseña para la cuenta indicada.
Observa que la autenticación ya la está realizando el controlador de
dominio. Si no fuese así, habría aparecido un error indicando que la
cuenta no existe.

Escribimos la contraseña y pulsamos la tecla Intro.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-039

Poco después, se habrá iniciado sesión. Aparentemente, se trata de un inicio normal, pero basta con hacer clic sobre el Indicador del menú de sesión (Control de configuración del sistema) para comprobar que no es así.

El nombre de la cuenta coincidirá con el que tiene en el dominio.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-040

Y para terminar, también podemos comprobar que se ha creado correctamente su directorio de inicio, tal y como habíamos previsto más arriba, en el apartado Configurar SSSD.

Y como esperábamos, su ubicación es /home/SOMEBOOKS.LOCAL/walt.

Unir-un-cliente-Ubuntu-16.04-al-dominio-Windows-Server-2016-041

Y con esto podemos dar por concluido el artículo de hoy. Espero que te resulte útil.