Servicio de Dominio y Directorio

Zentyal integra Samba4 [3] como Servicio de Directorio, implementando la funcionalidad de un controlador de dominio Windows®, además de compartición de ficheros.

El Dominio, en este contexto, consiste en una serie de servicios distribuidos a lo largo de todos los controladores, siendo los más importantes el directorio LDAP, el servidor DNS y la autenticación distribuida mediante Kerberos [4].

El concepto de Dominio en Zentyal está muy relacionado con la implementación de Microsoft Active Directory®, es decir, servidores que replican la información del directorio y clientes unidos al dominio, aplicando las políticas asignadas a su Unidad Organizativa (OU).

[3]Samba: https://wiki.samba.org/index.php/Main_Page
[4]Kerberos: http://es.wikipedia.org/wiki/Kerberos

Configuración de un servidor de dominio con Zentyal

Opciones de configuración de LDAP

En esta primera sección vamos a detallar las operaciones e información presentes en el directorio LDAP de Zentyal en cualquiera de los modos de operación del dominio. Más adelante se detallará como configurar y desarrollar dichos modos.

Desde el menú Dominio, podemos comprobar cual es el modo de funcionamiento de nuestro servidor LDAP antes de activar el módulo. Si hemos activado el módulo de Controlador de Dominio y Compartición de Ficheros, nuestro servidor funcionará como Servidor stand-alone por defecto.

Una vez activado el módulo podemos acceder a Usuarios y Equipos –> Opciones de configuración de LDAP. En el bloque superior podemos ver la Información de LDAP.

Configuración de LDAP en Zentyal

Configuración de LDAP en Zentyal

DN Base:
Base de los nombres de dominio de este servidor, coincide con el dominio local. Nuestro dominio local se configura desde Sistema ‣ General ‣ Dominio y aparecerá como bloqueado (no es posible eliminarlo) en nuestro módulo de DNS.
DN de Usuarios:
Nombre del contenedor de Usuarios por defecto.
DN de Grupos:
Nombre del contenedor de Grupos por defecto.

En la parte inferior podremos establecer ciertas Opciones de configuración PAM

Configuración de PAM en Zentyal

Configuración de PAM en Zentyal

Habilitando PAM (Pluggable Authentication Modules) [10], permitimos que los usuarios presentes en el directorio, sean a su vez usuarios válidos de la máquina local. De esta forma podríamos, por ejemplo, crear un usuario en el directorio y acceder el servidor Zentyal mediante SSH usando los credenciales de este usuario.

[10]PAM: https://es.wikipedia.org/wiki/Pluggable_Authentication_Modules

Gestionar Usuarios, Grupos y Equipos

Desde el menú Usuarios y Equipos‣ Gestionar, podemos ver el árbol de LDAP. Usando esta interfaz podemos crear y borrar nodos del árbol, gestionar los atributos de los nodos y modificar los permisos de los usuarios para otros servicios que utilizan este directorio.

Árbol de nodos LDAP

Árbol de nodos LDAP

En la parte izquierda se puede ver el árbol. La raíz del árbol toma el nombre de nuestro dominio “local”. Podemos ver las diferentes Unidades Organizativas creadas por defecto:

  • Computers: Máquinas unidas al dominio, tanto servidores como clientes. Esta sección es útil para gestionar el inventario y para aplicar reglas basadas en el equipo.
  • Groups: Contenedor genérico para los grupos de la organización.
  • Users: Contenedor genérico para los usuarios de la organización.
  • Domain Controllers: Servidores que replican la información del directorio, pueden asumir los diferentes roles FSMO de un dominio Samba4/Microsoft Active Directory®.

Una Unidad Organizativa (Organizational Unit, OU, por sus siglas en inglés) es un contenedor de otros objetos, como grupos, usuarios o incluso otras OU anidadas. Es un concepto relacionado con la estructura de datos en árbol y las diferentes políticas aplicadas a cada nodo. Si no se usa los servicios de Samba4/Microsoft Active Directory®, es posible que no sea necesario crear Unidades Organizativas adicionales.

