Samba 4: Controlador Active Directory parte 1 de 3

por | 12 mayo, 2013

Sin duda, Active Directory es la característica más atractiva a la hora de decidirnos por Windows Server como servidor de nuestra red local. El conjunto de servicios y utilidades que ofrece para la gestión de usuarios y equipos permite una gestión tremendamente productiva, especialmente si trabajamos con clientes Windows.

Por otro lado Samba, la implementación para el mundo Linux del protocolo CFIS de Windows, permitía hasta la fecha implantar un servidor de dominio NT, que aunque permite la autenticación centralizada, quedaba muchos pasos atrás respecto las funcionalidades de cualquier Windows Server de 2003 hacia adelante. Pero, ahora la nueva versión de Samba, Samba 4, permite implementar un DC (Domain Controller) basado en Active Directory.

En este primer post, vamos a documentar la instalación de Samba 4, en este caso sobre un Ubuntu Server 12.04 y vamos a agregar un cliente al dominio. En los posts siguientes, seguiremos con la configuración de nuestro directorio activo y con el despliegue de directivas de grupo.

En primer lugar configuraremos la  red de nuestro futuro servidor, editando el archivo /etc/network/interfaces (trabajaremos a lo largo del post con privilegios elevados, por tanto, iniciaremos sesión como root o haremos sudo su):

sambadc01

Observamos como configuramos como primer servidor de nombres el propio equipo, como secundario elegimos alguno que nos permita acceder a Internet ( el de nuestro ISP o el público de Google en este caso).

A continuación instalaremos el servicio NTP (Network Time Protocol) para asegurar que nuestro equipo siempre tenga la hora correcta (el funcionamiento de Kerberos exige que los equipos estén sincronizados en cuanto la hora). Para instalar el servicio:

# apt-get install ntp

Una vez instalado, configuraremos el servicio para elegir el servidor horario de nuestra preferencia, en nuestro caso, elegimos los servidores ubicados en España. Así mismo, habilitamos el servicio para que nuestra red pueda consultar la hora al servidor (podemos consultar los servidores disponibles en la página de NTP project.

sambadc02

A continuación procederemos a instalar Samba 4. Aunque se puede descargar como paquete ya construido mediante apt-get, la página de Samba recomienda bajar las fuentes y compilarlas. De hecho, si se intenta bajar el paquete del repositorio da un error a media instalación ( en algunos blogs comentan cómo seguir la instalación a partir de ese punto).

En primer lugar, nos bajamos los archivos necesarios o prerequisitos:

# apt-get install build-essential libacl1-dev python-dev libldap2-dev pkg-config gdb libgnutls-dev libreadline-dev libattr1-dev python-dnspython libpopt-dev libbsd-dev attr docbook-xsl libcups2-dev git

Una vez finalizada la instalación, bajaremos la versión más reciente del repositorio GIT:

# git clone git://git.samba.org/samba.git /usr/src/samba4/

Una vez finalizada la descarga procederemos a compilar:

# sudo ./configure –enable-debug

# make (gracias a luigdima por el aviso)

# make install

y añadiremos el path de las carpeta bin y sbin de samba:

# export PATH=»/usr/local/samba/sbin:/usr/local/samba/bin:$PATH»

Ya tenemos el Samba instalado, ahora podemos proceder a la construcción del dominio, para ello utilizaremos el comando samba-tool domain provision y procederemos a rellenar los datos de nuestro dominio. En DNS forwarder, pondremos la dirección IP del DNS que queremos que resuelva las peticiones externas (reenviador).

sambadc03

En cuanto la password que nos solicita, deberá tener complejidad, caso contrario nos pedirá una nueva contraseña, para las pruebas realizadas hemos elegido P@ssw0rd (obviamente en producción debeis elegir una contraseña más original 😉 )

A continuación editaremos el archivo smb.conf (cuidado, que en lugar de /etc/samba/, lo tenemos en /usr/local/samba/etc!!) y añadiremos la opción que los clientes puedan actualizar su registro dns.

sambadc04

A continuación reiniciamos la máquina y cuando iniciamos sesión iniciamos el servicio de samba: # /usr/local/samba/sbin/samba start

Ahora realizamos una prueba para comprobar que efectivamente funciona el servicio de DNS:

sambadc045

Ahora probaremos el servicio Kerberos, para ello instalaremos la utilidad de cliente:

# apt-get install krb5-user

Cuando nos pida el reino Kerberos, deberemos poner el que hemos elegido, pero muy importante en mayúsculas! Una vez instalado podemos testear por ejemplo la password de administrador:

sambadc06

Si todo funciona sin problemas, podemos seguir, pero si tenemos algún problema deberemos reiniciar el proceso, para ello borraremos el archivo smb.conf y procederemos a repetir el proceso de crear el dominio, pero muy importante añadiendo el argumento –use-ntvfs al final y configurando directamente con el comando los argumentos, por ejemplo:

# samba-tool domain provision –realm casa.local –domain CASA –adminpass P@ssword –server-role=dc –use-ntvfs

Posteriormente en el archivo smb.conf añadiremos el dns forwarder y la opción de update de los clientes.

Llegados a este punto, podemos probar a agregar un equipo al dominio, en nuestro caso un Windows 7 Enterprise. Para ello, en la configuración de red del cliente, pondremos como DNS la IP de nuestro servidor samba:

sambadc07

Ahora procederemos a agregar el equipo al dominio:

sambadc08

Comprobamos como el cliente se ha agregado correctamente al dominio:

sambadc09

En posts posteriores veremos como administrar el dominio que hemos creado.

8 pensamientos en “Samba 4: Controlador Active Directory parte 1 de 3

  1. xavi

    Hola!

    Al instalar los prerequisitos falla al resolver el paquete doc-book-xsl, el nombre correcto es docbook-xsl (almenos para mi distribución, Debian Wheezy)
    Y antes de ejecutar make hay que configurar el paquete con ./configure si no el make da error!

    Saludos 😉

    Responder
    1. Luis Ignacio Díaz Martínez

      Hola Xavi! el paquete de doc-book-xsl es «docbook-xsl» en Debian Wheezy. Y te recomiendo que ejecutes la configuración con «./configure.developer» así se compilarán más ejecutables ( como winbind )

      Espero que te sirva!!

      Responder
    2. Carlos

      Ante todo pedir disculpas por el retardo en contestar, pero estoy en medio de fin de curso y el trabajo se acumula. En primer lugar, tienes razón el paquete es docbook-xsl.

      Responder
  2. sergio

    Muy bueno el tutorial, pero se me presenta el problema de no reconocer el dominio:
    Host _ldap._.tcp.mst.net not found: 3(NXDOMAIN)
    Y quería saber si es necesario haber instalado previamente BIND9 y configurar las zonas.

    Gracias.

    Responder
    1. Carlos

      En principio no es necesario. En el error, parece que no has hecho bien la consulta de prueba:
      host -t SRV _ldap._tcp.mst.net

      Responder
  3. Beñat

    Un tutorial estupendo, pero tengo un error a la hora de descargar samba, el comando
    # git clone git://git.samba.org/samba.git /usr/src/samba4/
    me da un error «unable to connect to git.samba.org» y no sé porque, me gustaria que me iluminaran al respecto, pues tengo bien configurada la conexion (creo)

    Responder

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *