Samba como un controlador de dominio de Active Directory

Ubuntu 14.04 y 16.04

Importante:

Instalación estándar del sistema.

En selección de programas marcamos ssh

Configurar el archivo sshd_conf para permitir el acceso como root si queremos trabajar como root en las configuraciones ( no es necesario, se puede usar el comando sudo para realizar todas las tareas)

Editamos el archivo /etc/ssh/sshd_config para habilitar el acceso como root desde ssh

# sudo nano /etc/ssh/sshd_config


En el la linea PermitRootLogin escribimos yes



 

#Antes de empezar, preparar los archivos hosts e interfaces

$ sudo nano /etc/hosts

 

En la linea 127.0.1.1 ubuntudc la modificamos añadiendo el dominio y nombre de maquina al final de la linea, añadiendo una linea mas con la direccón IP fija que daremos al equipo de la siguiente manera:

127.0.0.1 localhost
127.0.1.1 ubuntudc.versalles.local ubuntudc
192.168.1.7 ubuntudc.versalles.local ubuntudc

Editamos el archivo interfaces:

$ sudo nano /etc/network/interfaces

Establecemos la direccion IP fija que necesitemos o de la que dispongamos.

auto eth0
iface eth0 inet static
address 192.168.1.7/24
gateway 192.168.1.1

Finalmente modificamos el archivo /etc/resolvconf/resolv.conf.d/head para añadir los DNS que necesitamos para la comunicación con internet.

Nota: Al establecer la dirección IP fija del servidor, perderemos la referencia a los DNS´s que nos proporciona nuestro servidor DHCP.

Editamos el archivo /etc/resolvconf/resolv.conf.d/head yAñadimos manualmete los servidores que queramos:

$ sudo nano /etc/resolvconf/resolv.conf.d/head

nameserver 8.8.8.8
nameserver 8.8.4.4

Comprobamos la conexion a internet reiniciando el equipo y ejecutando el comand ping a una web que este activa, ejemplo: # ping www.google.es

# ping www.j20003.es

Instalar paquetes necesarios:

#sudo apt-get install samba smbclient dialog krb5-user krb5-config winbind libpam-winbind libnss-winbind dialog -y

Nota: dialog se instala para gestionar de forma sencilla herramientas de gestión de samba con un script.

Configurando la autenticación de Kerberos, si hemos configurado bien el archivo /etc/hostname nos aparecera por defecto el nombre en mayusculas del dominio:

VERSALLES.LOCAL

Configurando la autenticación de Kerberos:
Introduzca los nombres de los servidores Kerberos en el reino VERSALLES.LOCAL de Kerberos, separados por espacios (solo tenmos uno) lo escribimos en minusculas y el nombre del domnio debe ser el mismo que VERSALLES.LOCAL o el dominio de nuestra elección

Servidores de Kerberos para su reino: versalles.local Configurando la autenticación de Kerberos
Introduzca el nombre del servidor administrativo (cambio decontraseña) para el reino VERSALLES.LOCAL de Kerberos.
Servidor administrativo para su reino de Kerberos:

Usar nombre de la maquina escrito en el archivo hostname.
ubuntudc

Aprovisionar Samba AD DC

Cambiar el nombre o eliminar la configuración original de samba.

Paso necesario antes de aprovisionar Samba AD. Creará un nuevo archivo de configuración y dará errores si el archivo smb.conf no se ha renombrado o borrado previamente.

$ sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

Iniciar el aprovisionamiento del dominio de forma interactiva emitiendo el siguiente comando:

$ sudo samba-tool domain provision --use-rfc2307 --interactive


Nos dará por defecto las opciones que ya rellenamos en la instalacion de los paquetes necesarios y finalmente no pedira contraseña para el administrador del dominio.

Server Role: active directory domain controller
Hostname: ubuntudc
NetBIOS Domain: VERSALLES
DNS Domain: versalles.local
DOMAIN SID: S-1-5-21-1115370613-3296192123-3381153399

Podeis ver en la imagen que nos informa que ha creado un archivo krb5.conf para kebreros. Cambie el nombre o elimine el archivo de configuración principal de Kerberos del directorio /etc y reemplácelo usando un enlace simbólico con el archivo Kerberos generado por Samba.

la ruta /var/lib/samba/private. por emitiendo los siguientes comandos:

$ sudo mv /etc/krb5.conf /etc/krb5.conf.bak
$ sudo cp /var/lib/samba/private/krb5.conf /etc/

Reiniciamos el servidor y comprobabos el estado de samba-ac-dc

$ service samba-ac-dc status

Podemos verificar el funcionamiento del servidor con:

$ sudo samba-tool domain level show

Resumen comandos: DominioDesdeCeroResumenComandos

Para gestión del dominio usaremos un script para usar herramientas samba-tool y pdbedit, de una forma más sencilla usando la herramienta de para servidores Linux Dialog que permite crear cuadros de dialogo en el terminal.

Escribí este script para facilitar el uso de domain-controller de turnkeylinux.org.

En esta versión de Ubuntu no están implementadas todas las opciones samba-tool por lo que tuve que adaptar la gestión de los equipos del dominio con pdbedit.

Dejo aquí enlace del archivo comprimido para que se pueda estudiar el codigo.
turnkey-dc-conf