Integrando Ubuntu Desktop 18.04 en dominio Active Directory

Vamos a ver cómo hacer una integración manual de un cliente Ubuntu Desktop utilizando Samba y Winbind en un dominio Active Directory creado con un Windows 2012R2 en nivel 2008R2. Esta guía también sirve para integrar Ubuntu Server ignorando el ultimo paso del tutorial.

Primero unos datos orientativos:

  • Nombre corto de máquina a integrar: UDSK-ZB
  • Nombre largo de máquina a integrar: udsk-zb.zorrasbinarias.fem
  • Configuración de red de máquina a integrar: 10.5.2.214/24 GW 10.5.0.1
  • Nombre corto de controlador de dominio: DC2012-ZB
  • Nombre largo de controlador de dominio: dc2012-zb.zorrasbinarias.fem
  • IP de controlador de dominio: 10.5.2.212
  • Dominio AD (NetBIOS): ZORRASBINARIAS
  • Dominio AD (DNS): zorrasbinarias.fem Usuario administrador del dominio: Administrador

Configuración de red

Para comenzar con la integración es importante revisar que el hostname es el correcto.

nano /etc/hostname

Configuramos el archivo hosts añadiendo los datos de la estación, del controlador de dominio y del dominio.

nano /etc/hosts

Es necesario modificar también el archivo resolv.conf

nano /etc/resolv.conf

Para finalizar con la configuración de red, editamos el archivo interfaces

nano /etc/network/interfaces

Reiniciamos la red para que se apliquen los cambios realizados.

service networking restart

Instalación y configuración de Kerberos

Se instala Kerberos; el San Pedro de GNU/Linux. Es quien entrega la llave para certificar la identidad del cliente y el servidor. Un protocolo de autenticación.

apt install krb5-config

Una vez instalado realizamos una copia de seguridad de su archivo de configuración.

cp /etc/krb5.conf /etc/krb5.conf.bak

Ahora que tenemos la copia de seguridad, editamos el archivo borrando todo su contenido y añadiendo el reino Kerberos correspondiente.

nano /etc/krb5.conf

Un ejemplo de configuración es el siguiente, solo hay que sustituir el texto en negrita:

archivo_krb5conf

Finalmente instalamos algunas utilidades Kerberos.

apt install krb5-user

Instalación y configuración de Samba

Samba es la implementación libre del protocolo de archivos compartidos de Windows para sistemas de tipo UNIX. Para instalar Samba ejecutamos el comando

apt install samba

Y hacemos backup de su archivo de configuración

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

Lo editamos borrando todo su contenido y añadiendo el correspondiente.

nano /etc/samba/smb.conf

Un ejemplo de configuración sería:

[global] 
    workgroup = ZORRASBINARIAS 
    realm = ZORRASBINARIAS.FEM 
    security = ADS 
    idmap config * : range = 10000-20000 
    idmap config * : backend = tdb 
    template shell = /bin/bash 
    winbind enum users = Yes
    winbind enum groups = Yes 
    winbind use default domain = Yes

Testeamos que la configuración es correcta con el comando

testparm

Instalación y configuración de Winbind

Winbind es quien permite loguearse a los clientes GNU/Linux en el dominio AD sin necesidad de tener una cuenta local. Instalamos winbind y las librerías necesarias para la integración.

apt install winbind

apt install libpam-winbind

apt install libnss-winbind

Vamos a configurar el Name Service Switch, para ello hay que editar el archivo nsswitch.conf y añadir la palabra winbind en las líneas passwd y group tal y como se muestra en la imagen. Pero antes creamos un backup del archivo con

cp /etc/nsswitch.conf /etc/nsswitch.conf.bak

Configuración de PAM

PAM (Pluggable Authentication Modules) es quien determina si un usuario se puede autenticar o no. Antes de modificar PAM hacemos una copia de seguridad de sus archivos de configuración.

cp /etc/pam.d/common-account /etc/pam.d/common-account.bak

cp /etc/pam.d/common-auth /etc/pam.d/common-auth.bak

cp /etc/pam.d/common-password /etc/pam.d/common-password.bak

