Unir un cliente Ubuntu 14.04 al dominio Windows Server 2012 R2

logo de likewiseCualquier distribución de GNU/Linux puede configurarse para actuar como cliente de un dominio Active Directory. Sin embargo, hace tiempo que disponemos de una herramienta gratuita que simplifica la configuración, usando el servicio winbind para resolver la información tanto de los usuarios como de los grupos en el proceso de autenticación con el servidor. Esta herramienta, inicialmente se llamaba Likewise Open y era ofrecida por la empresa Likewise Software. Sin embargo, en 2011, esta empresa fue adquirida por BeyondTrust y, poco después, el producto cambió su nombre por PowerBroker Identity Services, Open Edition.

logo beyondtrust

Una de las ventajas que presenta PowerBroker Identity Services, Open Edition es que no solo se encuentra disponible para distribuciones GNU/LInux basadas tanto en paquetes deb como rpm, sino que también podemos encontrarlo en Mac OS X y en otros sistemas Unix. Además, se ha mantenido como un producto de código abierto desarrollado por la comunidad y disponible bajo licencia GPL/LGPL v2.

En este artículo, veremos como instalar y configurar PowerBroker Identity Services, Open Edition sobre un cliente equipado con Ubuntu 14.04 Desktop para acceder al controlador de dominio que hemos configurado en capítulos anteriores, utilizando cualquiera de las cuentas de usuario existentes en en el dominio.

Los pasos que deberemos seguir serán:

  • Configurar el nombre del equipo según las necesidades del dominio.
  • Establecer las características de red.
  • Instalar y configurar el software PowerBroker Identity Services, Open Edition.
  • Unir el equipo con Ubuntu 14.04 al dominio de Windows Server 2012 R2.
  • Configurar el arranque de Ubuntu 14.04 para que nos permita escribir un nombre de usuario que no sea local.

Una vez que tenemos claro el objetivo, comencemos…

Configurar el nombre del equipo

Una forma sencilla de abrir una ventana de consola es con la combinación de teclas Ctrl + Alt + T

El nombre que se utiliza para identificar en la red local a un ordenador equipado con el sistema operativo Ubuntu se guarda dentro del archivo /etc/hostname. Por lo tanto, para cambiar su nombre, sólo tenemos que editar dicho archivo y sustituir el nombre original.

Para editar el archivo, abriremos una ventana de consola y escribiremos la siguiente orden:

sudo gedit /etc/hostname

Por supuesto, en lugar de utilizar gEdit, puedes inclinarte por nano, vi, o cualquier otro editor de textos que tengas instalado en tu sistema.

cuando acabemos de escribir (o copiar) el comando, pulsamos la tecla Intro.

Cuando se abra la ventana del editor, lo normal es que tenga sólo una palabra: el nombre actual del equipo. Como hemos dicho más arriba, basta con sustituirla por el valor que necesitemos (en nuestro caso, seguiremos la pauta usada para los clientes Windows y lo llamaremos cliente-lnx-01)

Cuando hayamos terminado, guardaremos los cambios y cerraremos la ventana.

Aunque dispongamos de un servidor DNS en la red, el primer sitio donde mira un sistema operativo para resolver un nombre de equipo es el archivo hosts. En este archivo, se guarda la correspondencia entre nombres de equipo y sus direcciones IP correspondiente y una de sus entradas suele hacer referencia al equipo local. En el caso de Ubuntu, este archivo se encuentra en la ruta /etc/hosts.

Como antes, para editarlo recurriremos a gEdit:

sudo gedit /etc/hosts

Como antes, escribimos el comando y pulsamos la tecla Intro.

Después, buscamos el nombre antiguo del equipo y lo sustituimos por el nuevo.

Cuando hayamos terminado, guardaremos los cambios y cerraremos la ventana.

Establecer las características de red

Una de las formas más sencillas de configurar las características de red en Ubuntu es hacer clic sobre el icono que representa la conexión de red en el panel superior del Escritorio.

Después, en el menú que aparece, hacemos clic sobre Editar las conexiones

Esto hará que aparezca la ventana Conexiones de red. En ella, elegiremos la conexión que queremos editar (en nuestro caso sólo hay una)…

… Y haremos clic sobre el botón Editar.

Cuando aparezca la ventana con los datos de la conexión, deshabilitamos el protocolo IPv6. Al fin y al cabo, si nuestra red no está preparada para usar este protocolo, dejarlo habilitado sólo sirve para consumir recursos del equipo.

Elegimos la solapa Ajustes de IPv6 y, en la lista Método, hacemos clic sobre Ignorar.

En la solapa Ajustes de IPv4, desplegamos la lista Método y elegimos Automático (DHCP). Después, en Servidores DNS adicionales, escribimos la dirección IP de nuestro controlador de dominio. Por último, en el cuadro de texto Dominios de búsqueda adicionales, escribimos el nombre del dominio (para el caso del ejemplo que estamos desarrollando aquí, somebooks.local).

A continuación, hacemos clic sobre el botón Guardar…, y cerramos la ventana

Si quieres asegurarte de que los datos son correctos, puedes volver a hacer clic sobre el icono que representa la conexión de red en el panel superior del Escritorio.

Después, en el menú que aparece, hacemos clic sobre Información de la conexión.

La ventana Información de la conexión muestra todos los parámetros actuales de la conexión activa en estos momentos.

Hacemos clic sobre el botón Cerrar.

La configuración predeterminada de Ubuntu con respecto a la resolución de nombres establece que primero se consulte el archivo /etc/hosts, después, si la dirección a buscar acaba en .local, se aplique Multicast DNS 4 (mDNS4), un método con una semántica similar a DNS pero que no requiere de un servidor DNS en la red. Por último, si las respuestas anteriores fuesen negativas, se recurriría a la búsqueda de un servidor DNS.

Dado que nuestro dominio termina en .local (somebooks.local), este comportamiento predeterminado hará que el equipo cliente no pueda encontrar al servidor.

Para resolverlo, basta con editar el archivo que contiene la configuración de resolución de nombres, que se encuentra en /etc/nsswitch.conf y cambiemos la línea correspondiente.

Como antes, recurriremos a gEdit:

sudo gedit /etc/nsswitch.conf

Escribimos el comando y pulsamos la tecla Intro.

Cuando se abra el editor, localizamos una línea que comienza con la palabra hosts:. Si te fijas, la palabra dns se encuentra al final de la lista. Pues bien, la solución a nuestro problema es tan sencilla como poner dicha palabra antes que mdns4_minimal, tal y como muestra la siguiente imagen.

Cuando hayamos terminado, guardaremos los cambios y cerraremos la ventana.

Por último, para comprobar que todo es correcto, bastará con hacer ping al servidor, pero utilizando su nombre DNS en lugar de su dirección IP:

ping somebooks.local

Si hay comunicación entre el cliente y el servidor, comenzarán a aparecer líneas indicando el tiempo que tardan los paquetes ICMP en ir y volver del servidor.

Instalar y configurar el software PowerBroker Identity Services, Open Edition en Ubuntu 14.04.

