7.6 KiB
Instalación y Configuración de Samba4 como Miembro de Dominio AD en Debian 12
Esta guía te mostrará cómo instalar y configurar Samba4 en un servidor Debian 12 para que funcione como miembro de un dominio de Active Directory (AD) existente. 💻
1. Prerrequisitos
Antes de comenzar, asegúrate de que tu sistema Debian 12 cumple con los siguientes requisitos:
* Sistema Actualizado: Asegúrate de que tu sistema esté completamente actualizado.
apt install mc apt ethtool figlet htop ccze curl acl -y
apt update && apt upgrade -y
* Dirección IP Estática: Configura una dirección IP estática para tu servidor Debian. Puedes editar el archivo `/etc/network/interfaces`
* Hostname Configurado: Establece un nombre de host adecuado para tu servidor. Edita `/etc/hostname` y `/etc/hosts`. Reinicia si es necesario. * Configuración DNS: Es crucial que tu servidor Debian utilice el servidor DNS del controlador de dominio de Active Directory. Edita `/etc/resolv.conf` y añade:
search eldia.net
nameserver 192.168.4.12
nameserver 192.168.4.248
**Nota:** Si usas NetworkManager o `resolvconf`, puede que necesites configurar el DNS a través de esas herramientas para que los cambios persistan.
* **Sincronización de Hora (timesyncd): editamos la configuración
mcedit /etc/systemd/timesyncd.conf
NTP=zeus.eldia.net
NTP=baco.eldia.net
RootDistanceMaxSec=20
habilitamos la configuración para que se sincronice solo
timedatectl set-ntp true
reiniciamos el servicios
systemctl restart systemd-timesyncd.service
vemos si está sincronizado luego de reiniciar el servicio
timedatectl status
* ACLs Habilitadas: Verifica que los sistemas de archivos donde residirán los datos de Samba tengan las ACLs (Listas de Control de Acceso) habilitadas. Usualmente, `ext4` las tiene por defecto. Puedes verificarlo en `/etc/fstab`.
2. Instalación de Paquetes Necesarios
Instala Samba y los paquetes relacionados para la integración con Active Directory y Kerberos:
apt install acl samba krb5-user winbind libpam-winbind libnss-winbind -y
Configuración de Kerberos Haz una copia de seguridad del archivo de configuración original y luego edita /etc/krb5.conf
mv /etc/krb5.conf /etc/krb5.conf.orig
mcedit /etc/krb5.conf
[libdefaults]
default_realm = ELDIA.NET
dns_lookup_realm = true
dns_lookup_kdc = true
# The following krb5.conf variables are only for MIT Kerberos.
kdc_timesync = 1
ccache_type = 4
forwardable = true
proxiable = true
rdns = false
# The following libdefaults parameters are only for Heimdal Kerberos.
fcc-mit-ticketflags = true
[realms]
ELDIA.NET = {
kdc = ZEUS
kdc = BACO
admin_server = ZEUS
}
[domain_realm]
.eldia.net = ELDIA.NET
eldia.net = ELDIA.NET
3. Configuración de Samba (`smb.conf`)
Haz una copia de seguridad del archivo de configuración original y luego edita `/etc/samba/smb.conf`:
mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
mcedit /etc/samba/smb.conf
Añade la siguiente configuración básica, ajustando los valores (`MIDOMINIO`, `MIDOMINIO.LOCAL`, `SERVIDORDEBIAN`) a tu entorno:
[global]
security = ads
realm = ELDIA.NET
workgroup = ELDIA
idmap uid = 10000-20000
idmap gid = 10000-20000
winbind enum users = yes
winbind enum groups = yes
template homedir = /home/%D/%U
template shell = /bin/bash
client use spnego = yes
client ntlmv2 auth = yes
encrypt passwords = yes
winbind use default domain = yes
restrict anonymous = 2
kerberos method = secrets and keytab
winbind refresh tickets = true
# usa atributos extendidos para ACL
vfs objects = acl_xattr
# hereda ACL de la carpeta padre
map acl inherit = Yes
store dos attributes = Yes
# Ejemplo de recurso compartido (opcional)
#[armado]
# comment = Armado
# path = /mnt/armado
# inherit acls = yes
# inherit permissions = yes
# browseable = yes
# read only = no
# create mask = 0775
# directory mask = 0775
# hide unreadable = Yes
# access based share enum = Yes
Explicación de algunas opciones:
workgroup: Tu nombre de dominio NetBIOS (generalmente la primera parte de tu dominio DNS).
realm: Tu nombre de dominio DNS completo en mayúsculas.
security = ads: Indica que Samba usará Active Directory para la autenticación.
idmap config …: Configura cómo se mapean los SIDs de Windows a los UIDs/GIDs de Linux. `rid` es comúnmente usado para miembros de dominio.
winbind …: Opciones para el servicio `winbind`, que maneja la comunicación con AD.
template homedir: Define dónde se crearán los directorios de inicio para los usuarios del dominio.
4. Unirse al Dominio
Antes de unirte, detén los servicios de Samba y Winbind:
systemctl stop smbd nmbd winbind
systemctl disable smbd nmbd winbind
Ahora, únete al dominio usando el comando `net`. Necesitarás las credenciales de un administrador del dominio de AD:
net ads join -U caronte
Se te pedirá la contraseña del administrador. Si todo va bien, verás un mensaje indicando que te has unido al dominio ‘ELDIA’.
5. Configuración de Name Service Switch (`nsswitch.conf`)
Edita `/etc/nsswitch.conf` para que el sistema pueda resolver usuarios y grupos a través de `winbind`:
mcedit /etc/nsswitch.conf
Modifica las líneas `passwd` y `group` para que se vean así:
passwd: compat winbind
group: compat winbind
shadow: compat
gshadow: files
6. Configuración de PAM
Configura el Módulo de Autenticación Pluggable (PAM) para permitir inicios de sesión de usuarios de dominio y crear automáticamente sus directorios de inicio:
pam-auth-update
Asegúrate de que las opciones `Create home directory on login` y `Winbind NT/Active Directory/Kerberos authentication` estén seleccionadas (usa la barra espaciadora para seleccionar/deseleccionar y Tab para moverte).
configuracion de PAM /etc/pam.d/common-session
mcedit /etc/pam.d/common-session
Agregar esta linea antes comentario final
session optional pam_mkhomedir.so
7. Iniciar y Habilitar Servicios
Ahora, inicia y habilita los servicios de Samba y Winbind para que se inicien automáticamente al arrancar:
systemctl unmask smbd nmbd winbind
systemctl enable smbd nmbd winbind
systemctl start smbd nmbd winbind
8. Verificación ✅
Es hora de verificar que todo funciona correctamente:
* Verificar la unión al dominio:
net ads testjoin
Deberías ver "Join is OK".
* Verificar el estado de Winbind:
wbinfo --ping-dc
Deberías ver "checking the NETLOGON for domain[ELDIA] dc connection to "BACO.eldia.net" succeeded".
* Listar usuarios del dominio:
wbinfo -u
* Listar grupos del dominio:
wbinfo -g
* Obtener información de un usuario específico:
getent passwd "ELDIA\comsat"
* Obtener información de un grupo específico:
getent group "ELDIA\tecnica"
Si puedes ver usuarios y grupos de tu dominio AD, ¡felicitaciones! 🎉 Tu servidor Debian 12 ahora es miembro del dominio de Active Directory. Ahora puedes configurar recursos compartidos y asignar permisos utilizando usuarios y grupos de AD.