Unir Ubuntu 16 a un dominio de Windows Server con Active Directory

En esta entrada vamos a aprender a unir un sistema GNU/Linux a un dominio creado mediante Windows Server. En este caso vamos a usar máquinas virtuales configuradas en red interna. Por una parte tenemos un Ubuntu 16.04 y por otra un Windows Server 2008 R2.

 
Para ello vamos a necesitar cumplir los siguientes requisitos:

  1. Dominio de Active Directory
    2. DNS apuntando al servidor ( en este caso la 192.168.0.200)
    3. Hora del sistema sincronizada con el controlador del dominio (muy importante para Kerberos).
    4. Instalar los siguientes paquetes: Cliente Kerberos, Samba, SSSD y NTP.

 

Antes de empezar con instalaciones y configuraciones vamos a aclarar lo que vamos a utilizar.

  • Kerberos: Es un protocolo de autentificación segura entre dos ordenadores que están en una red no segura. Proporciona autentificación entre los dos equipos.
  • Samba: Protocolo utilizado para compartir archivos entre Windows y sistemas GNU/Linux.
  • SSSD (System Security Services Daemon): Paquete de software que nos proveé de una serie de demonios para el uso de directorios remotos y además de mecanismos de autentificación.
  • NTP: Protocolo para sincronizar relojes entre sistemas.

 

Para instalar los paquetes nombrados basta con ejecutar este comando:

$ sudo apt install krb5-user samba sssd ntp

Una vez instalado vamos a configurar cada uno de los paquetes instalados paso a paso.

 

Kerberos

Editamos el fichero de configuración de Kerberos (/etc/krb5.conf ) para indicar el dominio y editamos las siguientes líneas.

NTP

Para la sincronización de los relojes simplemente editamos el fichero /etc/ntp.conf y añadimos el nombre del controlador de dominio.

SAMBA

Vamos al fichero de configuración de samba /etc/samba/smb.conf y dejamos [global] de la siguiente manera. En workgroup pondremos el nombre NETBIOS del dominio, en este caso EMPRESA.

SSSD

Modificamos el fichero de configuración /etc/sssd/sssd.conf para que quede de la siguiente manera.

Y le damos los permisos necesarios para que funcione.

 sudo chown root:root /etc/sssd/sssd.conf
 sudo chmod 600 /etc/sssd/sssd.conf

FQDN

En el fichero /etc/hosts añadimos el nombre completo de la máquina que vamos a unir al dominio.

Llegados a este punto tendremos que reiniciar los servicios de Samba y NTP para que se apliquen los cambios.

$ sudo systemctl restart ntp
$ sudo systemctl restart smbd nmbd

 

Unirse al dominio de Active Directory

Una vez se han reiniciado los servicios anteriormente mencionados tendremos que pedir un ticket de autentificación a Kerberos.

$ sudo kinit administrador

Finalmente nos unimos al dominio empresa.com con el comando:

$ sudo net ads join -k

A pesar del error de DNS no nos debemos preocupar ya que todo ha salido bien. Comprobamos en Windows Server que se ha unido correctamente.

Podemos observar el equipo windows y usuario-vb que pertenece a Ubuntu 16. Ahora reiniciamos el servicio de sssd para que pueda validar ususarios.

$ sudo systemctl restart sssd

 

Vemos como podemos validarnos como el usuario administrador del dominio:

Además, para que quede más claro que el usuario administrador no pertenece a una cuenta local de Ubuntu y que pertenece al dominio veremos el fichero /etc/passwd.

Cabe destacar que con el usuario administrador en la máquina Ubuntu no podremos ejecutar sudo ya que no es una cuenta que tenga privilegios en el sistema.

Crear $HOME para cada usuarios

Para ello tenemos que activar un módulo PAM que se encargará de generar el $HOME cada vez que el usuario inicie sesión. Vamos al fichero de configuración /etc/pam.d/common-session y añadimos esta línea después de pam_unix.so.

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

Habilitar log in

Es probable que al acceder de la manera gráfica nos encontremos con el siguiente problema:

Como vemos no tenemos opción a registrarnos con otros usuarios que no sean cuentas locales o la sesión de invitado. Para solucionar esto basta con editar el fichero /etc/lightdm/lightdm.conf, añadir la siguiente línea para poder acceder de manera manual y luego reiniciamos el equipo.

greeter-show-manual-login=true

Ya podemos iniciar sesión con el usuario que nos parezca, con este caso administrador porque de momento es el único que existe en el dominio. Además podemos ver como ha creado un $HOME para este usuario con el cual nos acabamos de identificar.

 

Esto es todo, espero que os sirva de ayuda. Saludos!

8 comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *