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
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
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
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
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
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.
De vuelta en el equipo cliente, reiniciamos el servicio SSD para que aplique la configuración actual:
sudo systemctl restart sssd
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
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
Cuando se haya abierto el editor de textos, buscamos una línea con el siguiente aspecto:
session required pam_unix.so
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
Ajustar el comportamiento de la interfaz gráfica
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
Poco después tendremos en pantalla la ventana del editor de textos….
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
Después de esto, ya estamos listos para la primera prueba…
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)
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.
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 () para comprobar que no es así.
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 con esto podemos dar por concluido el artículo de hoy. Espero que te resulte útil.