En el vasto universo de la administración de sistemas, la gestión centralizada de usuarios, grupos y recursos es una piedra angular. Microsoft Active Directory ha sido durante mucho tiempo el estándar de oro en entornos empresariales, pero ¿qué pasa si no quieres depender exclusivamente de soluciones propietarias o si buscas una alternativa robusta y de código abierto para tu red? ¡Ahí es donde entra en juego Samba4!
Este artículo es tu boleto dorado para transformar un humilde servidor Linux en un potente Controlador de Dominio Active Directory completamente funcional. Olvídate de licencias costosas y restricciones. Con Samba4, tienes el poder de construir tu propia infraestructura de red, ideal tanto para pequeñas y medianas empresas (PyMES) como para entornos de laboratorio en casa (homelabbers) que buscan experimentar y aprender. Prepárate para dominar tu red como nunca antes. ¿Listos para el viaje? ¡Vamos a ello! 🚀
¿Por qué Samba4 como Controlador de Dominio? 🤔
Samba es una implementación de código abierto de los servicios de archivo e impresión de Windows. Pero con la versión 4, Samba dio un salto cuántico, añadiendo la capacidad de actuar como un Controlador de Dominio completo de Active Directory. Esto significa que puedes gestionar usuarios, equipos, políticas de grupo (GPO), DNS y mucho más, todo compatible con clientes Windows, macOS y Linux.
Sus principales ventajas residen en la reducción de costes (adiós a las licencias de Windows Server), la flexibilidad de elegir tu distribución Linux preferida y la seguridad inherente al software de código abierto. Es una solución ideal para aquellos que buscan optimizar recursos sin sacrificar funcionalidad.
Requisitos Previos: Prepara el Terreno 🛠️
Antes de sumergirnos en la configuración, necesitamos asegurar que tu entorno esté listo. Aquí te detallo lo que necesitarás:
- Un Servidor Linux: Se recomienda una distribución de servidor como Debian 11/12, Ubuntu Server 20.04/22.04 o CentOS Stream 8/9 (o sus derivados como AlmaLinux/Rocky Linux). Para este tutorial, asumiremos un sistema basado en Debian/Ubuntu.
- Recursos Suficientes: Al menos 2 GB de RAM y 2 núcleos de CPU son un buen punto de partida. Si tienes muchos usuarios o un uso intensivo, necesitarás más. Un disco duro de 20 GB suele ser suficiente para el sistema operativo y el servicio AD.
- Dirección IP Estática: Es crucial que tu futuro controlador de dominio tenga una IP fija.
- Conocimientos Básicos de Linux: Familiaridad con la línea de comandos, edición de archivos de configuración y comandos de gestión de paquetes (apt).
- Acceso Root o Sudo: Para realizar todas las operaciones de instalación y configuración.
Paso 1: Configuración Inicial del Servidor Linux 💻
Una base sólida es clave. Empecemos por preparar tu sistema operativo.
1.1. Actualizar el Sistema
Abre tu terminal y ejecuta:
sudo apt update && sudo apt upgrade -y
Esto asegura que todos tus paquetes estén al día, previniendo posibles conflictos.
1.2. Configurar una Dirección IP Estática
Tu controlador de dominio necesita una dirección IP fija para ser accesible de forma fiable. Edita el archivo de configuración de red. Para Ubuntu Server (Netplan), sería algo así:
sudo nano /etc/netplan/00-installer-config.yaml
Ajusta el contenido a tus valores:
network: ethernets: enp0s3: # Reemplaza con el nombre de tu interfaz de red dhcp4: no addresses: [192.168.1.10/24] # Tu IP y máscara de subred routes: - to: default via: 192.168.1.1 # Tu puerta de enlace nameservers: addresses: [192.168.1.10, 8.8.8.8] # ¡Importante! Primero tu propia IP, luego un DNS público version: 2
Aplica los cambios:
sudo netplan apply
1.3. Configurar el Nombre del Host (Hostname)
El nombre de host será el nombre de tu servidor. Elige uno descriptivo, como `dc01`.
sudo hostnamectl set-hostname dc01.tudominio.local
Asegúrate de que este nombre se resuelva correctamente en el archivo `/etc/hosts`:
sudo nano /etc/hosts
Añade una línea similar a esta, utilizando tu IP y el nombre de dominio completo (FQDN):
127.0.0.1 localhost 192.168.1.10 dc01.tudominio.local dc01
La línea `127.0.0.1 localhost` debe permanecer. La segunda línea es crucial para que el servidor se reconozca a sí mismo correctamente. Reinicia para aplicar los cambios de hostname si es necesario.
Paso 2: Instalación de Samba y Dependencias 📦
Con la base lista, es hora de instalar los paquetes necesarios para Samba. El paquete principal es `samba`.
sudo apt install samba krb5-user winbind ntp -y
- `samba`: El servidor Samba en sí.
- `krb5-user`: Herramientas de cliente Kerberos, necesarias para la autenticación en AD.
- `winbind`: Para integrar usuarios y grupos de AD en el sistema local.
- `ntp`: Fundamental para la sincronización de tiempo, crítica en Active Directory.
Durante la instalación de `krb5-user`, se te pedirá un reino Kerberos por defecto. Puedes dejarlo en blanco por ahora, ya que Samba lo configurará más tarde. Si te lo pide, puedes poner `TUDOMINIO.LOCAL` (en mayúsculas).
Paso 3: ¡A Provisionar el Dominio! 🌐
Este es el paso más emocionante: convertir tu servidor en un controlador de dominio. Antes de empezar, detén los servicios de Samba y Winbind para evitar conflictos, ya que la provisión reconfigurará todo.
sudo systemctl stop smbd nmbd winbind
sudo systemctl disable smbd nmbd winbind
También es vital eliminar cualquier configuración anterior de Samba:
sudo rm /etc/samba/smb.conf
Ahora, ejecuta el comando de provisión. ¡Presta atención a los valores!
sudo samba-tool domain provision --use-rfc2307 --interactive
El argumento `–use-rfc2307` es importante si planeas integrar clientes Linux o servicios que necesiten atributos UID/GID de UNIX en AD. `–interactive` te guiará por el proceso. Te hará las siguientes preguntas:
- Realm: El nombre de tu reino Kerberos, generalmente el nombre de dominio en MAYÚSCULAS (ej. `TUDOMINIO.LOCAL`).
- Domain: El nombre de tu dominio NetBIOS (ej. `TUDOMINIO`).
- Server Role: `dc` (Domain Controller).
- DNS Backend: `SAMBA_INTERNAL` es la opción más sencilla y recomendada para un DC primario, ya que Samba gestionará su propio DNS integrado.
- Administrator password: Establece una contraseña segura para la cuenta de Administrador de tu dominio. ¡No la olvides!
Una vez completado, Samba habrá creado toda la estructura de Active Directory y el archivo `/etc/samba/smb.conf`.
Paso 4: Configuración Final y Arranque del Servicio 🚦
Ya casi lo tienes. Necesitamos asegurar que Samba inicie correctamente y que el DNS apunte a sí mismo.
4.1. Configurar Kerberos
Durante la provisión, Samba genera un archivo `krb5.conf`. Debes asegurarte de que tu sistema lo utilice. Para ello, mueve el archivo generado por Samba a la ubicación correcta:
sudo mv /var/lib/samba/private/krb5.conf /etc/krb5.conf
4.2. Asegurar la Sincronización Horaria (NTP)
La sincronización horaria es CRÍTICA para Active Directory (tolerancia de 5 minutos). Configura tu servidor para usar a sí mismo como fuente NTP, o al menos un servidor NTP confiable.
sudo nano /etc/ntp.conf
Asegúrate de que tu servidor esté configurado para sincronizarse con otras fuentes y que tu propio DC pueda servir la hora a los clientes.
Puedes añadir:
# Permite a los clientes usar este servidor como fuente NTP restrict default kod nomodify notrap nopeer noquery restrict -6 default kod nomodify notrap nopeer noquery restrict 127.0.0.1 restrict ::1
Reinicia el servicio NTP:
sudo systemctl restart ntp
4.3. Configurar DNS para Apuntar al Propio DC
Este es un paso fundamental. Tu controlador de dominio debe apuntar a sí mismo para la resolución de nombres en el dominio. Edita `/etc/resolv.conf`:
sudo nano /etc/resolv.conf
Debe contener solo la IP de tu propio DC. Si usaste Netplan, es posible que ya esté configurado. Si no, asegúrate de que se vea así:
nameserver 192.168.1.10 # Tu IP del DC
Para evitar que NetworkManager o Netplan sobrescriban este archivo, considera deshabilitar la gestión de `resolv.conf` por parte de estos o usa un enlace simbólico, pero ten cuidado con esto si no estás familiarizado. En Ubuntu Server, la configuración de Netplan suele ser suficiente.
4.4. Habilitar y Arrancar los Servicios de Samba
Ahora, habilita y arranca el servicio `samba-ad-dc`:
sudo systemctl enable samba-ad-dc
sudo systemctl start samba-ad-dc
Verifica el estado:
sudo systemctl status samba-ad-dc
Deberías ver que está `active (running)`.
4.5. Configurar el Firewall (UFW)
Es vital permitir el tráfico necesario para Active Directory. Si usas UFW:
sudo ufw allow proto tcp from any to any port 53,88,135,137,138,139,389,445,464,3268,3269,49152:65535 comment "Active Directory"
sudo ufw allow proto udp from any to any port 53,88,137,138,389,464 comment "Active Directory"
sudo ufw enable
Asegúrate de permitir también SSH (puerto 22) si lo necesitas.
Paso 5: Pruebas Iniciales del Dominio ✅
Es momento de verificar que todo funciona como se espera. Desde tu servidor DC:
5.1. Prueba DNS
host -t SRV _ldap._tcp.tudominio.local
Deberías ver registros de servicio LDAP que apuntan a tu propio DC. Si esto falla, el DNS es tu problema principal.
5.2. Prueba de Kerberos
Obtén un ticket Kerberos para el administrador:
kinit [email protected]
Introduce la contraseña que estableciste durante la provisión. Si es exitoso, puedes verificar el ticket:
klist
La paciencia y la meticulosidad son tus mejores aliados en la configuración de un Controlador de Dominio. Un solo error en un nombre de host o una dirección IP puede generar horas de frustración. Tómate tu tiempo en cada paso.
Paso 6: Uniendo Clientes al Dominio 🤝
Con tu DC funcionando, el siguiente paso es unir tus clientes. Para clientes Windows:
- Configura DNS: En la configuración de red de tu cliente Windows, asegúrate de que el servidor DNS primario sea la dirección IP de tu Controlador de Dominio Samba4 (ej. 192.168.1.10).
- Cambia el Nombre de Equipo y Dominio:
- Ve a „Sistema” > „Acerca de” > „Cambiar el nombre de este equipo (avanzado)”.
- En la pestaña „Nombre de equipo”, haz clic en „Cambiar…”.
- Selecciona „Dominio” e introduce el nombre de tu dominio (ej. `tudominio.local`).
- Haz clic en „Aceptar”. Se te pedirá un nombre de usuario y contraseña con permisos para unir equipos al dominio (ej. `Administrator` y su contraseña).
- Reinicia: El equipo se reiniciará para aplicar los cambios.
¡Felicidades! Tu cliente Windows ahora es parte de tu dominio. Podrás iniciar sesión con usuarios del dominio y gestionar el equipo desde tu DC.
Gestión del Dominio: Tu Panel de Control 🕹️
Una vez que el dominio está en marcha, querrás gestionarlo. Puedes usar las herramientas estándar de Administración de Active Directory de Microsoft (RSAT) instaladas en un cliente Windows unido al dominio. Simplemente descarga e instala las „Herramientas de Administración Remota del Servidor” (RSAT) para tu versión de Windows.
Con RSAT, tendrás acceso a:
- Usuarios y Equipos de Active Directory (ADUC): Para crear y gestionar usuarios, grupos y equipos.
- Administración de Directivas de Grupo (GPMC): Para configurar GPOs (Group Policy Objects) y aplicar políticas de seguridad y configuración a tus usuarios y equipos.
- DNS: Para gestionar las entradas DNS de tu dominio.
Alternativamente, puedes usar la potente herramienta de línea de comandos `samba-tool` directamente en tu servidor Samba para todas estas tareas. Es especialmente útil para la automatización y scripting.
Reflexiones Finales y el Camino por Delante 💡
Montar tu propio Active Directory con Samba4 es una experiencia increíblemente gratificante y un testamento al poder del software de código abierto. Desde mi perspectiva, basada en innumerables implementaciones y años de experiencia en redes, Samba4 ha evolucionado de ser una curiosidad a una alternativa seria y viable a los controladores de dominio de Microsoft, especialmente para entornos que buscan optimizar sus inversiones sin comprometer la funcionalidad. La comunidad de Samba es activa, y la documentación, aunque a veces densa, es exhaustiva.
Por supuesto, como con cualquier tecnología, no está exenta de desafíos. La curva de aprendizaje puede ser pronunciada para quienes son nuevos en Linux y Active Directory. Sin embargo, los beneficios en términos de control, coste y comprensión profunda de tu infraestructura son inmensos. Te empodera a ser el arquitecto de tu propia red, con la libertad de adaptarla a tus necesidades exactas. Es una excelente plataforma para aprender sobre autenticación, DNS, Kerberos y políticas de grupo.
Este tutorial es un punto de partida robusto. A partir de aquí, puedes explorar temas avanzados como:
- Configuración de un segundo controlador de dominio (DC adicional).
- Integración con servicios de archivos.
- Despliegue de GPOs complejos.
- Monitorización y copias de seguridad de tu AD.
- Integración con servicios LDAP.
¡Anímate a explorar, experimentar y construir! Con Samba4, el control de tu dominio está literalmente en tus manos. ¡Feliz administración! 🛠️🌍