Integre Ubuntu 16.04 a AD como miembro de dominio con Samba y Winbind - Parte 8


Este tutorial describe cómo unir una máquina Ubuntu a un dominio de Active Directory Samba4 para autenticar cuentas AD con ACL local para archivos y directorios o para crear y mapear volúmenes compartidos para usuarios de controladores de dominio (actuar como servidor de archivos).

  1. Cree una infraestructura de Active Directory con Samba4 en Ubuntu

Paso 1: Configuraciones iniciales para unir Ubuntu a Samba4 AD

1. Antes de comenzar a unir un host de Ubuntu en un DC de Active Directory, debe asegurarse de que algunos servicios estén configurados correctamente en la máquina local.

Un aspecto importante de su máquina representa el nombre de host. Configure un nombre de máquina adecuado antes de unirse al dominio con la ayuda del comando hostnamectl o editando manualmente el archivo/etc/hostname.

# hostnamectl set-hostname your_machine_short_name
# cat /etc/hostname
# hostnamectl

2. En el siguiente paso, abra y edite manualmente la configuración de red de su máquina con las configuraciones de IP adecuadas. La configuración más importante aquí son las direcciones IP de DNS que apuntan a su controlador de dominio.

Edite el archivo/etc/network/interfaces y agregue la declaración dns-nameservers con las direcciones IP de AD y el nombre de dominio adecuados como se ilustra en la siguiente captura de pantalla.

Además, asegúrese de que se agreguen las mismas direcciones IP de DNS y el nombre de dominio al archivo /etc/resolv.conf.

En la captura de pantalla anterior, 192.168.1.254 y 192.168.1.253 son las direcciones IP de Samba4 AD DC y Tecmint.lan representa el nombre del dominio AD que será consultado por todas las máquinas integradas en el reino.

3. Reinicie los servicios de red o reinicie la máquina para aplicar las nuevas configuraciones de red. Emita un comando ping contra su nombre de dominio para probar si la resolución de DNS está funcionando como se esperaba.

El AD DC debería reproducirse con su FQDN. En caso de que haya configurado un servidor DHCP en su red para asignar automáticamente la configuración de IP para sus hosts de LAN, asegúrese de agregar direcciones IP de AD DC a las configuraciones de DNS del servidor DHCP.

# systemctl restart networking.service
# ping -c2 your_domain_name

4. La última configuración importante requerida está representada por la sincronización horaria. Instale el paquete ntpdate, consulte y sincronice el tiempo con AD DC emitiendo los siguientes comandos.

$ sudo apt-get install ntpdate
$ sudo ntpdate -q your_domain_name
$ sudo ntpdate your_domain_name

5. En el siguiente paso, instale el software requerido por la máquina Ubuntu para integrarse completamente en el dominio ejecutando el siguiente comando.

$ sudo apt-get install samba krb5-config krb5-user winbind libpam-winbind libnss-winbind

Mientras se instalan los paquetes de Kerberos, se le debe solicitar que ingrese el nombre de su dominio predeterminado. Use el nombre de su dominio en mayúsculas y presione la tecla Enter para continuar con la instalación.

6. Después de que todos los paquetes terminen de instalarse, pruebe la autenticación Kerberos con una cuenta administrativa de AD y enumere el ticket emitiendo los siguientes comandos.

# kinit ad_admin_user
# klist

Paso 2: Únase a Ubuntu a Samba4 AD DC

7. El primer paso para integrar la máquina Ubuntu en el dominio de Active Directory de Samba4 es editar el archivo de configuración de Samba.

Haga una copia de seguridad del archivo de configuración predeterminado de Samba, proporcionado por el administrador de paquetes, para comenzar con una configuración limpia ejecutando los siguientes comandos.

# mv /etc/samba/smb.conf /etc/samba/smb.conf.initial
# nano /etc/samba/smb.conf 

En el nuevo archivo de configuración de Samba agregue las siguientes líneas:

[global]
        workgroup = TECMINT
        realm = TECMINT.LAN
        netbios name = ubuntu
        security = ADS
        dns forwarder = 192.168.1.1

idmap config * : backend = tdb        
idmap config *:range = 50000-1000000
	
   template homedir = /home/%D/%U
   template shell = /bin/bash
   winbind use default domain = true
   winbind offline logon = false
   winbind nss info = rfc2307
   winbind enum users = yes
   winbind enum groups = yes

  vfs objects = acl_xattr
  map acl inherit = Yes
  store dos attributes = Yes

Reemplace el grupo de trabajo, el reino, el nombre de netbios y las variables del reenviador dns con sus propias configuraciones personalizadas.

El parámetro winbind use default domain hace que el servicio winbind trate cualquier nombre de usuario de AD no calificado como usuarios de AD. Debe omitir este parámetro si tiene nombres de cuentas del sistema local que se superponen a las cuentas de AD.

