302.3 Gestión de Usuarios en Active Directory

Objetivos del subtema

Este subtema cubre la gestión de usuarios y grupos en un dominio Active Directory administrado por Samba, incluyendo herramientas de línea de comandos, RSAT desde Windows, políticas de contraseñas, GPOs básicas, integración LDAP y mapeo de UIDs/GIDs.

Gestión de usuarios con samba-tool

Crear usuarios

# Crear usuario con contraseña interactiva
samba-tool user create pedro
 
# Crear usuario con contraseña en línea de comandos
samba-tool user create pedro 'P@ssw0rd123'
 
# Crear usuario con atributos adicionales
samba-tool user create pedro 'P@ssw0rd123' \
  --given-name="Pedro" \
  --surname="García" \
  --mail-address="pedro@empresa.com" \
  --login-shell="/bin/bash" \
  --uid-number=10001 \
  --gid-number=10000 \
  --unix-home="/home/pedro"
 
# Crear usuario que debe cambiar la contraseña en el primer inicio
samba-tool user create pedro 'TempPass1' --must-change-at-next-login

Administrar usuarios existentes

# Listar usuarios
samba-tool user list
 
# Mostrar detalles de un usuario
samba-tool user show pedro
 
# Deshabilitar un usuario
samba-tool user disable pedro
 
# Habilitar un usuario
samba-tool user enable pedro
 
# Eliminar un usuario
samba-tool user delete pedro
 
# Cambiar contraseña
samba-tool user setpassword pedro --newpassword='NuevaPass123'
 
# Forzar cambio de contraseña en el próximo login
samba-tool user setpassword pedro --newpassword='TempPass1' --must-change-at-next-login
 
# Establecer caducidad de contraseña
samba-tool user setexpiry pedro --days=90
 
# Configurar contraseña que nunca caduca
samba-tool user setexpiry pedro --noexpiry

Para el examen: samba-tool user create requiere que la contraseña cumpla con la política de complejidad de AD (mayúsculas, minúsculas, números, caracteres especiales, mínimo 7 caracteres por defecto).

Gestión de grupos con samba-tool

Tipos de grupos en AD

TipoAlcanceUso
Security (Seguridad)Local, Global, UniversalAsignar permisos
Distribution (Distribución)Local, Global, UniversalListas de correo

Operaciones con grupos

# Crear grupo de seguridad (predeterminado)
samba-tool group add desarrollo
 
# Crear grupo con descripción
samba-tool group add desarrollo --description="Equipo de desarrollo"
 
# Crear grupo de tipo distribución
samba-tool group add lista-info --group-type=Distribution
 
# Listar grupos
samba-tool group list
 
# Mostrar detalles de un grupo
samba-tool group show desarrollo
 
# Añadir miembros al grupo
samba-tool group addmembers desarrollo pedro,maria,carlos
 
# Quitar miembros del grupo
samba-tool group removemembers desarrollo carlos
 
# Listar miembros de un grupo
samba-tool group listmembers desarrollo
 
# Eliminar grupo
samba-tool group delete desarrollo

RSAT (Remote Server Administration Tools)

Las herramientas RSAT permiten administrar Samba AD DC desde un equipo Windows:

Herramientas RSAT principales

HerramientaFunción
Active Directory Users and Computers (ADUC)Gestionar usuarios, grupos, OUs, equipos
Active Directory Domains and TrustsGestionar confianzas entre dominios
Active Directory Sites and ServicesGestionar sitios y replicación
DNS ManagerGestionar zonas y registros DNS
Group Policy ManagementGestionar GPOs

Instalación de RSAT en Windows

# Windows 10/11 - Instalar RSAT
Add-WindowsCapability -Online -Name Rsat.ActiveDirectory.DS-LDS.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.Dns.Tools~~~~0.0.1.0
Add-WindowsCapability -Online -Name Rsat.GroupPolicy.Management.Tools~~~~0.0.1.0

Requisitos para usar RSAT con Samba

  • El equipo Windows debe estar unido al dominio Samba AD
  • El usuario debe tener privilegios de administrador del dominio
  • DNS debe apuntar al DC Samba
  • Kerberos debe funcionar correctamente entre Windows y Samba

Para el examen: RSAT funciona con Samba AD DC y es la forma recomendada de administrar aspectos como GPOs complejas y gestión de sitios que no están completamente soportados por samba-tool.

Políticas de contraseñas

Configurar política de contraseñas del dominio

# Mostrar política actual
samba-tool domain passwordsettings show
 
# Configurar longitud mínima
samba-tool domain passwordsettings set --min-pwd-length=8
 
# Configurar historial de contraseñas
samba-tool domain passwordsettings set --history-length=12
 
# Configurar edad mínima (días)
samba-tool domain passwordsettings set --min-pwd-age=1
 
# Configurar edad máxima (días)
samba-tool domain passwordsettings set --max-pwd-age=90
 
# Configurar complejidad
samba-tool domain passwordsettings set --complexity=on
 
# Configurar bloqueo de cuenta
samba-tool domain passwordsettings set --account-lockout-threshold=5
samba-tool domain passwordsettings set --account-lockout-duration=30
samba-tool domain passwordsettings set --reset-account-lockout-after=15

Políticas de contraseñas granulares (PSO)

Samba soporta políticas de contraseñas granulares (Fine-Grained Password Policies):

# Crear una PSO para un grupo específico
samba-tool domain passwordsettings pso create "PSO-Admins" 10 \
  --min-pwd-length=12 \
  --complexity=on \
  --history-length=24 \
  --max-pwd-age=30
 
# Aplicar PSO a un grupo
samba-tool domain passwordsettings pso apply "PSO-Admins" "Domain Admins"
 
# Listar PSOs
samba-tool domain passwordsettings pso list
 
# Mostrar detalles de una PSO
samba-tool domain passwordsettings pso show "PSO-Admins"

GPO (Group Policy Objects) básicas

Gestión de GPOs con samba-tool

# Listar todas las GPOs
samba-tool gpo listall
 
# Mostrar GPOs aplicadas a un usuario
samba-tool gpo list usuario
 
# Crear una nueva GPO
samba-tool gpo create "Política de escritorio" -U administrator
 
# Vincular GPO a una OU
samba-tool gpo setlink {GPO-GUID} "OU=Ventas,DC=empresa,DC=com" -U administrator
 
# Desvincular GPO de una OU
samba-tool gpo dellink {GPO-GUID} "OU=Ventas,DC=empresa,DC=com" -U administrator
 
# Mostrar detalles de una GPO
samba-tool gpo show {GPO-GUID}
 
# Obtener informe de GPO
samba-tool gpo getinheritance "OU=Ventas,DC=empresa,DC=com"

GPOs predeterminadas

  • Default Domain Policy: Política global del dominio (contraseñas, bloqueo de cuenta)
  • Default Domain Controllers Policy: Política para los DCs

Para el examen: La gestión completa de GPOs (edición de configuraciones) normalmente requiere RSAT desde Windows, ya que samba-tool tiene soporte limitado para la edición del contenido de las GPOs.

Integración LDAP

Active Directory es un servicio LDAP, por lo que se puede consultar y modificar usando herramientas LDAP estándar:

Consultas LDAP al AD de Samba

# Buscar un usuario
ldbsearch -H ldap://localhost -U administrator "(&(objectClass=user)(sAMAccountName=pedro))"
 
# Buscar todos los usuarios
ldbsearch -H ldap://localhost -U administrator "(objectClass=user)" cn sAMAccountName
 
# Buscar grupos
ldbsearch -H ldap://localhost -U administrator "(objectClass=group)" cn
 
# Buscar en una OU específica
ldbsearch -H ldap://localhost \
  -b "OU=Ventas,DC=empresa,DC=com" \
  -U administrator "(objectClass=user)" cn
 
# Usar ldapsearch estándar
ldapsearch -H ldap://dc.empresa.com -D "administrator@empresa.com" -W \
  -b "DC=empresa,DC=com" "(sAMAccountName=pedro)"

Atributos LDAP importantes en AD

AtributoDescripción
sAMAccountNameNombre de login (pre-Windows 2000)
userPrincipalNameNombre de login (formato UPN: user@domain)
cnNombre común
distinguishedNameDN completo del objeto
memberOfGrupos a los que pertenece
objectSidSID del objeto
uidNumberUID POSIX (RFC2307)
gidNumberGID POSIX (RFC2307)
loginShellShell de login (RFC2307)
unixHomeDirectoryDirectorio home (RFC2307)

Mapeo de UIDs/GIDs (idmap)

El mapeo de identificadores entre Windows (SIDs) y Linux (UIDs/GIDs) es fundamental:

Backends idmap principales

BackendDescripciónUso
tdbMapeo almacenado en TDB localBackend general para dominios de confianza
ridCalcula UID/GID a partir del RIDPredecible, sin estado, bueno para dominios de confianza
adLee atributos RFC2307 del ADRequiere atributos POSIX en AD
autoridAsignación automática basada en RIDSimple, automático, bueno para entornos multidominio
ldapLee mapeos de un servidor LDAPPara entornos con LDAP independiente

Configuración de idmap en smb.conf