Es posible borrar cualquier nodo usando el icono de cubo de basura, o podemos crear uno nuevo seleccionando un contenedor y usando el icono de añadir con la cruz verde.

Añadiendo un nuevo usuario

Añadiendo un nuevo usuario

Es importante tener en cuenta que cada vez que creamos un usuario en el árbol LDAP, se genera el correspondiente directorio en /home/<nombredeusuario> en el sistema de ficheros del servidor. Si el directorio ya existía previamente, podemos tener problemas para crear el usuario. Debemos mover o eliminar el directorio antes de crear al usuario, si este es el caso.

Los Contactos son objetos con información personal, no relacionados con el mecanismo de autorización. En otras palabras, los contactos no serán capaces de registrarse en los servicios del dominio.

En el lado derecho podemos ver y modificar los atributos LDAP del nodo del árbol seleccionado, por ejemplo, el apellido de un usuario. Si disponemos de una Edición Comercial de Zentyal también podremos subir una foto de perfil para el usuario desde esta misma interfaz.

Seleccionando un usuario, podemos modificar la pertenencia a los diferentes grupos, así como configurar los plugins de usuario. En la parte inferior de la sección derecha, tenemos disponible la sección Configuración de los Módulos, esta sección tiene un número variable de subsecciones, dependiendo de los demás módulos instalados y configurados. Usando esta interfaz, podemos modificar los diferentes parámetros del módulo relacionados con el usuario seleccionado. La configuración por defecto de los plugins de usuario depende de la Plantilla de Usuario, explicada en la siguiente sección.

Plugin de usuario para módulo de correo

Plugin de usuario para módulo de correo

Seleccionando un grupo, podemos también modificar los usuarios que pertenecen a este grupo, crear listas de correo de distribución y cambiar el tipo del grupo. Los grupos de tipo Security Group (por defecto), contienen los usuarios que serán capaces de registrarse en los demás servicios del dominio. El Grupo de Distribución contiene usuarios que serán utilizados para otros propósitos, como listas de correo. Un usuario puede pertenecer a varios grupos.

Editando un grupo

Editando un grupo

Plantilla de usuario

Accediendo a Usuarios y equipos –> Plantilla de Usuario, podemos modificar la configuración por defecto de los servicios para los nuevos usuarios. Por ejemplo, el dominio por defecto de sus cuentas de correo. Es importante tener en cuenta que cualquier modificación solo se aplicará a los usuarios creados después de modificar la plantilla. El número de secciones es variable y depende de los módulos relacionados con los usuarios presentes en el sistema.

Plantilla del usuario

Plantilla del usuario

Configurar Zentyal como un servidor de Dominio Standalone

Antes de activar el módulo de Controlador de Dominio y Compartición de Ficheros, tenemos que revisar ciertas configuraciones de nuestro servidor. Durante la activación del módulo el Dominio se provisiona. Esto quiere decir que las configuraciones para LDAP, DNS y Kerberos son generadas, creando los objetos de LDAP, los Principales de seguridad de Keberos, las zonas específicas de DNS y demás. Esta operación puede ser revocada, pero es más costoso que activar y desactivar el resto de módulos.

Antes de activar Controlador de Dominio y Compartición de Ficheros por primera vez, nos aseguraremos que:

  • Hemos configurado el modo de operación. Por defecto es Controlador del Dominio, pero también podemos configurar el servidor para ser un controlador adicional unido a otro nodo. En este último caso, configuraremos el modo de operaciones y las credenciales antes de activar el módulo, y seguiremos las instrucciones para este supuesto en las siguientes secciones. Si el servidor va a funcionar como primer Controlador del Dominio, no es necesario modificar los datos por defecto.
Zentyal como Controlador Único del Dominio

