Cree una infraestructura de Active Directory con Samba4 en Ubuntu - Parte 1


Samba es un software gratuito de código abierto que proporciona una interoperabilidad estándar entre el sistema operativo Windows y los sistemas operativos Linux/Unix.

Samba puede funcionar como un servidor de archivos e impresión independiente para clientes de Windows y Linux a través del conjunto de protocolos SMB/CIFS o puede actuar como un controlador de dominio de Active Directory o unirse a un reino como miembro de dominio. El nivel de bosque y dominio de AD DC más alto que Samba4 puede emular actualmente es Windows 2008 R2.

La serie se titulará Configuración del controlador de dominio de Active Directory Samba4, que cubre los siguientes temas para Ubuntu, CentOS y Windows:

Este tutorial comenzará explicando todos los pasos que debe realizar para instalar y configurar Samba4 como controlador de dominio en Ubuntu 16.04 y Ubuntu 14.04.

Esta configuración proporcionará un punto de administración central para usuarios, máquinas, recursos compartidos de volumen, permisos y otros recursos en una infraestructura mixta de Windows y Linux.

  1. Instalación del servidor Ubuntu 16.04.
  2. Instalación del servidor Ubuntu 14.04.
  3. Una dirección IP estática configurada para su servidor AD DC.

Paso 1: Configuración inicial para Samba4

1. Antes de continuar con la instalación de Samba4 AD DC, primero ejecutemos algunos pasos requeridos previamente. Primero asegúrese de que el sistema esté actualizado con las últimas características de seguridad, kernels y paquetes emitiendo el siguiente comando:

$ sudo apt-get update 
$ sudo apt-get upgrade
$ sudo apt-get dist-upgrade

2. A continuación, abra el archivo machine/etc/fstab y asegúrese de que su sistema de archivos de particiones tenga habilitadas las ACL como se ilustra en la siguiente captura de pantalla.

Por lo general, los sistemas de archivos modernos comunes de Linux como ext3, ext4, xfs o btrfs son compatibles y tienen ACL habilitadas de forma predeterminada. Si ese no es el caso con su sistema de archivos, simplemente abra el archivo/etc/fstab para editar y agregue la cadena acl al final de la tercera columna y reinicie la máquina para aplicar los cambios.

3. Finalmente configure el nombre de host de su máquina con un nombre descriptivo, como adc1 usado en este ejemplo, editando el archivo/etc/hostname o emitiendo.

$ sudo hostnamectl set-hostname adc1

Es necesario reiniciar después de haber cambiado el nombre de su máquina para poder aplicar los cambios.

Paso 2: Instale los paquetes necesarios para Samba4 AD DC

4. Para transformar su servidor en un controlador de dominio de Active Directory, instale Samba y todos los paquetes requeridos en su máquina emitiendo el siguiente comando con privilegios de root en una consola.

$ sudo apt-get install samba krb5-user krb5-config winbind libpam-winbind libnss-winbind

5. Mientras se ejecuta la instalación, el instalador hará una serie de preguntas para configurar el controlador de dominio.

En la primera pantalla, deberá agregar un nombre para el REALM predeterminado de Kerberos en mayúsculas. Ingrese el nombre que usará para su dominio en mayúsculas y presione Enter para continuar.

6. Luego, ingrese el nombre de host del servidor Kerberos para su dominio. Use el mismo nombre que para su dominio, con minúsculas esta vez y presione Enter para continuar.

7. Por último, especifique el nombre de host del servidor administrativo de su dominio Kerberos. Use el mismo que su dominio y presione Enter para finalizar la instalación.

Paso 3: aprovisione Samba AD DC para su dominio

8. Antes de comenzar a configurar Samba para su dominio, primero ejecute los siguientes comandos para detener y deshabilitar todos los demonios de samba.

