Files
wiki-data/sistemas/servidores/linux/samba4_miembro_ad.md

222 lines
7.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 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.