Zentyal como Controlador Único del Dominio

  • El dominio local y el hostname son correctos. Podemos comprobar esto desde Sistema ‣ General, en la sección Nombre de máquina y Dominio. Si deseamos modificar estos datos, guardamos cambios y reiniciaremos el servidor antes de activar el módulo.
Comprobando nombre del host y dominio

Comprobando nombre del host y dominio

  • En la configuración del módulo DNS, tenemos un dominio “local” que coincide con el que tenemos configurado en Sistema ‣ General. El dominio contiene nuestro hostname como registro (A), en la sección Nombres de máquinas. Este nombre debe estar asociado a, por lo menos, una IP interna. Añadiremos todas las IP internas donde deseemos proporcionar servicios del dominio a este Hostname.
Direcciones IP del dominio zentyal-domain.lan

Direcciones IP del dominio zentyal-domain.lan

  • El módulo de NTP está instalado y activado, y los clientes reciben esta sincronización NTP, preferentemente a través de DHCP.

Una vez que hayamos activado Controlador de Dominio y Compartición de Ficheros, podemos proveer carpetas compartidas, unir clientes Windows® al dominio, configurar y enlazar las políticas GPO (Group Policy Objects) y aceptar conexiones de los nuevos controladores de dominio adicionales, tanto de Windows Server® como de Zentyal.

Probablemente, una de las primeras operaciones que necesitamos realizar en nuestro dominio es crear un usuario en el directorio y unirlo al grupo de Domain Admins. Al unirlo, el usuario tendrá todos los permisos efectivos sobre el dominio.

Incluyendo un usuario al grupo Domain Admins

Incluyendo a un usuario al grupo Domain Admins

Uniendo un cliente Windows® al dominio

El proceso de unir un cliente Windows® al dominio de Zentyal es idéntico a unirse a un servidor Windows®.

En primer lugar tendremos que usar la cuenta del usuario con privilegios de administrador, creado anteriormente.

Después, accederemos al cliente Windows® y nos aseguraremos de lo siguiente:

  • El servidor Zentyal y el cliente Windows® pueden alcanzarse mutuamente a través de una red local
  • El cliente Windows® tiene a Zentyal como su servidor DNS
  • Tanto el cliente como el servidor tienen la hora perfectamente sincronizada usando NTP

Una vez hayamos comprobado estas precondiciones, nos uniremos al dominio de la manera habitual.

Uniéndose al dominio con Windows®

Uniéndose al dominio con Windows®

Para las credenciales, usaremos el Domain Admin que hemos creado previamente.

Credenciales del Domain Admin

Credenciales del Domain Admin

Tras completar el proceso, nuestro cliente Windows® aparecerá en el árbol de LDAP bajo la Computers OU. Se le aplicará las GPO configuradas y obtendrá el ticket de Kerberos automáticamente al iniciar sesión (Ver la sección de Kerberos).

Cliente Windows® en el árbol LDAP

Cliente Windows® en el árbol LDAP

Ahora ya podemos iniciar sesión en nuestro cliente Windows® con los usuarios creados en el LDAP de Zentyal.

Perfiles móviles y redirección de carpetas

Zentyal nos ofrece la posibilidad de habilitar la función “perfiles móviles” (“roaming profiles” en inglés) para nuestros clientes Windows®.

Casilla para habilitar perfiles móviles

Casilla para habilitar perfiles móviles

Cuando habilitamos los perfiles móviles, copiamos los datos y configuraciones de cada usuario en el servidor, además de localmente. Cuando el usuario se autentica en cualquier máquina del dominio, el perfil almacenado en el servidor se carga localmente y cuando cierra su sesión, el perfil remoto se sincroniza con el local.

La necesidad de sincronizar el perfil local y el perfil remoto al iniciar y cerrar sesión, supone un aumento significativo del tiempo preciso para realizar ambas operaciones. Este problema puede paliarse mediante la “redirección de carpetas” que permite al cliente montar localmente el recurso remoto.

El proceso para configurar la redirección de carpetas está detalladamente descrito en la documentación de Samba en su sección Using a Group Policy Preference [11].

