Si desea configurar un controlador de dominio a bajo costo, Samba lo hace posible. Aquí le muestro cómo.
Con la ayuda de Samba, es posible configurar su servidor Linux como un controlador de dominio. Antes estar demasiado emocionado, no estoy hablando de un controlador de dominio principal de Active Directory (PDC). Por otro lado, puede actuar como un controlador de dominio de estilo Windows NT4. Una ventaja importante de esta configuración es que ofrece la capacidad de centralizar las credenciales de usuario y máquina.
En otras palabras, si no necesita un PDC completo y está buscando simplemente centralizar el almacenamiento de credenciales, la configuración de Ubuntu Server / Samba será mucho más fácil de trabajar y se ahorrará un presupuesto considerable.
Con eso dicho, vamos a ponernos a trabajar. Quiero mostrarte una pieza de este rompecabezas bastante complejo. Esa pieza es una herramienta interactiva de Samba que le ayuda a configurar su archivo /etc/smb.conf para que su función sea de servir como un controlador de dominio.
Instalación
Lo primero que debes hacer es instalar samba y winbind. Abra una ventana de terminal y emita el siguiente comando:
sudo apt install samba libpam-winbind
Se podrían instalar varias dependencias para esta instalación; Permita que se instalen y que esté listo para iniciar la configuración.
Preparación
Antes de ejecutar samba-tool, debe asegurarse de que su archivo /etc /hosts se correlaciona correctamente con un nombre de dominio completo y la dirección IP del DC, como por ejemplo:
127.0.0.1 localhost.localdomain IP_ADDRESS_OF_SERVER localhost IP_ADDRESS_OF_SERVER SAMBADOM.EXAMPLE.NET SAMBADOM
Donde IP_ADDRESS_OF_SERVER es la dirección real de su servidor Samba. Asegúrese de que lo anterior se edita para adaptarse a las necesidades de su red.
A continuación, debe configurar el nombre de host de su servidor. De acuerdo con nuestro archivo /etc/resolv.conf anterior, nuestro nombre de host para esta configuración sería SAMBADOM. Para configurarlo, abra el archivo /etc/hostname y cámbielo en consecuencia. Una vez hecho esto, reinicie su servidor.
Una vez reiniciado el servidor, debe quitar el archivo smb.conf actual, así como cualquier archivo de base de datos Samba (archivos * .tdb y * .ldb). Para localizar los directorios que contienen estos archivos, emita los dos comandos siguientes:
smbd -b | grep "CONFIGFILE" smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR"
Usando la salida de los comandos (Figura A), ahora debería ser capaz de buscar en esos directorios y eliminar los archivos necesarios. Si esos archivos no existen, está muy bien para proseguir.
Figura A
Antes de continuar, asegúrese de que sus usuarios tengan entradas de contraseña de Samba. Esto se hace con los siguientes comandos:
smbpasswd -a USERNAME smbpasswd -e USERNAME
Donde USERNAME es el nombre del usuario existente que se agregará a Samba. Sólo se le pedirá que cree una contraseña de Samba para el primer comando (el segundo comando habilita al usuario).
Utilizando Samba Tools
Ahora es el momento de activar el comando samba-tool. Ejecutaremos esto en modo interactivo emitiendo el siguiente comando:
sudo samba-tool dominio provisión --use-rfc2307 --interactive
Al ejecutar el comando con -usr-rfc2307 habilitamos las extensiones NIS. En este momento, samba-tool le pedirá que configure las siguientes opciones:
- Realm. También se utiliza como dominio DNS de AD y se configura en el archivo de hosts. Por ejemplo: SAMBADOM.EXAMPLE.NET
- Domain. Su nombre de dominio NetBIOS del servidor Samba. NOTA: Se recomienda utilizar la primera parte del dominio DNS de AD. Por ejemplo SAMBADOM
- Server Role. Esto define el rol para el servidor. Usted querrá ir con el valor predeterminado, DC
- DNS backend. Establece el backend del DNS. Usted querrá ir con el valor predeterminado, SAMBA_INTERNAL
- DNS forwarder IP address. Si no necesita utilizar el reenvío, introduzca ninguno, de lo contrario, introduzca la dirección IP del reenviador de DNS (para obtener más información sobre el reenvío de DNS, consulte esta página de Samba Wiki)
- Contraseña de administrador. Establece la contraseña del administrador del dominio
Una vez que hayas verificado tu contraseña de administrador, samba-tool hará lo suyo y configurará Samba como un DC. A continuación, puede comprobar el archivo /etc/samba/smb.conf para realizar los cambios necesarios. Te sorprenderá lo mínimo que es el archivo smb.conf en este momento.
Eliminación del DNS ascendente
Tenemos que asegurarnos de que el DNS en el controlador de dominio señala a sí mismo. Para ello, debemos editar el archivo /etc/network/interfaces para reflejar lo siguiente (que también asegurará que la interfaz de red use una dirección IP estática):
auto INTERFACE_NAME iface INTERFACE_NAME inet static address IP_ADDRESS_FOR_SERVER netmask NETMASK gateway GATEWAY dns-nameservers IP_ADDRESS_FOR_SERVER
NOTA: Todo en TODOS LAS MAYÚSCULAS de arriba se debe configurar para cubrir sus necesidades.
Guarde este archivo y reinicie la red con el siguiente comando:
sudo service networking restart
También debe editar el archivo /etc/resolv.conf para reflejar el mismo cambio de la anterior configuración de red. En este archivo, ingresará:
nameserver IP_ADDRESS_FOR_SERVER
Donde IP_ADDRESS_FOR_SERVER es la misma dirección que usó en dns-nameservers arriba.
Configuración de Kerberos
Kerberos tiene su propio archivo de configuración que debe ser reemplazado por el archivo krb5.conf generado por el aprovisionamiento de Samba. Para ello, emita los siguientes comandos:
sudo mv /etc/krb5.conf /etc/krb5.conf.orig sudo ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
NOTA: Es posible que el archivo original de /etc/krb5.conf no exista. Si ese es el caso, simplemente emita el segundo comando desde arriba.
Listo para probar y conectar Samba
Ahora tiene todo lo que necesita para comenzar a probar y conectarse a su controlador de dominio Samba. Sin embargo, el aspecto más difícil es el de obtener su DC. Una prueba rápida para asegurarse de que todo está en funcionamiento es para emitir el comando:
smbclient -L localhost -U%
Después de introducir la contraseña de usuario de Samba, verá aparecer una conexión satisfactoria (Figura B).
Figura B
Como se puede ver, la prueba smbclient lista tanto netlogon como sysvol como acciones. Éstos se crean de forma predeterminada y deben existir en la DC para poder ser utilizados. Además, debe colocar en /var/lib/samba/sysvol/REALM/scripts todos los scripts de inicio de sesión que necesite para todos sus clientes (donde REALM es el REALM que configuró al ejecutar el comando samba-tool).
En este momento, su controlador de dominio Samba está listo para la conexión. Es posible que tenga que abrir el archivo /etc/samba/smb.conf y ajustar la configuración para satisfacer mejor sus necesidades, ya que el archivo generado por samba-tool es bastante mínimo. Sin embargo, te pondrá en el camino correcto.