[global]
# Rango general para dominios desconocidos
idmap config * : backend = tdb
idmap config * : range = 10000-19999
 
# Rango para el dominio propio
idmap config EMPRESA : backend = rid
idmap config EMPRESA : range = 20000-99999
 
# O usar atributos RFC2307 del AD
idmap config EMPRESA : backend = ad
idmap config EMPRESA : range = 20000-99999
idmap config EMPRESA : schema_mode = rfc2307

Para el examen: Conocer los diferentes backends idmap y cuándo usar cada uno. rid es predecible y no requiere datos adicionales en AD. ad requiere atributos RFC2307 pero permite control preciso.

Unidades organizativas (OUs)

# Crear una OU
samba-tool ou create "OU=Ventas,DC=empresa,DC=com"
 
# Crear OU anidada
samba-tool ou create "OU=Madrid,OU=Ventas,DC=empresa,DC=com"
 
# Listar OUs
samba-tool ou list
 
# Mover un usuario a una OU
samba-tool user move pedro "OU=Ventas,DC=empresa,DC=com"
 
# Eliminar una OU
samba-tool ou delete "OU=Ventas,DC=empresa,DC=com"

Esquema de Active Directory

  • El esquema define los tipos de objetos y atributos disponibles en AD
  • Samba 4 implementa un esquema compatible con Windows AD
  • Las extensiones RFC2307 añaden atributos POSIX al esquema
  • El Schema Master es el único DC que puede modificar el esquema
  • Los cambios de esquema son irreversibles y se replican a todos los DCs

Resumen de conceptos clave

  • samba-tool user/group para gestión completa de usuarios y grupos AD
  • RSAT desde Windows es necesario para administración avanzada de GPOs
  • Las políticas de contraseñas se gestionan con samba-tool domain passwordsettings
  • GPOs se crean y vinculan con samba-tool gpo, pero se editan desde RSAT
  • AD es accesible vía LDAP estándar (ldbsearch, ldapsearch)
  • idmap mapea SIDs a UIDs/GIDs con backends: tdb, rid, ad, autorid
  • Las OUs organizan objetos jerárquicamente dentro del dominio
  • RFC2307 permite almacenar atributos POSIX directamente en AD

Trampas del examen

Errores comunes y distinciones criticas que LPI suele evaluar en este subtema:

  • samba-tool user create vs smbpasswd -asamba-tool user create es para dominios AD (crea usuario en el directorio LDAP de AD). smbpasswd -a es para usuarios locales Samba (requiere usuario UNIX previo). Usar smbpasswd en un AD DC es incorrecto.
  • Politica de complejidad de contraseñas AD — Las contraseñas deben cumplir requisitos de complejidad (mayusculas, minusculas, numeros, caracteres especiales, minimo 7 caracteres). Si samba-tool user create falla, la causa suele ser que la contraseña no cumple la politica.
  • PSO (Fine-Grained Password Policy) vs politica global — La politica global aplica a todos. Las PSO aplican a grupos especificos con mayor prioridad. Las preguntas suelen presentar escenarios donde un usuario tiene una PSO diferente a la politica global.
  • idmap backend rid vs ad vs autoridrid calcula UID/GID algoritmicamente (predecible, sin datos extra en AD). ad lee atributos RFC2307 de AD (requiere uidNumber/gidNumber configurados). autorid asigna automaticamente rangos por dominio. Confundir cuando usar cada uno es trampa clasica.
  • ldbsearch vs ldapsearchldbsearch -H ldap://localhost consulta el LDAP de Samba usando su propia libreria LDB. ldapsearch es la herramienta LDAP estandar. Ambos funcionan contra el AD de Samba pero con sintaxis diferente.
  • Grupos Security vs Distribution — Los grupos Security se usan para asignar permisos (tienen SID). Los grupos Distribution son solo para listas de correo. Las preguntas piden identificar el tipo correcto para cada escenario.
  • RSAT necesario para GPOs complejassamba-tool gpo puede crear y vincular GPOs, pero la edicion del contenido (configuraciones de registro, scripts) requiere RSAT desde Windows. Esta limitacion es pregunta frecuente.
  • sAMAccountName vs userPrincipalNamesAMAccountName es el nombre pre-Windows 2000 (formato DOMINIO\usuario). userPrincipalName es formato UPN (usuario@dominio.com). Las preguntas LDAP suelen pedir buscar por uno u otro atributo.
  • OUs y samba-tool user move — Los usuarios se crean en el contenedor Users por defecto, no en una OU. Moverlos a OUs requiere samba-tool user move. Las GPOs se vinculan a OUs, no al contenedor Users por defecto.