Configuración de DKIM y SPF con Mandrill

Si usáis Mandrill en vuestros desarrollos, es muy probable que el cliente pida que los correos se envíen desde un dominio suyo, DKIM y SPF nos permiten hacerlo.

Índice de contenidos

  1. DKIM y SPF con Mandrill
  2. Configuraciones necesarias en Mandrill y en nuestro DNS

1. DKIM y SPF con Mandrill

Si trabajáis dando servicio a clientes, y en vuestros desarrollos os encontráis con la necesidad de integrar Mandrill para el envío de correos electrónicos, es muy probable que el cliente os pida estos se envíen en su nombre, es decir desde una dirección de correo propia del cliente.

La combinación de DKIM y SPF permitirá que podamos hacerlo y reducir los problemas de entrega derivados de modificar la información del From Name y el Subject, para simular que el envío lo está haciendo nuestro cliente (sobra decir que lo que se busca es limitar las malas prácticas de esta funcionalidad en técnicas como el phising).

¿Qué es DKIM?

El sistema DKIM (DomainKeys Identified Mail) es un mecanismo de autenticación que se emplea para que un correo electrónico pueda ser verificado por un destinatario, comprobando que el origen de ese correo es realmente el que aparece en las cabeceras del correo electrónico.

Este mecanismo, permite que puedan limitarse los correos que envían los spammers y los atacantes que emplean técnicas de phising, haciendo más difícil la suplantación.

El funcionamiento es sencillo, básicamente se produce un diálogo entre el servidor de correo de destino y el DNS del dominio del remitente. La conversación sería:

  1. Este diálogo se inicia cuando se envía un correo, momento en el que se incluye una cabecera en el mensaje con una firma digital específica.
  2. Cuando el servidor de correo de destino recibe el mensaje anterior, hace una consulta al DNS del dominio del remitente.
  3. Si el campo de la firma DKIM está debidamente configurado, obtiene la clave pública del dominio y la utiliza para descifrar el valor de la firma y recalcular el valor de la firma, ambos valores deben coincidir.

¿Qué es SPF?

El sistema SPF (Sender Policy Framework) es otra protección contra las falsificaciones de correos electrónicos.

A diferencia de DKIM, no busca el firmar y verificar un correo electró enviado, sino que permite especificar mediante un TXT en nuestro DNS desde qué servidores de correo pueden enviarse correos electrónicos de nuestro dominio.

De nuevo se produce un diálogo entre el servidor de correo de destino y el DNS del dominio del remitente. La conversación sería:

  1. Cuando el servidor de correo de destino recibe un email anterior, hace una consulta al DNS del dominio del remitente para comprobar si está configurada una entrada SPF en la que aparezca indicado el dominio desde el que se está recibiendo el correo.
  2. Si el dominio origen está especificado en el SPF de nuestro DNS, se acepta y si no se rechaza el mensaje.

2. Configuraciones necesarias en Mandrill y en nuestro DNS

Ya que es necesario realizar configuraciones tanto en nuestros ajustes de Mandrill como en el DNS, voy a desarrollar a continuación un ejemplo de configuración empleando 1&1 como referencia.

Paso 1. Añdir nuestro Dominio en Madrill

Accedemos a Mandrill https://mandrillapp.com/ y navegamos a través de Domains → Sending Domains para llegar a la pantalla de configuración de los dominios de envío.

Introducimos nuestro dominio, en mi caso: jangulog.es y pulsamos + Add

DKIM-SPF-lista dominios

Una vez introducimos el dominio nos aparecerá la siguiente capa modal solicitando una dirección de correo perteneciente a dicho dominio para poder verificar que tenemos acceso a ella, ya que nos va a enviar un enlace de verificación a ella.

DKIM-SPF-modal email

Una vez pulsemosSend Verification Email se creará una nueva entrada en el panel con el dominio que hemos incluido que aparecerá con un estado Requires verification. Para verificarlo tenemos que acceder al correo que nos habrá llegado de Mandrill (ver imagen siguiente) .

NOTA: La verificación debe realizarla la persona que tenga acceso a Mandrill, por lo que si no somos nosotros mismo, deberemos facilitar a esa persona el enlace que nos haya llegado para que pueda verificarla. Y en el caso contrario, si la persona que reciba el correo si no tiene acceso a Mandrill, es necesario que nos facilite a nosotros el enlace para verificar.