$ sudo systemctl stop samba-ad-dc.service smbd.service nmbd.service winbind.service
$ sudo systemctl disable samba-ad-dc.service smbd.service nmbd.service winbind.service

9. A continuación, cambie el nombre o elimine la configuración original de samba. Este paso es absolutamente necesario antes de aprovisionar Samba AD porque en el momento de aprovisionar Samba creará un nuevo archivo de configuración desde cero y arrojará algunos errores en caso de que encuentre un archivo smb.conf antiguo.

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

10. Ahora, inicie el aprovisionamiento del dominio de forma interactiva emitiendo el siguiente comando con privilegios de root y acepte las opciones predeterminadas que le proporciona Samba.

Además, asegúrese de proporcionar la dirección IP de un reenviador de DNS en sus instalaciones (o externo) y elija una contraseña segura para la cuenta de administrador. Si elige una contraseña semanal para la cuenta de administrador, la provisión del dominio fallará.

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

11. Finalmente, 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 recién generado por Samba ubicado en/var/lib/samba/private path emitiendo los siguientes comandos:

$ sudo mv /etc/krb5.conf /etc/krb5.conf.initial
$ sudo ln -s /var/lib/samba/private/krb5.conf /etc/

12. Inicie y habilite los demonios del controlador de dominio de Active Directory de Samba.

$ sudo systemctl start samba-ad-dc.service
$ sudo systemctl status samba-ad-dc.service
$ sudo systemctl enable samba-ad-dc.service

13. Luego, use el comando netstat para verificar la lista de todos los servicios requeridos por un Active Directory para ejecutarse correctamente.

$ sudo netstat –tulpn| egrep ‘smbd|samba’

Paso 4: Configuraciones finales de Samba

14. En este momento, Samba debería estar completamente operativo en sus instalaciones. El nivel de dominio más alto que está emulando Samba debería ser Windows AD DC 2008 R2.

Puede verificarse con la ayuda de la utilidad samba-tool.

$ sudo samba-tool domain level show

15. Para que la resolución de DNS funcione localmente, debe abrir la configuración de la interfaz de red de edición final y apuntar la resolución de DNS modificando la instrucción dns-nameservers a la dirección IP de su controlador de dominio (use 127.0.0.1 para la resolución de DNS local) y declaración dns-search para apuntar a su reino.

$ sudo cat /etc/network/interfaces
$ sudo cat /etc/resolv.conf

Cuando termine, reinicie su servidor y eche un vistazo a su archivo de resolución para asegurarse de que apunte a los servidores de nombres DNS correctos.

16. Por último, pruebe la resolución de DNS mediante la emisión de consultas y pings contra algunos registros cruciales de AD DC, como se muestra en el siguiente extracto. Reemplace el nombre de dominio en consecuencia.

$ ping -c3 tecmint.lan         #Domain Name
$ ping -c3 adc1.tecmint.lan   #FQDN
$ ping -c3 adc1               #Host

Ejecute las siguientes consultas contra el controlador de dominio de Active Directory de Samba.

$ host -t A tecmint.lan
$ host -t A adc1.tecmint.lan
$ host -t SRV _kerberos._udp.tecmint.lan  # UDP Kerberos SRV record
$ host -t SRV _ldap._tcp.tecmint.lan # TCP LDAP SRV record

17. Además, verifique la autenticación Kerberos solicitando un ticket para la cuenta de administrador de dominio y enumere el ticket almacenado en caché. Escriba la parte del nombre de dominio en mayúsculas.

$ kinit [email protected]
$ klist

¡Eso es todo! Ahora tiene un controlador de dominio AD completamente operativo instalado en su red y puede comenzar a integrar máquinas Windows o Linux en Samba AD.

En la próxima serie, cubriremos otros temas de Samba AD, como cómo administrar su controlador de dominio desde la línea de comandos de Samba, cómo integrar Windows 10 en el nombre de dominio y administrar Samba AD de forma remota mediante RSAT y otros temas importantes.