A vueltas con los dominios Samba

20 noviembre 2016

Hoy vuelvo a dirigirme a un público más técnico, enfocándome en informática práctica: implantación de un controlador primario de dominio compatible con Directorio Activo (AD) en un sistema Ubuntu Linux 16.04. Hay bastante material en la web acerca de este tema para que cada cual saque sus propias conclusiones, pero me he decidido a hacerlo por mi cuenta porque todos los sitios que he encontrado, al final me resultan incompletos, y encuentro errores de difícil solución. La mayoría del material de aquí proviene de https://jimshaver.net/2016/05/30/setting-up-an-active-directory-domain-controller-using-samba-4-on-ubuntu-16-04/ y de https://waytoit.wordpress.com/2014/06/08/controlador-dominio-samba-4-en-ubuntu-14-04/, ambos bastante completos.

He tenido que calentarme bastante la cabeza y probar muchas cosas hasta que he dado con la tecla, así que… al lío.

Paso previo: datos del dominio.

  • Dominio (realm): en mi caso, fedecasa.local (puede ser cualquiera)
  • Nombre netbios: FEDECASA
  • Nombre del servidor: fmpserver (en mi caso, por supuesto puede ser otro)
  • Usuario administrador: administrator@fedecasa.local (siempre será “administrator”, por defecto)

Configurando la red

En primer lugar, siempre recomiendo que preparemos la configuración de red adecuadamente:

  • Borrar (purge) el “network-manager”. En un servidor, sólo dará problemas. Es más, en general, siempre los da. Es bastante recomendable eliminarlo siempre. Si vas a necesitar wifi. siempre puedes utilizar “wicd”, que funciona bastante mejor.
  • Configurar adecuadamente el fichero /etc/interfaces:
    • IP fija, dentro de nuestra red local.
    • Añadir a la configuración de dns la ip del servidor, y meter nuestro futuro dominio de búsquedavirtualbox_ubuntu-server-smr_20_11_2016_13_03_43
  • También hemos de modificar el fichero /etc/hosts, añadiendo las rutas del dominio: virtualbox_ubuntu-server-smr_20_11_2016_13_07_54
  • En algunas fuentes recomiendan modificar también el fichero /etc/resolv.conf, añadiendo la ip del servidor como servidor de nombres, y el dominio para búsqueda. Yo no lo considero necesario, ya que lo pusimos previamente en el fichero interfaces.

 

A continuación, actualizaremos adecuadamente el sistema, para evitar inconsistencias

virtualbox_ubuntu-server-smr_20_11_2016_13_11_51

Procederemos a instalar los prerequisitos de samba:

apt-get install attr build-essential libacl1-dev libattr1-dev libblkid-dev libgnutls-dev libreadline-dev python-dev libpam0g-dev python-dnspython gdb pkg-config libpopt-dev libldap2-dev dnsutils libbsd-dev attr krb5-user docbook-xsl libcups2-dev acl ntp ntpdate winbind
Entre otras cosas, estaremos instalando Kerberos (encargado de la seguridad del dominio, entre otros). Dicha instalación nos preguntará cuál es nuestro dominio (realm) y cuáles nuestros servidores.  Pondremos nuestros datos EN MAYÚSCULAS (algunos los cogerá automáticamente del fichero interfaces)
virtualbox_ubuntu-server-smr_20_11_2016_13_17_02
y el nombre del servidor las 2 veces que nos lo pida:
virtualbox_ubuntu-server-smr_20_11_2016_13_18_34
En este punto, se recomienda reiniciar el servidor.

Configuración de NTP.

Network Time Protocol es el encargado de que nuestro sistema siempre esté en hora, tanto el servidor como los clientes. Es muy sencillo de configurar; detenemos el servicio, lo sincronizamos con los servidores de ubuntu y lo arrancamos de nuevo:
$sudo service ntp stop
$sudo ntpdate -B 0.ubuntu.pool.ntp.org
$sudo service ntp start

Configuración de Samba

En este punto es donde verdaderamente estamos configurando Samba. Para ello, primero instalamos los programas necesarios:
apt-get install samba smbclient
Ahora procedemos a promocionar nuestro Controlador de Dominio, después de “borrar” el fichero actual de configuración:
$sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.orig
$sudo samba-tool domain provision --use-rfc2307 --interactive
virtualbox_ubuntu-server-smr_20_11_2016_17_56_14
Se hace de forma interactiva, nos va preguntando una serie de datos sobre la marcha. Como se observa en la captura, los valores son los que nos da por defecto, a excepción del “dns forwarding” (ahí tendremos que poner un servidor DNS externo válido; en mi ejemplo, yo uso el de google, 8.8.8.8), y, por supuesto, la contraseña de administrador del dominio.
virtualbox_ubuntu-server-smr_20_11_2016_17_56_58
Finalmente, aparecerán los datos del dominio en pantalla, indicando que todo parece estar bien.

Prueba del servicio DNS

Todo servicio de directorio lleva asociada una parte de resolución de nombres o DNS. Vamos a comprobar que en nuestro caso funciona todo correctamente.
En primer lugar, quitamos el DNS externo de nuestra configuración de red (fichero interfaces)
virtualbox_ubuntu-server-smr_20_11_2016_18_15_53
y reinicio el servidor.
Una vez reiniciado, comprobamos que funciona la resolución de nombres mediante los siguientes comandos:
$ host -t SRV _ldap._tcp.fedecasa.local
$ host -t SRV _kerberos._udp.fedecasa.local
$ host -t A fmpserver.fedecasa.local
virtualbox_ubuntu-server-smr_20_11_2016_18_20_23
… y si la salida es similar a nuestra captura, significa que por ahora vamos bien.

Configuración de Kerberos

Samba, de forma automática, crea un fichero de configuración para Kerberos, pero no se ubica en su sitio. Para que funcione, hemos de “eliminar” el fichero que viene por defecto y sustituirlo por el generado por Samba. Lo que hacemos es  cambiar de nombre el original y enlazar en el sitio “bueno” el de samba, con el fin de que si volvemos a cambiar samba, se actualice sin más.
$sudo mv /etc/krb5.conf /etc/krb5.conf.orig
$sudo ln -sf /var/lib/samba/private/krb5.conf /etc/krb5.conf
Para comprobar que todo funciona correctamente, iniciaremos sesión en Kerberos:
$kinit administrator@FEDECASA.LOCAL
virtualbox_ubuntu-server-smr_20_11_2016_18_37_18
Sorpresa: algunas veces dará error. Por ejemplo, en mi caso. ¿Por qué?
Después de mucho investigar, di con la razón: mi dominio acaba en .”LOCAL”. Cuando ocurre esto, tenemos dos opciones: cambiar el nombre del dominio, o modificar el fichero /etc/nsswitch.conf, cambiando el orden en que se “buscan” los equipos a través del dominio. En la línea “hosts” pondrá:
hosts: files mdns4_minimal [NOTFOUND=return] dns
Cambiamos para que ponga “dns” antes que [NOTFOUND…], guardamos y reiniciamos.
virtualbox_ubuntu-server-smr_20_11_2016_18_37_55
Volvemos a comprobar el kinit y veremos que ahora sí va, nos pedirá la contraseña de administrador y se la daremos. Con ello ya tendríamos iniciada la sesión del usuario “administrator” en nuestro dominio Kerberos. A continuación, con el comando “klist” nos muestra esa sesión activa.
virtualbox_ubuntu-server-smr_20_11_2016_18_40_57
Como mera precaución extra, comprobaremos también que Samba funciona y ha compartido las carpetas “netlogon” y “sysvol”, imprescindibles para el correcto funcionamiento de AD, mediante el comando smbclient:
$sudo smbclient -L fmpserver.fedecasa.local -U%
sudo smbclient //localhost/netlogon -U 'administrator'
Al final de todo esto, vemos como habremos iniciado sesión en nuestro dominio con el usuario “administrator”.
virtualbox_ubuntu-server-smr_20_11_2016_18_47_11

Clientes Windows

Una vez instalado, vamos a probarlo con clientes nativos de AD. Este punto se haría exactamente igual que para cualquier dominio Windows Server, así que no comentaré mucho al respecto. Podéis verlo paso a paso aquí: http://somebooks.es/capitulo-5-clientes-del-dominio-en-windows-server-2012-r2/2/
Al final, tendremos algo así:
virtualbox_win10_20_11_2016_19_04_46

Clientes Linux

También podemos utilizar clientes Linux con nuestro nuevo AD. Tampoco me voy a extender mucho en esta parte, para ello podemos encontrar distintas alternativas:

Para más adelante…

Hasta ahora hemos conseguido mucho: configurar un PDC compatible con Windows Server en un equipo Linux, y dar de alta clientes multiplataforma. Pero todavía quedan bastantes cosas en el tintero, que darán para posteriores posts:

  • Instalación de RSAT para administrar nuestro AD como si estuviéramos en un sistema Windows
  • Creación de perfiles móviles de usuario,  tanto en clientes Windows como en Linux
  • … y más cosas que se nos vayan ocurriendo.

¡Que aproveche!

by-nc-sa.eu_-300x104

Anuncios

2 comentarios to “A vueltas con los dominios Samba”

  1. Luciano Borrego said

    Muchas gracias. Estupendo manual.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: