miércoles, 1 de abril de 2026

Cómo unir Ubuntu a Active Directory usando ADSys

como unir ubuntu a active directory adsys

Esta guía te permitirá integrar Ubuntu (versiones 25.10 / 26.04) en un dominio de Active Directory gestionado por Samba 4 (también válido para dominios Windows), permitiendo no solo la autenticación centralizada, sino también la gestión de políticas de grupo mediante ADSys. 

A parte de Samba 4, que no necesita presentación por aquí, ya que hay bastante material en éste blog sobre él; usaremos SSSD, que es el daemon que gestiona la autenticación local y el acceso a servicios de directorio remotos en GNU Linux. También usaremos realm, que es una herramienta simplificada para descubrir y unirse a dominios de AD sin configurar manualmente archivos complejos y ADSys, una solución de Canonical para gestionar clientes Ubuntu mediante GPOs (Objetos de Directiva de Grupo) de Active Directory.

Debemos asegurarnos que nuestro equipo cliente con Ubuntu se encuentra en la misma red del servidor AD (en nuestro caso es un AlmaLinux con Samba 4). 

Unir Ubuntu al Dominio FCLD.LOCAL 

Actualización e Instalación 
Primero, actualizamos el sistema e instalamos los paquetes necesarios para la integración y la gestión de políticas.
fraterneo@ubuntu-client:~$ sudo apt update && sudo apt upgrade -y
fraterneo@ubuntu-client:~$ sudo apt install -y realmd sssd sssd-tools libnss-sss libpam-sss adcli adsys krb5-user smbclient samba-common-bin packagekit
*Durante el proceso de instalación Kerberos pide el realm del dominio, lo escribimos en mayúsculas: FCLD.LOCAL 

Descubrimiento del Dominio 
Verificamos que Ubuntu puede ver el dominio fcld.local y que identifica los paquetes requeridos.
fraterneo@ubuntu-client:~$ realm discover

fcld.local
  type: kerberos
  realm-name: FCLD.LOCAL
  domain-name: fcld.local
  configured: no
  server-software: active-directory
  client-software: sssd
  required-package: sssd-tools
  required-package: sssd
  required-package: libnss-sss
  required-package: libpam-sss
  required-package: adcli
  required-package: samba-common-bin
Unión al Dominio 
Ejecutamos la unión oficial. Usaremos el parámetro -v (verbose) para ver el progreso detallado. El sistema solicitará la contraseña del administrador del dominio.
fraterneo@ubuntu-client:~$ sudo realm join -v --user=Administrator FCLD.LOCAL

 * Resolving: _ldap._tcp.fcld.local
 * Performing LDAP DSE lookup on: 10.42.0.1
 * Successfully discovered: fcld.local
Password for Administrator: 
 * Unconditionally checking packages
 * Resolving required packages
 * LANG=C /usr/sbin/adcli join --verbose --domain fcld.local --domain-realm FCLD.LOCAL --domain-controller 10.42.0.1 --login-type user --login-user Administrator --stdin-password
 * Using domain name: fcld.local
 * Calculated computer account name from fqdn: UBUNTU-CLIENT
 * Using domain realm: fcld.local
 * Sending NetLogon ping to domain controller: 10.42.0.1
 * Received NetLogon info from: sambapdc01.fcld.local
 * Wrote out krb5.conf snippet to /var/cache/realmd/adcli-krb5-7eOcHR/krb5.d/adcli-krb5-conf-Y0LkRU
 * Authenticated as user: Administrator@FCLD.LOCAL
 * Using GSS-SPNEGO for SASL bind
 * Looked up short domain name: FCLD
 * Looked up domain SID: S-1-5-21-87385115-388024416-2340584732
 * Received NetLogon info from: sambapdc01.fcld.local
 * Using fully qualified name: ubuntu-client
 * Using domain name: fcld.local
 * Using computer account name: UBUNTU-CLIENT
 * Using domain realm: fcld.local
 * Calculated computer account name from fqdn: UBUNTU-CLIENT
 * Generated 120 character computer password
 * Using keytab: FILE:/etc/krb5.keytab
 * Found computer account for UBUNTU-CLIENT$ at: CN=UBUNTU-CLIENT,CN=Computers,DC=fcld,DC=local
 * Trying to set computer password with Kerberos
 * Set computer password
 * Retrieved kvno '3' for computer account in directory: CN=UBUNTU-CLIENT,CN=Computers,DC=fcld,DC=local
 * Checking host/UBUNTU-CLIENT
 *    Added host/UBUNTU-CLIENT
 * Checking RestrictedKrbHost/UBUNTU-CLIENT
 *    Added RestrictedKrbHost/UBUNTU-CLIENT
 * Discovered which keytab salt to use
 * Added the entries to the keytab: UBUNTU-CLIENT$@FCLD.LOCAL: FILE:/etc/krb5.keytab
 * Added the entries to the keytab: host/UBUNTU-CLIENT@FCLD.LOCAL: FILE:/etc/krb5.keytab
 * Added the entries to the keytab: RestrictedKrbHost/UBUNTU-CLIENT@FCLD.LOCAL: FILE:/etc/krb5.keytab
 * /usr/sbin/update-rc.d sssd enable
 * /usr/sbin/service sssd restart
 * Successfully enrolled machine in realm
Configuración de Inicio de Sesión 
Para que Ubuntu cree automáticamente una carpeta de inicio (/home/usuario@dominio) la primera vez que un usuario de AD inicie sesión:
fraterneo@ubuntu-client:~$ sudo pam-auth-update --enable mkhomedir
Optimización de SSSD 
Debemos ajustar el archivo de configuración para definir cómo se comportarán los nombres de usuario y las rutas de las carpetas. Edítalo y asegúrate de que luzca así:
fraterneo@ubuntu-client:~$ sudo nano /etc/sssd/sssd.conf

[sssd]
domains = fcld.local
config_file_version = 2
services = nss, pam

[domain/fcld.local]
default_shell = /bin/bash
krb5_store_password_if_offline = True
cache_credentials = True
krb5_realm = FCLD.LOCAL
realmd_tags = manages-system joined-with-adcli
id_provider = ad
fallback_homedir = /home/%u@%d
ad_domain = fcld.local
use_fully_qualified_names = True
ldap_id_mapping = True
access_provider = ad
auth_provider = ad
Reinicia el sistema tras este paso para aplicar los cambios globales. Al regresar nos logueamos en Ubuntu como administrator@fcld.local y clave de administrator del dominio.

Login de Ubuntu que ya muestra que podemos loguearnos como un usuario del dominio fcld.local


Gestión de Políticas 
ADSys permite que el administrador de AD controle Ubuntu usando archivos .admx (plantillas de directiva). 

Generar las Plantillas 
Desde el cliente Ubuntu, generamos los archivos de política necesarios:
administrator@fcld.local@ubuntu-client:~$ adsysctl policy admx all
Subir Políticas al Servidor AD (Samba 4) 
Utilizaremos smbclient para crear las rutas en el volumen SYSVOL del servidor y subir las plantillas. Esto permitirá que el Editor de Directivas de Grupo en Windows (o herramientas de Samba) reconozca las opciones de Ubuntu. 

Crear directorios en el servidor:
administrator@fcld.local@ubuntu-client:~$ smbclient //sambapdc01/sysvol -U Administrator@FCLD.LOCAL -c 'mkdir "/fcld.local/Policies/PolicyDefinitions"'
administrator@fcld.local@ubuntu-client:~$ smbclient //sambapdc01/sysvol -U Administrator@FCLD.LOCAL -c 'mkdir "/fcld.local/Policies/PolicyDefinitions/en-US"'
Subir archivos .admx (plantilla principal) y .adml (archivo de idioma):
administrator@fcld.local@ubuntu-client:~$ smbclient //sambapdc01/sysvol -U Administrator@FCLD.LOCAL -c 'put "/home/administrator@fcld.local/Ubuntu.admx" "/fcld.local/Policies/PolicyDefinitions/Ubuntu.admx"'
Password for [Administrator@FCLD.LOCAL]:
putting file /home/administrator@fcld.local/Ubuntu.admx as \fcld.local\Policies\PolicyDefinitions\Ubuntu.admx (42374.5 kb/s) (average 42375.0 kb/s)

administrator@fcld.local@ubuntu-client:~$ smbclient //sambapdc01/sysvol -U Administrator@FCLD.LOCAL -c 'put "/home/administrator@fcld.local/Ubuntu.adml" "/fcld.local/Policies/PolicyDefinitions/en-US/Ubuntu.adml"'
Password for [Administrator@FCLD.LOCAL]:
putting file /home/administrator@fcld.local/Ubuntu.adml as \fcld.local\Policies\PolicyDefinitions\en-US\Ubuntu.adml (32838.6 kb/s) (average 32839.0 kb/s)
Validación de la Integración 
Para confirmar que todo está funcionando correctamente, ejecuta estos tres comandos: 

Estado del Realm:
administrator@fcld.local@ubuntu-client:~$ realm discover
fcld.local
  type: kerberos
  realm-name: FCLD.LOCAL
  domain-name: fcld.local
  configured: kerberos-member
  server-software: active-directory
  client-software: sssd
  required-package: sssd-tools
  required-package: sssd
  required-package: libnss-sss
  required-package: libpam-sss
  required-package: adcli
  required-package: samba-common-bin
  login-formats: %U@fcld.local
  login-policy: allow-realm-logins

Debería mostrar configured: kerberos-member. 

Obtener Ticket de Kerberos:
administrator@fcld.local@ubuntu-client:~$ kinit administrator
Password for administrator@FCLD.LOCAL: 
Warning: Your password will expire in 36 days on Fri 08 May 2026 03:15:41 PM AST
Listar Tickets activos:
administrator@fcld.local@ubuntu-client:~$ klist
Ticket cache: FILE:/tmp/krb5cc_257600500_Yg6ycZ
Default principal: Administrator@FCLD.LOCAL

Valid starting       Expires              Service principal
04/01/2026 17:35:51  04/02/2026 03:35:51  krbtgt/FCLD.LOCAL@FCLD.LOCAL
	renew until 04/08/2026 17:35:51
Si ves un ticket para krbtgt/FCLD.LOCAL@FCLD.LOCAL, la comunicación segura está establecida. 

Propiedades del equipo UBUNTU-CLIENT en AD Users and Computers


Puedes ampliar aún más sobre ADSys y lo que te permite hacer al manejar las políticas para Ubuntu desde Active Directory consultando la documentación oficial de Ubuntu sobre Group PolicyADSys, Configuración de AD y Unión Manual.


Artículos relacionados



Widget by Hoctro | Jack Book

0 comments:

Publicar un comentario