8. Ahora debe reiniciar todos los demonios de samba y detener y eliminar los servicios innecesarios y habilitar los servicios de samba en todo el sistema emitiendo los siguientes comandos.

$ sudo systemctl restart smbd nmbd winbind
$ sudo systemctl stop samba-ad-dc
$ sudo systemctl enable smbd nmbd winbind

9. Una la máquina Ubuntu a Samba4 AD DC emitiendo el siguiente comando. Utilice el nombre de una cuenta de AD DC con privilegios de administrador para que el enlace al reino funcione como se esperaba.

$ sudo net ads join -U ad_admin_user

10. Desde una máquina Windows con herramientas RSAT instaladas, puede abrir AD UC y navegar al contenedor Computadoras. Aquí, su máquina unida a Ubuntu debería aparecer en la lista.

Paso 3: configurar la autenticación de cuentas de AD

11. Para realizar la autenticación de cuentas AD en la máquina local, necesita modificar algunos servicios y archivos en la máquina local.

Primero, abra y edite el archivo de configuración del conmutador de servicio de nombres (NSS).

$ sudo nano /etc/nsswitch.conf

A continuación, agregue el valor winbind para passwd y group lines como se ilustra en el siguiente extracto.

passwd:         compat winbind
group:          compat winbind

12. Para probar si la máquina Ubuntu se integró con éxito al reino, ejecute el comando wbinfo para enumerar las cuentas y los grupos de dominio.

$ wbinfo -u
$ wbinfo -g

13. Además, verifique el módulo Winbind nsswitch emitiendo el comando getent y canalice los resultados a través de un filtro como grep para limitar la salida solo para usuarios o grupos de dominio específicos.

$ sudo getent passwd| grep your_domain_user
$ sudo getent group|grep 'domain admins'

14. Para autenticarse en una máquina Ubuntu con cuentas de dominio, debe ejecutar el comando pam-auth-update con privilegios de root y agregar todas las entradas necesarias para el servicio winbind y crear automáticamente directorios de inicio para cada cuenta de dominio en el primer inicio de sesión.

Verifique todas las entradas presionando la tecla [espacio] y presione ok para aplicar la configuración.

$ sudo pam-auth-update

15. En los sistemas Debian, debe editar manualmente el archivo /etc/pam.d/common-account y la siguiente línea para crear automáticamente hogares para usuarios de dominio autenticados.

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

16. Para que los usuarios de Active Directory puedan cambiar la contraseña desde la línea de comandos en Linux, abra el archivo /etc/pam.d/common-password y elimine la declaración use_authtok de la línea de contraseña para finalmente verse como en el siguiente extracto.

password       [success=1 default=ignore]      pam_winbind.so try_first_pass

17. Para autenticarse en un host Ubuntu con una cuenta Samba4 AD, use el parámetro de nombre de usuario de dominio después del comando su -. Ejecute el comando id para obtener información adicional sobre la cuenta de AD.

$ su - your_ad_user

Use el comando pwd para ver el directorio actual de su usuario de dominio y el comando passwd si desea cambiar la contraseña.

18. Para usar una cuenta de dominio con privilegios de root en su máquina Ubuntu, necesita agregar el nombre de usuario de AD al grupo del sistema sudo emitiendo el siguiente comando:

$ sudo usermod -aG sudo your_domain_user

Inicie sesión en Ubuntu con la cuenta de dominio y actualice su sistema ejecutando el comando apt-get update para verificar si el usuario del dominio tiene privilegios de root.

19. Para agregar privilegios de root para un grupo de dominio, abra el archivo end edit/etc/sudoers usando el comando visudo y agregue la siguiente línea como se ilustra en la siguiente captura de pantalla.

%YOUR_DOMAIN\\your_domain\  group       		 ALL=(ALL:ALL) ALL

Utilice barras invertidas para escapar de los espacios contenidos en el nombre de su grupo de dominio o para escapar de la primera barra invertida. En el ejemplo anterior, el grupo de dominio para el reino TECMINT se denomina "administradores de dominio".

El signo de porcentaje anterior (%) indica que nos estamos refiriendo a un grupo, no a un nombre de usuario.

20. En caso de que esté ejecutando la versión gráfica de Ubuntu y desee iniciar sesión en el sistema con un usuario de dominio, debe modificar el administrador de pantalla LightDM editando /usr/share/lightdm/lightdm.conf.d/50-ubuntu .conf, agregue las siguientes líneas y reinicie la máquina para reflejar los cambios.

greeter-show-manual-login=true
greeter-hide-users=true

Ahora debería poder realizar inicios de sesión en Ubuntu Desktop con una cuenta de dominio usando el formato your_domain_username o [email protected] _domain.tld o your_domain\your_domain_username.