Para descargar PowerBroker Identity Services, Open Edition sólo hay que ir hasta la página de descargas de BeyondTrust (http://download1.beyondtrust.com/Technical-Support/Downloads/PowerBroker-Identity-Services-Open-Edition/?Pass=True)

Página de descargas de BeyondTrust

En la parte inferior de la página, debemos identificar el paquete correspondiente al tipo de nuestra distribución. En el caso que nos ocupa, será Linux 2.4/2.6 kernel 64-bits DEB.

Hacemos clic sobre el enlace de descarga

El archivo que descargamos es un script que se encargará de realizar la instalación. Sin embargo, para ejecutarlo, deberemos otorgarle permisos de ejecución, lo que conseguimos yendo hasta el lugar donde se almacenan las descargas en nuestro sistema (normalmente la carpeta /home/usuario/Descargas) y haciendo clic con el botón derecho del ratón sobre el archivo que acabamos de obtener.

En el menú de contexto que aparece, hacemos clic sobre la opción Propiedades.

En la ventana de propiedades, elegimos la solapa Permisos y marcamos la opción Permitir ejecutar el archivo como un programa.

Cuando acabemos, hacemos clic sobre el botón Cerrar.

Después de esto, ya podemos ejecutar el script. Abrimos una ventana de Consola y nos dirigimos hasta el directorio de Descargas. A continuación, escribimos la orden sudo, seguida del nombre del script:

sudo ./pbis-open-8.0.1.2029.linux.x86_64.deb.sh

Cuando acabemos, pulsamos la tecla Intro.

Durante la instalación, el script nos pregunta si queremos instalar el paquete para enlaces antiguos.

Contestamos las dos veces de forma afirmativa (yes)

Cuando termina la instalación, el script nos pide que reiniciemos el sistema para que todos los módulos vuelvan a cargarse en su nueva versión.

Hacemos clic sobre el icono de sesión en el panel superior y, en el menú que aparece, elegimos la opción Apagar.

Como siempre, el sistema nos da a elegir entre Apagar y Reiniciar.

Hacemos clic sobre Reiniciar.

Unir el equipo con Ubuntu 14.04 al dominio de Windows Server 2012 R2.

Cuando termine de arrancar de nuevo el sistema, estaremos listos para unirlo al dominio. Para lograrlo, sólo tenemos que escribir la siguiente orden en la terminal:

sudo domainjoin-cli join --disable ssh somebooks.local administrador@somebooks.local

Como puedes ver, los únicos datos que necesitamos son: el nombre del dominio y el nombre de una cuenta con privilegios para unir el equipo al dominio (hemos preferido utilizar el nombre DNS de la cuenta del usuario por cuestiones didácticas, pero debe funcionar también poniendo el nombre NetBIOS o el nombre sencillo).

Cuando hayamos terminado de escribilo, pulsamos la tecla Intro.

Como es lógico, durante el proceso nos pedirá la contraseña de la cuenta que hemos indicado en el comando.

Observa también que ya aparece el nombre DNS que tendrá el equipo en el dominio. En particular, para este ordenador será cliente-lnx-01.somebooks.local.

Escribimos la contraseña y pulsamos Intro.

Poco después, recibiremos un mensaje informando de que el sistema se ha configurado para autenticarse en Active Directory y que es aconsejable reiniciar el sistema para asegurarnos de que todas las aplicaciones reconocen la nueva configuración.

La instalación ha terminado.

A modo de comprobación, podemos desplazarnos hasta el servidor y comprobar, dentro de Usuarios y equipos de Active Directory, que aparece la nueva cuenta del equipo.

Comprobamos que dentro de la categoría Computers aparece una nueva entrada.

Configuarar Ubuntu para iniciar sesión con usuario del dominio

En versiones anteriores de Ubuntu, el archivo de configuración se encontraba en /etc/lightdm/lightdm.conf

En cualquier caso, antes de reiniciar el equipo cliente, aún necesitamos hacer un pequeño ajuste más. El motivo es que LightDM, el gestor de sesiones para X Window que utiliza Ubuntu, nos ofrece de forma predeterminada la lista de usuarios locales para que elijamos cualquiera de ellos y escribamos su contraseña. El problema es que, en este caso, el usuario que usaremos no es local, sino que se trata de una cuenta de usuario creada en el dominio.

Para cambiar el comportamiento predeterminado de LightDM, sólo necesitaremos cambiar su archivo de configuración, aunque en Ubuntu 14.04 se encuentra un poco escondido:

sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

Escribimos la orden anterior y pulsamos la tecla Intro.

Una vez abierta la ventana del editor, nos ponemos en la última línea y añadimos lo siguiente:

greeter-show-manual-login=true

Obviamente, lo que hace esta opción es permitir que escribamos tanto el nombre de la cuenta como su contraseña cada vez que nos autentiquemos (puedes consultar más opciones sobre el contenido de este archivo en https://wiki.ubuntu.com/LightDM).

Cuando hayamos terminado, guardaremos los cambios y cerraremos la ventana.

Tienes más información sobre la configuración de PAM en http://www.linux-pam.org/Linux-PAM-html/Linux-PAM_SAG.html

Por otro lado, en los años 90, la empresa Sun Microsystems desarrolló un framework llamado Pluggable Authentication Modules (PAM) que ofrecía una capa de abstracción para diferentes métodos de autenticación (contraseña, tarjeta, parámetros biométricos, etc,).

En Ubuntu, uno de los archivos de configuración de PAM es common-session, que contiene parámetros generales sobre el inicio de sesión. En su interior, la variable session contiene, de forma predeterminada, el valor sufficient. Esto impide que sea tenido en cuenta cualquier otro módulo de autenticación.

Para cambiar este comportamiento, deberemos editar el archivo de configuración:

sudo gedit /etc/pam.d/common-session

Escribimos el comando en la Consola y pulsamos la tecla Intro.

Una vez que se haya abierto el editor de textos, buscamos una línea con el siguiente aspecto:

session sufficient pam_lsass.so

Buscamos la línea

Cuando la localicemos, la sustituimos por lo siguiente:

session [success=ok default=ignore] pam_lsass.so

Cuando hayamos terminado, guardaremos los cambios y cerraremos la ventana.

Una vez terminada la tarea, sólo nos falta reiniciar para comprobar que todo es correcto.

Hacemos clic sobre el icono de sesión en el panel superior y, en el menú que aparece, elegimos la opción Apagar.

De nuevo, el sistema nos da a elegir entre Apagar y Reiniciar.

Volvemos a hacer clic sobre Reiniciar.

Cuando volvamos a la pantalla de autenticación, además de los usuarios locales, dispondremos de una nueva opción titulada Acceder. La elegimos y escribimos el nombre NetBIOS de una cuenta del dominio (por ejemplo, somebooks\walt)

Cuando terminemos de escribirlo, pulsamos la tecla Intro.

Al hacerlo, el sistema nos pide la contraseña para la cuenta indicada. Observa que la autenticación la está realizando ya el controlador de dominio. Si no fuese así, habría aparecido un error indicando que la cuenta no existe.

Escribimos la contraseña y pulsamos la tecla Intro.

Cuando se inicie la sesión, podremos comprobar que lo hemos hecho con la cuenta de usuario correcta de una forma muy sencilla: Abrimos la consola y escribimos el siguiente comando:

who i am

El comando nos responde con el nombre de la cuenta con el que nos hemos identificado.

Y hasta aquí el artículo de hoy. Espero que te resulte útil.