[11]Redirección de carpetas: https://wiki.samba.org/index.php/Configuring_Windows_Profile_Folder_Redirections

Autenticación con Kerberos

Kerberos es un sistema de autenticación automática que se integra con Samba4/Microsoft Active Directory® y con todos los demás servicios compatibles en el dominio.

El cliente solo necesita introducir sus credenciales una vez para obtener el ticket “principal”, Ticket Granting Ticket.

Esta operación se realiza automáticamente en los clientes Windows® unidos al dominio. Las credenciales de inicio de sesión se envían al Controlador de Dominio (cualquiera de ellos) y el usuario es verificado. Si el usuario de LDAP es correcto, el controlador envía automáticamente el TGT junto con otros tickets necesarios para la compartición de ficheros al cliente.

Podemos comprobar la lista de tickets activos en el cliente usando el comando klist.

Tickets de Kerberos tras iniciar sesión

Tickets de Kerberos tras iniciar sesión

En sistemas Ubuntu/Debian también es posible obtener el ticket TGT de Kerberos instalando el paquete heimdal-clients.

Obteniendo el TGT de Kerberos en Ubuntu

Obteniendo el TGT de Kerberos en Ubuntu

Una vez que el cliente ha obtenido el ticket TGT de Kerberos, todos los demás servicios compatibles con Kerberos del dominio aceptaran los tickets proporcionados por el cliente. Estos son obtenidos automáticamente cuando se solicita acceder al servicio.

Este mecanismo de autenticación tiene dos ventajas principales:

  • Seguridad: Las credenciales viajan seguras por la red local, el sistema es resistente al sniffing y a los ataques de replay.
  • Comodidad: Los usuarios sólo necesitan introducir sus credenciales una vez, los demás tickets de autorización se obtienen de forma transparente.

Servicios de Zentyal compatibles con la autorización Kerberos en estos momentos:

  • Compartición de Ficheros (SMB/CIFS)
  • Correo Electrónico
  • Proxy HTTP

Cambiar la contraseña de usuario

El administrador de Zentyal puede cambiar la contraseña de cualquier usuario desde la propia interfaz web. Sin embargo, en la mayoría de los casos es más conveniente si el usuario es capaz de cambiar su contraseña sin necesitar la atención del administrador. Para ello, se puede conseguir de las siguientes formas:

  • Si el usuario tiene un cliente de Windows® unido al dominio de Samba, puede cambiar la contraseña después de haberse registrado como un usuario del dominio pulsando la combinación de teclas CTRL + ALT + DEL. El cambio de contraseña se reflejará en el servidor.

  • Desde el Webamin de Sogo.

  • Desde un cliente Linux, el usuario debe instalar el paquete heimdal-clients y después ejecutar:

    $ kinit <user>@DOMAIN
    $ kpasswd
    

Por ejemplo:

$ kinit user1@ZENTYAL-DOMAIN.LAN
  user1@ZENTYAL-DOMAIN.LAN's Password:
  $ kpasswd
  user1@ZENTYAL-DOMAIN.LAN's Password:
  New password:
  Verify password - New password:
  Success : Password changed

Políticas de Grupo (GPO)

Las políticas de grupo o Group Policy Objects (GPOs, por sus siglas en inglés) son políticas asociadas a los contenedores del Dominio.

Usando GPOs podemos realizar configuraciones automáticas o comunicar restricciones a los clientes. Podemos establecer políticas globales para todo el dominio, políticas para las Unidades Organizativas y también para los Sites (localizaciones físicas).

Ejemplos típicos del uso de una GPO incluirían:

  • Instalar y actualizar paquetes de software sin intervención del usuario
  • Configurar un Proxy HTTP de los navegadores e instalar la Autoridad de Certificación del dominio
  • Enviar scripts que serán ejecutados al inicio y/o cierre de sesión
  • Restringir partes de la configuración del cliente Windows® al usuario

Es posible crear GPOs usando cualquier cliente Windows® unido al dominio. Para ello tendremos que instalar la herramienta RSAT de Microsoft e iniciar sesión con el usuario que hemos configurado como administrador del dominio, y usando la interfaz RSAT, diseñaremos el GPO deseado.

Gestionando las GPO con la herramienta RSAT en un cliente Windows®

Gestionando las GPO con la herramienta RSAT en un cliente Windows®

Usando esta herramienta, las GPO serán añadidas automáticamente al SYSVOL del dominio y ejecutadas desde el servidor Zentyal en todos los demás clientes.

Advertencia

Para adecuarse a las nuevas medidas de seguridad introducidas en Windows® 10, deberá añadir en cada GPO creada los grupos “Authenticated Users” y “Domain Computers”, en la pestaña Delegación.

Unir Zentyal Server a un dominio existente

Gracias a la integración con tecnologías Samba4, Zentyal es capaz de convertirse en un Controlador Adicional de un dominio existente, ya sea uniéndose a un servidor Windows® o a otro controlador basado en Samba4, por ejemplo, otro servidor Zentyal.

Tras unirse al dominio, la información de LDAP, el dominio DNS asociado a Samba (dominio local) y la información de Kerberos serán replicados de manera transparente.

Tenemos que verificar ciertos puntos antes de unirnos a otro controlador:

  • La información local del directorio LDAP de Zentyal será destruida, ya que se sobrescribirá la información de directorio del dominio
  • Todos los controladores deben tener la hora perfectamente sincronizada, a ser posible usando NTP
  • Cuando Zentyal reciba los usuarios sincronizados desde el dominio, creará sus directorios de usuario asociados /home/<nombredeusuario>. Debemos comprobar que estos nuevos directorios no existen previamente para evitar colisiones
  • Todos los controladores deben pertenecer al mismo dominio
  • La correcta configuración del sistema de DNS es crítica. Los demás controladores de dominio enviarán la información a la IP proporcionada por el sistema de DNS.

Si tenemos alguna IP externa asociada a nuestro hostname (por ejemplo, zentyal.zentyal-domain.lan), podremos tener problemas de sincronización si alguno de los demás controladores intenta usar esa IP para enviar los datos. Incluso si tenemos varias IP internas, podemos sufrir el mismo problema, por que el sistema de DNS lleva a cabo un round-robin por defecto cuando responde a las peticiones. Si experimentamos esta incidencia, puede ser recomendable descomentar el parámetro sortlist = yes en el fichero /etc/zentyal/dns.conf y reiniciar el servidor DNS. De esta manera el DNS ordenará las IP de la respuesta, poniendo primero la que coincida con la máscara de red de la máquina haciendo la petición.

Una vez que se hayan comprobado todos estos puntos, podemos unirnos al dominio desde el menú Dominio.

Servidor Zentyal uniéndose a un servidor Windows® como controlador adicional

Servidor Zentyal uniéndose a un servidor Windows® como controlador adicional

El guardar los cambios llevará más tiempo del habitual en este caso, dado que Samba4 se estará provisionando y todos los datos del dominio necesitan ser replicados.

Árbol LDAP de Zentyal replicado con el servidor Windows®

Árbol LDAP de Zentyal replicado con el servidor Windows®

Explorando el árbol LDAP desde el servidor Windows® también nos mostrará el nuevo controlador de dominio.

Árbol LDAP de Windows® mostrando el nuevo controlador

Árbol LDAP de Windows® mostrando el nuevo controlador

Desde este momento la información de LDAP, dominio DNS asociado a Samba (el dominio local) y Kerberos será sincronizada en ambas direcciones. Es posible gestionar la información de LDAP (usuarios, grupos, OUs...) en cualquiera de los controladores y los cambios se replicarán en los demás.

El proceso para unirse a otro servidor Zentyal es idéntico al descrito.

Advertencia

El directorio SYSVOL, y por tanto las GPOs, no se sincronizan automáticamente entre Controladores de Dominio. El equipo desarrollador del proyecto Samba propone varias soluciones alternativas. [12]

Advertencia

Tenemos que tener en cuenta que al configurar nuestro servidor Zentyal como Controlador de Dominio Adicional, la función “Backup de configuración” sólo funcionará completamente si el Controlador de Dominio StandAlone está activo y es funcional.

[12]Replicación del Sysvol: https://wiki.samba.org/index.php/SysVol_replication_(DFS-R)

Migración Total

Todos los controladores de dominio poseen una réplica de la información de dominio comentada anteriormente. Sin embargo, existen roles específicos que pertenecen a máquinas concretas, llamados los roles FSMO o Operations Masters.

Los Operations Masters son críticos para el funcionamiento del dominio, hay cinco roles FSMO:

  • Schema master: Se encarga de la definición del árbol LDAP, envía actualizaciones de este formato
  • Domain naming master: Crea y borra dominios en el bosque
  • Infrastructure master: Provee de identificadores GUID, SID y DN únicos en el dominio
  • Relative ID Master: ID relativas asignadas a los principales de seguridad
  • PDC Emulator: Compatibilidad con máquinas Windows 2000/2003® hosts, servidor de hora principal

Usando el script de Migración Total, podemos transferir estos roles a un servidor Zentyal unido al dominio.

Advertencia

Al unir un DC a un dominio, se produce la sincronización de la base de datos de Samba4 (usuarios, grupos, equipos y demás objetos LDAP con todos sus atributos). El proceso de transferencia de los roles FSMO de un DC a otro no hace más que modificar determinados registros de la base de datos de Samba4 de manera que sea ese DC quien gestione ahora todas (o algunas) de las operaciones críticas del LDAP (como cambios en el esquema, etc.)

Desde el directorio /usr/share/zentyal-samba ejecutamos:

administrator@zentyal:/usr/share/zentyal-samba$ sudo ./ad-migrate
WARNING: This script will transfer all FSMO roles from the current owners to
         the local server.
         After all roles has been successfully transferred, you can shutdown
         the other domain controllers.
Do you want to continue [Y/n]? Y

Checking server mode...

Checking if server is provisioned...

Synchronizing sysvol share...
syncing [SYSVOL] files and directories including ACLs, without DOS Attributes

Transferring FSMO roles...
Transferring Schema Master role from owner: CN=NTDS Settings,...
Transferring Domain Naming Master role from owner: CN=NTDS Settings,...
Transferring PDC Emulation Master role from owner: CN=NTDS Settings,...
Transferring RID Allocation Master role from owner: CN=NTDS Settings,...
Transferring Infrastructure Master role from owner: CN=NTDS Settings,...

Migrated successfully!

De ahora en adelante, Zentyal será el único controlador crítico para el dominio y todos los servicios de dominio seguirán funcionando incluso si apagamos los demás controladores, exceptuando consideraciones de red y escalabilidad.

Advertencia

La interfaz web de Zentyal no refleja este cambio de configuración como se puede apreciar en el menú Dominio, pero no debemos preocuparnos. Nuestro Controlador de Dominio tiene todos los roles FSMO como podemos confirmar con el comando ‘samba-tool fsmo show‘ y sigue funcionando correctamente. Debemos tener cuidado y no cambiar la configuración establecida en Dominio porque perderémos todos los datos referentes al Controlador de Dominio.

Importación y Exportación de usuarios y grupos

Para ayudar en las tareas de importación y exportación de usuarios y grupos, Zentyal proporciona una serie de scripts que permiten llevar a cabo estas operaciones. En caso de disponer de una Edición Comercial, podremos realizar estas acciones desde la propia interfaz gráfica (Usuarios y Equipos –> Import/Export). En caso contrario, tendremos que ejecutar los scripts manualmente ubicados en /usr/share/zentyal-samba/.

Opciones de importación y exportación de usuarios en una Edición Comercial

Opciones de importación y exportación de usuarios en una Edición Comercial

Exportando

Desde las secciones Export domain, podemos exportar tanto los usuarios como los grupos del Controlador de Dominio. Para exportar estos datos, tendremos que pulsar en el icono bajo el menú Export. Una vez que haya terminado la acción, el icono bajo la columna CSV available cambiará a un círculo verde y podremos descargarnos el archivo .csv pulsando sobre el icono bajo la columna Download csv.

Importando

Para importar nuevos usuarios o grupos en el Controlador de Dominio, primero habrá que subir el archivo .csv al servidor Zentyal. Para ello, pulsaremos sobre el icono Examinar y seleccionaremos el archivo. Después, habrá que pulsar sobre el botón UPLOAD FILE AND IMPORT. Pasado unos minutos, la importación terminará y podremos ver que los usuarios o grupos ya están disponibles, a través de Usuarios y Equipos –> Gestionar.

Formato de los archivos .csv

A continuación se describe el formato que han de tener los archivos .csv para poder importar usuarios y grupos.

El formato para los grupos es el siguiente:

name;CN;Description;email;typeOfGroup;idGroup

Advertencia

typeOfGroup‘ puede tomar los valores: 0 para los grupos de seguridad y 1 para los grupos de distribución. Mientras que ‘idGroup‘ sólo se asigna a los grupos de seguridad.

Unos ejemplos de un archivo csv para grupos:

## Para grupos de tipo: Security Group

devsecops;OU=sysadmins,DC=lab61,DC=lan;Dev Sec Ops;devsecops@lab61.lan;1;;3112;

## Para grupos de tipo: Distribution Group

news;CN=Groups,DC=zentyal-domain,DC=lan;News;news@zentyal-domain.lan;0;;;

Y el formato para los usuarios es:

## Es una única línea

username;CN;firstName;;lastName;displayName;Description;email;password;;IDnumber;
CN-GroupBelong:CN-GroupBelong

Unos ejemplos de un archivo csv para usuarios:

## Una única línea

## Para un simple usuario

alba;CN=Users,DC=zentyal-domain,DC=lan;Alba;;Hernandez;Alba Hernandez;;"";
password;;65540;CN=news,CN=Groups,DC=zentyal-domain,DC=lan:CN=rrhh,CN=Users,
DC=zentyal-domain,DC=lan;

## Para un usuario con todos los campos rellenados

maria;OU=sysadmins,DC=zentyal-domain,DC=lan;Maria maria;;Jimenez;Maria Jimenez;
Developer;"maria@zentyal-domain.lan";password;;65537;CN=devsecops,
OU=sysadmins,DC=zentyal-domain,DC=lan:CN=news,CN=Groups,DC=zentyal-domain,DC=lan;

Limitaciones con la importación y exportación de usuarios

  • Las contraseñas no pueden ser exportadas, por defecto la contraseña establecida en el archivo .csv es password.
  • Las Unidades Organizativas no son exportadas, por lo que antes de añadir un archivo .csv que contenga alguna OU deberá de crearse previamente.
  • Los carácteres especiales tales como acentos no son correctamente exportados, por lo que es preciso editar dichas entradas en el archivo .csv resultante antes de proceder a su importación.
  • Los archivos que generan de exportación contienen el CN correspondiente al dominio. Por ello la importación de datos fallará en caso de que el nuevo servidor no tenga el mismo nombre de dominio configurado. Puede, no obstante, modificar este parámetro en los archivos .csv.
  • En caso de querer importar usuarios o grupos que contengan un correo configurado, habrá que deshabilitar previamente la opción Cuenta de correo de la plantilla de usuario (Usuarios y Equipos –> Plantilla de Usuario).
Plantilla de los usuarios

Plantilla de los usuarios

  • Si se tienen múltiples dominios virtuales de correo, habrá que separar los usuarios y grupos en distintos archivos .csv. Después, habrá que establecer el dominio virtual de correo que contenga el archivo .csv a subir desde Usuarios y Equipos –> Plantilla de Usuario. De lo contrario, todos los usuarios y grupos se crearán con el mismo dominio de correo virtual.