DKIM-SPF-dominio no verificado

Recibiremos un correo del tipo:

DKIM-SPF-verification email

Una vez verificado, cambiará el estado en nuestro panel y quedarán pendiente la configuración y validación del DKIM y SPF propiamente dichos.

DKIM-SPF-dominio verificado

Para proceder a configurar el registro DKIM en el dominio que hemos especificado, desde Mandrill se genera una clave de forma específica para ese dominio. Desde el propio panel, hacemos clic en View DKIM Settings y aparecerá la siguiente capa modal que nos da las instrucciones para crear un registro de tipo TXT en nuestro Dominio.

DKIM-SPF-DKIMvalue

Quedaos con el prefijo: andrill._domainkey y con el value que podéis copiar directamente desde el campo de texto: v=DKIM1; k=ras; p=….

Os recomiendo que para evitar saltar entre Mandrill y la configuración del DNS, os copieis en este paso también los datos de configuración del SPF. Para ello pulsamos View SPF Settings para que Mandrill nos facilite la configuración al igual que con el DKIM:


En este caso únicamente necesitamos el value que podéis copiar directamente desde el campo de texto: v=spf1 include:spf.mandrillapp.com ?all

Paso 2. Configurar las entradas DKIM y SPF en nuestro dominio

Ahora es el momento de configurar nuestro DNS, no cerréis Mandrill aún porque tendremos que volver a tocar cosas en él un poco más adelante. Accedemos en este caso a nuestro panel de control en 1&1: https://clientes.1and1.es/

Accedemos a

Dominios desde el menú y buscamos el dominio que queremos configurar (si tenemos más de uno), en mi caso jangulog.es

DKIM-SPF-panel 1and1 dominios

Una vez en Mis dominios, para acceder directamente a la configuración de este dominio concreto hacemos clic en el menú de puntos a la derecha del dominio y seleccionamos en el desplegable Configuración avanzada (ver imagen siguiente). Si hacemos clic en el dominio, también podemos llegar a la configuración pero implica un par de pasos de navegación adicionales.

DKIM-SPF- 1and1 configuracion avanzada

Una vez en la Configuración avanzada hacemos scroll hasta la sección Configuración DNS y pulsamos Editar

DKIM-SPF-1and1 DNS

Aparecerán como editables las diferentes configuraciones posibles sobre el DNS del dominio:

DKIM-SPF-1and1 DNS Editar

De nuevo bajamos haciendo scroll hasta la sección

Registros TXT y SRV y pulsamos

A&ntildeadir registro


DKIM-SPF-1and1 Registro TXT

Se abrirá una capa modal para que podamos añadir un nuevo registro, vamos a empezar con el DKIM, hay que configurarlo de la siguiente manera:

DKIM-SPF-1and1 TXT DKIM

NOTA 2: Ojo con el prefijo, hay que especificar únicamente mandrill._domainkey, la explicación del tooltip puede llevar a error y ofuscaros intentando poner mandrill._domainkey. 🙂 Una vez lo tengamos relleno, pulsamos Guardar.

NOTA 3: Al guardar podremos ver que el registro se ha añadido pero OJO, realmente no se ha guardado aún, para ello hay que pulsar de nuevo el botón Guardar que ha aparecido abajo a la derecha, y entonces sí que serán efectivos los cambios. Nos pedirá confirmación a través de una nueva modal.

DKIM-SPF-1and1 TXT DKIM OK

Y en el caso del SPF, repetimos la operación anterior para crear un nuevo TXT pero con los siguientes datos:

DKIM-SPF-1and1 TXT SPF

NOTA 4: No hay que especificar Prefijo, es únicamente para el DKIM. Y no os olvidéis de pulsar de nuevo Guardar como en el caso anterior.

Paso 3. Comprobar las configuraciones del DNS en Mandrill

Volvemos a Mandrill para comprobar que nuestras configuraciones son correctas. Desde el panel Domains → Sending Domains hacemos clic en Test DNS Settings, si todo está correctamente configurado tanto el DKIM como el SPF aparecerán como Valid.

DKIM-SPF-1and1 dominio OK