cp /etc/pam.d/common-session /etc/pam.d/common-session.bak

Ahora ejecutamos el comando

pam-auth-update

Hay que seleccionar las opciones 2 y 4 si no lo están por defecto, para permitir autenticación con AD por medio de Winbind y configuramos éste para que cree el directorio personal de usuario la primera vez que se loguee.

Sincronización horaria

Para evitar problemas durante la integración es recomendable sincronizar el cliente con el dominio, para ello se necesita el paquete ntpdate

apt install ntpdate

Se consulta con

ntpdate –q zorrasbinarias.fem

Y se sincroniza con

ntpdate zorrasbinarias.fem

Configuración y comprobación del estado de los servicios

Antes de proceder con la integración se pueden comprobar los tres servicios de Samba necesarios para realizarla.

service smbd status

service nmbd status

service winbind status

Es importante reiniciarlos antes de la integración.

service smbd restart

service nmbd restart

service winbind restart

Y finalmente se detiene el servicio samba-ad-dc y se deshabilita el arranque automático cuando inicie el sistema.

systemctl stop samba-ad-dc

systemctl disable samba-ad-dc

Integración

Generamos el ticket Kerberos al usuario que se utilizará para integrar el equipo en el dominio.

kinit Administrador@ZORRASBINARIAS.FEM

Comprobamos que el ticket se ha creado correctamente ejecutando

klist

Ahora sí, unimos el host al dominio.

net ads join -U Administrador

Una vez intengrado correctamente reiniciamos nuevamente los servicios Samba.

service smbd restart

service nmbd restart

service winbind restart

Podemos comprobar la integración con

net ads info

net ads testjoin

También podemos ver los usuarios de dominio mapeados como usuarios de Ubuntu con el comando

getent passwd

Si vamos al controlador de dominio podemos ver que el equipo se ha integrado.

Pero que aparezca en el árbol no es una prueba concluyente de que se ha integrado de forma correcta, es necesario crear el puntero PTR de la zona inversa en el servidor DNS.

En el puntero hay que añadir los datos de nuestro equipo cliente.

Administración de Ubuntu con cuentas del dominio

Para usar una cuenta de dominio con privilegios de administración en Ubuntu, es necesario añadir el usuario al grupo sudo.

usermod -aG sudo Administrador

Y si quisiéramos que los privilegios de administración los tuviese un grupo del dominio completo editaremos el archivo sudoers para añadirlo. En este caso añado el grupo admins del dominio con la siguiente línea.

%ZORRASBINARIAS\admins.\ del\ dominio ALL=(ALL:ALL) ALL

Configuración de LightDM

Al integrar una versión desktop de Ubuntu hay que modificar el LightDM display manager para poder iniciar sesión con los usuarios del dominio.

Hacemos una copia de seguridad del archivo 50-ubuntu.conf

cp /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf.bak

Lo abrimos

nano /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

Y añadimos la siguiente línea:

greeter-show-manual-login=true

Ya podemos iniciar sesión con usuarios del dominio.

Compartir

5 Comentarios

  1. Gran post jess, muy completo y trabajado ;) la verdad es que samba y winbind son autenticas maravillas, que permiten una integracion fluida y sin problemas.
    Gracias por compartir

  2. Hola Jess,

    Me aparece esto al intentar iniciar sesion con kinit:

    kinit: KDC reply did not match expectations while getting initial credentials

    He buscado por ahi, y todo hace referencias al mayus del realm en el .conf. pero el fichero de conf parece correcto:

    [libdefaults]
    default_realm = IBYSTECH

    [realms]
    IBYSTECH = {
    kdc = NAVISION
    admin_server = NAVISION
    }

    Alguna idea de por que?

    Un saludo,

  3. Cómo sería para implementar de forma masiva en una empresa: por ej debería ir equipo por equipo agregando los grupos administradores? Y cómo replicó políticas de deshabilitar periféricos y/o script personalizados? Actualmente las GPO evitan esta administración individual. Si pudiese contar su experiencia…

Deja una respuesta a daniel Cancelar respuesta

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax