## 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.