Limitaciones conocidas

Es importante comprobar la lista de limitaciones conocidas de Samba4 para esta versión antes de planificar el dominio:

  • Sólo un dominio, en un único bosque. Samba no soporta múltiples dominios ni múltiples bosques
  • El nivel funcional tanto del dominio como del bosque ha de ser mínimo 2003 R2 y máximo 2008 R2
  • El nombre de host no puede coincidir con el nombre NETBIOS. El nombre NETBIOS se genera a partir de la parte izquierda del nombre de dominio. Por ejemplo, si el nombre de host es ‘zentyal’, el nombre de dominio no puede ser ‘zentyal.lan’, pero si ‘zentyal-domain.lan’
  • Las relaciones de confianza entre dominios y bosques no están soportadas
  • Las GPO no se sincronizarán automáticamente, pero puede configurarse manualmente siguiendo las instrucciones detalladas del equipo de desarrollo de Samba [13]
  • No se soportan usuarios con nombres no-ASCII (tildes, eñes, guión)
[13]Sysvol workaround: https://wiki.samba.org/index.php/Rsync_based_SysVol_replication_workaround

Problemas conocidos

Para posibilitar el acceso a los recursos compartidos de algunos sistemas Windows® y ciertos dispositivos como impresoras en red, deberá añadir el siguiente parámetro de configuración a la configuración de Samba:

ntlm auth = yes

Advertencia

Al habilitar este parámetro se reduce la seguridad del Controlador de Dominio.

Samba permite indiscriminadamente la transferencia de zona cuando el controlador de dominio está habilitado. A pesar de que se han corregido varios bugs relacionados, tanto en Samba como en Bind9, este comportamiento indeseable se sigue manifestando en la implementación Samba4 + Bind9 utilizada por Zentyal.

Dicho comportamiento puede ser paliado mediante la introducción de una regla específica en iptables.

Para comprobar la vulnerabilidad:

dig AXFR lab6.lan @ip_zentyal_server +short

Para paliar el comportamiento descrito, proceda a capturar el tráfico en la interfaz donde quiere bloquear estas peticiones mediante Wireshark o Tcpdump:

0000   00 04 00 01 00 06 f0 1f af 29 9f 72 00 00 08 00   ......ð.¯).r....
0010   45 00 00 67 0a 0e 40 00 40 06 f3 e4 0a 05 14 3e   E..g..@.@.óä...>
0020   0a 05 14 57 e3 8d 00 35 3d 17 7a c0 da 44 06 65   ...Wã..5=.zÀÚD.e
0030   80 18 00 e5 3c f8 00 00 01 01 08 0a d4 90 96 04   ...å<ø......Ô...
0040   a4 b8 c6 be 00 31 78 9f 00 20 00 01 00 00 00 00   ¤¸Æ¾.1x.. ......
0050   00 01 04 6c 61 62 36 03 6c 61 6e 00 00 fc 00 01   ...lab6.lan..ü..
0060   00 00 29 10 00 00 00 00 00 00 0c 00 0a 00 08 28   ..)............(
0070   2a ec 65 b7 a5 2d 1f

Tomamos los dígitos hexadecimales correspondientes al nombre de la zona solicitada (en este caso ‘lab6.lan’) y los dígitos ‘00 fc 00 01’ que identifican una petición AXFR y añadimos la regla al firewall. A continuación se muestra un ejemplo:

iptables -t filter -I INPUT 1 -i eth0 -p tcp -m tcp --dport 53 -m string \
 --algo kmp --hex-string '|6c 61 62 36 03 6c 61 6e 00 00 fc 00 01|' -j DROP

Advertencia

Una vez que hayamos encontrado la regla del firewall adecuada para nuestra infraestructura, debemos de usar la funcionabilidad de hooks [14] para que la regla sea persistente ante reinicios del módulo de firewall.

[14]Hooks: https://doc.zentyal.org/es/appendix-c.html#hooks