Integración de IMSVA a múltiples LDAP

En este post mostramos el proceso que sigue IMSVA cuando es integrado a más de un dominio LDAP con plataformas diferentes, en este caso nuestro IMSVA quedará integrado a un Active Directory y a un OpenLDAP de forma simultánea, protegiendo los buzones de ambos dominios. Esta configuración está disponible desde la versión 8.2.

Para comprender a profundidad lo que ocurre dentro de los motores de IMSVA cuando se hace esta configuración comenzaremos con IMSVA configurado con un sólo dominio como lo hemos trabajado hasta ahora. En nuestro ejemplo usamos el servidor TMW2K801 como servidor Exchange, Active Directory y con dominio training.tm. Esta configuración es la que se muestra la siguiente pantalla del menú Administration -> Connections.

También tenemos configurada ya la opción “Reject unknown users” en el menú Administration -> SMTP Routing -> Message Rules.

Bajo esta configuración, el archivo main.cf tiene la siguiente configuración para que Postfix valide los buzones destinatarios antes de aceptar un correo.

 smtpd_recipient_restrictions = permit_mynetworks,
                              reject_unauth_destination,
                              reject_non_fqdn_recipient,
                              ldap:ldapimsa,
                              reject
ldapimsa_bind_dn = training\administrator
ldapimsa_bind_pw = 20BC605124D45641BCA097DC2219ACADAD107434F36
ldapimsa_server_host = 192.168.75.5:389
ldapimsa_search_base = dc=training,dc=tm
ldapimsa_query_filter = mail=%s
ldapimsa_result_attribute = mail
ldapimsa_result_format = OK %s
ldapimsa_version = 3

Todas estas configuraciones ya las estudiamos en las secciones de “Validación de destinatarios” y “Detección de ataques DHA”.

Con esta base, utilizaremos ahora el servidor TMCENT01 que tiene un servidor de correo postfix con dominio training5.tm y un OpenLDAP. Para ver la creación y configuración de esta máquina puede revisar el apéndice de laboratorios al final del libro.

Para revisar la configuración del dominio en OpenLDAP abrimos el siguiente archivo:

/etc/openldap/slapd.conf

Aquí observamos la siguiente sección donde se encuentra la definición del dominio training5.tm y el usuario que es dueño del LDAP.

database        bdb
suffix          "dc=training5,dc=tm"
rootdn          "cn=Manager,dc=training5,dc=tm"
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw          secret

 

Con esta información podemos configurar nuestro segundo servidor LDAP en IMSVA. Para esto vamos nuevamente a la sección Administration -> Connections -> LDAP y agregamos a nuestro servidor TMCENT01 como se muestra a continuación:

NOTA: También se puede agregar otro servidor Windows con Active Directory con los pasos que ya se han descrito.

Description: TMCENT01
LDAP server type: Open LDAP
Enable LDAP1: Checked
LDAP server: 192.168.75.35
Listening port number: 389
Time to Live in minutes: 1440
LDAP admin account: CN=Manager, DC=training5, DC=tm
Password: secret
Base distinguished name: DC=training5, DC=tm
Authentication method: Simple

Ahora hacemos click en el botón “Add”. Se nos regresará a la pantalla donde se muestran nuestros dos servidores LDAP agregados.

Ahora sí hacemos click en el botón “Save & Synchronize”. Si tenemos habilitado el servicio de EUQ aparecerá un warning indicando que el servicio de EUQ será deshabilitado esto es porque teniendo múltiples dominios, el OpenLDAP local que levanta IMSVA no almacena las credenciales de todos los usuarios por lo que no puede validarlos para acceder a este servicio, simplemente aceptamos el mensaje para continuar con la sincronización.

En caso de haber seguido nuestro apéndice para la creación y configuración del servicio de OpenLDAP, la captura ldapexterno.cap se verá similar a esta, de lo contrario podría aparecer diferente. Para esto aplicamos primero el siguiente filtro en Wireshark para observar solamente la comunicación entre IMSVA y nuestro OpenLDAP.

ip.addr eq 192.168.75.35 and ldap

Las líneas que nos interesan son las 4 que aparecen a partir del renglón azul, las anteriores sólo son para solicitar datos sobre el esquema que utiliza el OpenLDAP en general. Aquí vemos que IMSVA está solicitando la información de todos los usuarios que se encuentran bajo el BDN dc=training5,dc=tm con el filtro objectClass=person.

Como resultado de esta consulta, nuestro servidor OpenLDAP nos ofrece el listado de todos los usuarios que satisfacen dicho filtro, en este caso sólo el usuario John. Además nos proporciona información de tres atributos: objectClass, cn y mail. Esta información se utilizará posteriormente para importar la  información apropiada de forma interna en IMSVA.

 

Si ahora modificamos el filtro de Wireshark por el siguiente, observaremos que IMSVA realizó la misma consulta a nuestro servidor Windows TMW2K801 para traer la información de todos los usuarios:

ip.addr eq 192.168.75.5 and ldap

Ya que IMSVA tiene la información de ambos servidores LDAP, el siguiente paso es grabar esa información de forma interna para que pueda ser consultada posteriormente de forma interna. Para esto se levanta un servidor interno OpenLDAP y es aquí donde se importa la información de todos los usuarios obtenidos de todos los dominios que se están configurando.

Para confirmar esto abrimos el archivo ldapinterno.cap y aplicamos el siguiente filtro:

tcp.port eq 389 and ldap

Con esta imagen confirmamos que efectivamente existe ahora un servicio de directorio habilitado dentro de IMSVA donde se encuentra la información de los usuarios recién importados.

Debido a este cambio de estructura, el archivo main.cf es modificado para que apunte al servidor OpenLDAP interno donde desde ahora se realizarán todas las consultas para validar buzones.

La configuración del servicio OpenLDAP se encuentra en el archivo slapd.conf que se ubica en la siguiente ruta:

/opt/trend/imss/OpenLDAP/etc/openldap/slapd.conf

Aquí mostramos la configuración del dominio interno que coincide con la que vemos ahora en el archivo main.cf:

database        bdb
suffix          "dc=ldapcache,dc=local"
## slapd configuration parameters
cachesize       100000
dbnosync
checkpoint      50000 5
rootdn          "cn=manager,dc=ldapcache,dc=local"

El último paso es probar la nueva configuración para ver su funcionamiento. En un shell ejecutamos nuevamente el siguiente comando para capturar el tráfico interno del puerto 389 y mandamos un correo de prueba como se muestra a continuación:

# tcpdump port 389 –i lo –s0 –w consultainterna.cap

Observando la captura de paquetes podemos ver que IMSVA puede encontrar satisfactoriamente los buzones de los usuarios que pertencen a los dominios recién agregados en su OpenLDAP interno. Esta es una solución simple y eficiente para proteger los buzones de múltiples dominios sin importar su plataforma.

 

Para mayor información sobre configuraciones y funcionamiento de la solución IMSVA te recomendamos nuestra publicación Manual Avanzado de Implementación y Configuración de IMSVA. También puedes visitar nuestra sección de IMSVA para ver más articulos ó nuestro sección de Libros para ver nuestras publicaciones más recientes.

Recuerda que puedes enviarnos tus preguntas y comentarios a nuestra cuenta de Twitter: @redinskala donde encontrarás más información y tips de seguridad.

Gracias por tu visita!