6.2. Integración de Linux en Active Directory¶
En este apartado integramos Linux en Active Directory para obtener autenticación y autorización centralizada usando el método recomendado en 2025: realmd + sssd. Se cubren Ubuntu 22.04 y 24.04, con pasos, verificación, uso de grupos de AD (sudo y control de acceso) y consejos de resolución de problemas.
## 6.2.1. Conceptos y requisitos
- DNS: el servidor Linux debe resolver el dominio AD (ej.:
empresa.local) y al DC. - Hora: sincronización NTP con el DC. Kerberos falla si hay desfases de >5 min.
- Red: conectividad con LDAP/Kerberos/SMB (puertos 88, 389/636, 445, 464, etc.).
- Cuenta: usuario con permisos para unir equipos al dominio (p. ej.
Administrador).
## 6.2.2. Método moderno recomendado: realmd + sssd
realmd automatiza la detección del dominio y la unión vía Kerberos/LDAP. sssd gestiona cachés de identidad, NSS/PAM y el acceso. Es la vía más sencilla y limpia para Ubuntu 22.04/24.04.
## 6.2.3. Instalación de paquetes (Ubuntu 22.04/24.04)
bash
sudo apt update
sudo apt install -y realmd sssd sssd-tools adcli samba-common-bin oddjob oddjob-mkhomedir packagekit
Verifica que el DNS apunta al DC y que resuelves el dominio:
bash
resolvectl status | grep -E "DNS|Current DNS Server" || cat /etc/resolv.conf
host dc1.empresa.local
host empresa.local
Sincroniza hora (si procede):
bash
timedatectl set-ntp true
timedatectl
## 6.2.4. Descubrir el dominio y unir el equipo
Descubrir dominio:
bash
realm discover empresa.local
Unir al dominio (te pedirá contraseña del usuario con permisos):
bash
sudo realm join empresa.local -U Administrador
Comprobar unión:
bash
realm list
klist
Nota: si tu dominio usa mayúsculas en el REALM (ej. EMPRESA.LOCAL), realmd lo detecta automáticamente.
## 6.2.5. Configurar sssd y creación automática de home
Tras un join correcto, sssd queda habilitado. Para crear el directorio home en el primer login:
bash
echo 'session required pam_mkhomedir.so skel=/etc/skel/ umask=0077' | sudo tee /etc/pam.d/common-session-local
sudo systemctl restart sssd
Opcional: ajustes habituales en /etc/sssd/sssd.conf (si necesitas personalizar). Ejemplo mínimo:
```ini [sssd] services = nss, pam config_file_version = 2 domains = empresa.local
[domain/empresa.local] use_fully_qualified_names = False cache_credentials = True fallback_homedir = /home/%u ```
Aplica permisos y reinicia:
bash
sudo chmod 600 /etc/sssd/sssd.conf
sudo systemctl enable --now sssd
## 6.2.6. Inicio de sesión con usuarios del dominio
Pruebas rápidas de identidad:
bash
id alumno1@empresa.local
getent passwd alumno1
getent group "Domain Users"
Si use_fully_qualified_names = False, podrás referirte a usuarios como alumno1 en vez de alumno1@empresa.local.
Prueba de login (SSH o consola):
bash
ssh alumno1@linux.empresa.local
# o login local con TTY
Verifica que se crea /home/alumno1 y que el grupo primario coincide con AD.
## 6.2.7. Uso de grupos de AD en Linux
- Sudo para un grupo de AD (administradores de Linux):
bash
echo '%LinuxAdmins ALL=(ALL) NOPASSWD:ALL' | sudo tee /etc/sudoers.d/ad-linux-admins
sudo visudo -cf /etc/sudoers.d/ad-linux-admins
- Restringir acceso a la máquina solo a un grupo AD (ej.
LinuxUsers) consssd:
Añade a /etc/sssd/sssd.conf en la sección del dominio:
ini
access_provider = simple
simple_allow_groups = LinuxUsers
Reinicia:
bash
sudo systemctl restart sssd
- Permisos en carpetas vía grupos AD (ejemplo):
bash
sudo mkdir -p /srv/proyecto
sudo chgrp "LinuxUsers" /srv/proyecto
sudo chmod 2770 /srv/proyecto # setgid para heredar el grupo en nuevos ficheros
- Mapear grupos AD a servicios (ej. acceso a SSH). En
/etc/ssh/sshd_configpuedes:
bash
AllowGroups LinuxUsers LinuxAdmins
y recargar SSH:
bash
sudo systemctl reload ssh
## 6.2.8. Verificación y diagnóstico básico
- Estado de
sssdy logs:
bash
systemctl status sssd
sudo journalctl -u sssd -b
- Comprobación Kerberos/DNS:
bash
klist
host _ldap._tcp.empresa.local
host dc1.empresa.local
- Problemas comunes:
- Hora desincronizada → configurar NTP y repetir
realm joinsi falló. - DNS no apunta al DC → ajustar resolv.conf/NetworkManager.
- Usuario sin permisos de unión → usar cuenta con privilegios delegados o
Administrador. - Cambios en
sssd.confno aplican → confirmar permisos 600 y reiniciarsssd.
## 6.2.9. Resumen
- Método recomendado:
realmd + sssdpor simplicidad y soporte. - Ubuntu 22.04/24.04: instalar paquetes,
realm discoveryrealm join. - Acceso con usuarios/grupos de AD: sudo, control de acceso (
simple_allow_groups) y permisos en carpetas. - Verifica con
id,getent,klisty logs desssd.