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

7.6 KiB
Raw Blame History

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.