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