222 lines
7.6 KiB
Markdown
222 lines
7.6 KiB
Markdown
## 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.
|