Evita que tus correos sean marcados como spam (y II). Registros DMARC

correo Hace un par de meses hablábamos por aquí de como implementar el uso de registros PTR, SPF y DKIM en tu servidor de correo con objeto de que el servidor destinatario de los mismos pudiera comprobar que el servidor remitente es legítimo. Los registros DMARC (Domain-based Message Authentication, Reporting & Conformance) van un paso más allá y dan instrucciones al servidor destinatario de cual debería de ser su forma de proceder (a quién notificarlo, por ejemplo) en caso de sospechar de un uso fraudulento.

MUY IMPORTANTE: No se trata de un método de control que podamos usar de forma aislada. Debe de usarse conjuntamente con DKIM, SPF o ambos puesto que su objetivo, como ya hemos dicho, no es validar la autenticidad del correo sino informar de como proceder en caso de que la validación del mismo a través de uno de los métodos anteriores falle. Así que antes que nada asegúrate de que implementas SPF, DKIM (o mejor ambos) y que funcionan correctamente.

En la página de recursos de la web oficial del estándard existen varios asistentes que te ayudarán a crear un registro DMARC. Por ejemplo este, este o este otro. Como en el caso de DKIM se trata de un registro de tipo TXT que debes de publicar en el DNS de tu dominio. Si pasas de asistentes y quieres hacer tu propio registro a mano puedes echarle un vistazo a esta pequeña guía que publica Google.

A continuación puedes ver un ejemplo del registro DMARC para el dominio micorreo.net en el que se están usando SPF y DKIM como sistemas de validación. Puedes consultar el significado de cada uno de los parámetros aquí:

_dmarc.micorreo.net. IN TXT "v=DMARC1; p=none; rua=mailto:admin@miotrocorreo.net; ruf=mailto:admin@miotrocorreo.net; adkim=r; aspf=r"

El parámetro p indica la política esperada por parte del servidor receptor y el valor none indica que está funcionando en modo monitor (lo más recomendable hasta que le cojas el pulso al protocolo). quarantine y reject son los otros dos posibles valores. El parámetro sirve para indicar la versión de DMARC que usamos. Estos son los dós únicos parámetros obligatorios.

Los dos parámetros que llevan como argumento una dirección de correo electrónico (rua y ruf) sirven para indicar donde recibir, respectivamente, un informe diario (aggregate report) por parte de cada servidor que reciba nuestro correo y realice comprobaciones de los registros DMARC y un informe forense (failure report) por cada correo procedente de tu dominio y rechazado por cualquier servidor que use este método de control.

NOTA: Muy pocos proveedores soportan aún el parámetro ruf. Por ejemplo los servidores de Gmail lo ignoran. No obstante, usarlo no provoca ningún error de validación, así que no está de más incluirlo.

Por último, aspf y adkim indican si el modo de verificación que se realizará del “identifier alignment” con cada uno de estos protocolos es strict (s) o relaxed (r). No sabria como traducir el término de forma correcta (el inglés no es mi fuerte, lo siento), pero tienes una excelente explicación de ambos modos con ejemplos aquí. Para los perezosos, básicamente comprueba que, para SPF, el dominio de las cuentas de origen y de respuesta coinciden (campos From: y Return-path:) y para DKIM, deben de coincidir los dominios de los campos From: y del argumento d= de la firma DKIM.

Existen diversas formas de comprobar que has realizado una configuración correcta. La primera de ellas es, como siempre, enviar un correo a un servicio que implemente esta comprobación (como Gmail) y ver la cabecera del mensaje que recibe el destinatario:

Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of josemaria@micorreo.net designates 145.255.98.239 as permitted sender) smtp.mail=josemaria@micorreo.net;
       dkim=pass header.i=@micorreo.net;
       dmarc=pass (p=NONE dis=NONE) header.from=micorreo.net

La segunda opción es enviar un correo a una de las muchos servicios de verificación existente como, por ejemplo, checkmyauth@auth.returnpath.net, mailtest@unlocktheinbox.com o pythentic@had-pilot.biz (a este último con la palabra dmarc en el campo asunto del correo que envíes). Como respuesta recibirás un completo informe sobre las validaciones que tus envíos pasan de forma correcta o inválida. Algunas veces la respuesta puede tardar varias horas, así que ten paciencia. El resultado de la validación de, por ejemplo, este último servicio sería así:

2014/05/28 14:50:10 :Your DMARC record for   '_dmarc.micorreo.net'   is   'v=DMARC1; p=none; rua=mailto:josemaria.morales@gmail.com; ruf=mailto:josemaria.morales@gmail.com; adkim=r; aspf=r'  

Here are the results of the message from josemaria@micorreo.net
received on Wed May 28 14:48:25 2014 with Subject dmarc

The message was: Delivered
The SPF result was: pass
The DKIM result was: True

**********************************************************
Enter your email address and this hash stringin the Review My Results link for message header analysis of results: address=josemaria@micorreo.net  hash=YFXQ3KxaKAsWmAS0HmrN

**********************************************************
Full Record

Id[1]:  
	SPF result: pass 
	DKIM result: True 
	Alignment result: Pass 
	Feedback: RecordType 
	Delivery Result: Pass 
	Source IP: 145.255.98.239 
	User Agent: Pythentic 
	Version: 1 
	Recipient: had-pilot.biz 
	Arrival Date: Wed May 28 14:48:25 2014 
	From: josemaria@micorreo.net 
	DKIM Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=micorreo.net; s=mail;
	t=1401302897; bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;
	h=Date:From:Reply-To:To:Subject:References:In-Reply-To:From;
	b=Hr4mDbw43WdxyXq93zc5y0FlCJBOuHrxXfJLch6yoYRwqL/aMMcc/YnKD+PI++PDf
	 IDdCXWrUAuNhYEM3nqggrB6gKRvl0d0xxbIhpb/THdj90fq0d2eeyA/P8N5Cj7D+ew
	 dW++rfkwyN2PqI6BKhXPtwkDDc00W1JM3/7hIvf4= 
	Subject: dmarc 
	Reported: 0 
	SPFReason: sender SPF authorized 
	DKIMReason: Good DKIM Signature. 
	DMARCReason: Policy=none; accept. 
	Message: Received: from [192.168.1.5] (125.45.219.87.dynamic.jazztel.es [87.219.45.125])
	(using TLSv1 with cipher ECDHE-RSA-AES128-SHA (128/128 bits))
	(No client certificate requested)
	by invernalia.micorreo.net (Postfix) with ESMTPSA id 1A1A514200B
	for <pythentic@had-pilot.biz>; Wed, 28 May 2014 20:48:15 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=micorreo.net; s=mail;
	t=1401302897; bh=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN/XKdLCPjaYaY=;
	h=Date:From:Reply-To:To:Subject:References:In-Reply-To:From;
	b=Hr4mDbw43WdxyXq93zc5y0FlCJBOuHrxXfJLch6yoYRwqL/aMMcc/YnKD+PI++PDf
	 IDdCXWrUAuNhYEM3nqggrB6gKRvl0d0xxbIhpb/THdj90fq0d2eeyA/P8N5Cj7D+ew
	 dW++rfkwyN2PqI6BKhXPtwkDDc00W1JM3/7hIvf4=
Message-ID: <53862F70.5030601@micorreo.net>
Date: Wed, 28 May 2014 20:48:16 +0200
From: =?UTF-8?B?Sm9zw6kgTWFyw61hIE1vcmFsZXMgVsOhenF1ZXo=?=
 <josemaria@micorreo.net>
Reply-To: josemaria@micorreo.net
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0
MIME-Version: 1.0
To: pythentic@had-pilot.biz
Subject: dmarc
References: <5384CED8.4040701@micorreo.net>
In-Reply-To: <5384CED8.4040701@micorreo.net>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-dkim: d=micorreo.net,s=mail,DKIMReason=Good DKIM Signature.
X-spf: i=145.255.98.239,h=micorreo.net.,s=josemaria@micorreo.net,SPFResult=pass

Por último, existen servicios que validan directamente el registro que has introducido en el DNS dándote, además, una completa explicación de lo que implican los parámetros que has elegido y las alternativas que tienes. Este es mi favorito.

En la dirección que has indicado como valor del argumento rua recibirás un correo electrónico diario por cada servidor al que envíes correo y use la validación DMARC informándote de las validaciones y/o acciones realizadas. En estos correos recibirás un adjunto comprimido en formato zip con un xml en su interior. El contenido de dichos xml es fácil de interpretar pero, si lo deseas, tienes aquí un convertidor a “formato humano” y a continuación un ejemplo del resultado:

Informe Diario XML DMARC

Por cierto: si, como yo, usas un correo de un dominio distinto al que estás validando para recibir los correos con los informes, puede que algún servidor o servicio te de algún error. La solución está en añadir un nuevo registro en el DNS indicando esto. Este segundo registro debería de ir en el DNS del dominio correspondiente a la cuenta de correo donde quieres recibir los informes, ojo, así que deberías de tener control sobre él o, al menos, alguien que te lo permita. Aquí te lo explican muy bien y a continuación tienes el mío:

micorreo.net._report._dmarc.miotrocorreo.net. IN TXT "v=DMARC1"

Ah, y si quieres configurar tu servidor posfix para que realice la comprobación de los registros dmarc en los correos que recibe puedes usar OpenDMARC.

ACTUALIZACIÓN: Y casi se me olvida… En dmarcian tienen un servicio que te permite habilitar una suerte de panel de control para controlar el estado de SPF, DKIM y DMARC en todos los dominios que controles:
ACTUALIZACIÓN (Y II):Chema Alonso ha publicado una entrada en la que hace un repaso bastante sencillo de seguir de SPF, DKIM y DMARC

13 opiniones en “Evita que tus correos sean marcados como spam (y II). Registros DMARC”

  1. Muchas gracias por la info.

    Nunca había oído hablar acerca de DMARC. Había configurado correctamente SPF y DKIM, y después de leer esta entrada, he configurado también DMARC.

    Ale, ahora mis correos electrónicos pasan todos los test 😉

    Gracias tío, mola tener toda esta info en español.

    Salud!!

      1. Sí, y tanto que lo sois.

        Josemaría, una pregunta: Esta mañana he recibido el primer informe XML de Google.

        Exactamente, ¿qué info recoge ese informe?, ¿acerca del correo que he enviado y cómo ha sido tratado en destino?

        Veo en los comentarios que tú tiras de dmarcian para mantener estadísticas y demás, ¿hay información sensible en los informes XML que desaconseje el compartir dicha info con terceras partes?

        Gracias de nuevo!!

      1. ¿Facebook? Vives al límite tío, controla. Yo no me atrevo a tanto.

        He mareado con los XML y, a primera vista, no veo ninguna información delicada.

        Pero, he leído que el problema puede venir con los forensics, que esos llevan el texto del mensaje incluido, y eso ya me da un poco más de urticaria.

        Por el momento, se lo voy a pasar todo a los de dmurcian.

        Saludos!!

  2. Estimados, alguno sabe como recuperar un correo legitimo marcado como spam?.
    me llega la notificacion de spam y un adjunto en formato txt con la siguiente informacion:

    X-Envelope-From:
    X-Envelope-To:
    Received: from 1.w00n.com ([168.235.82.93])
    by antispam.t-simplifica.net(8.13.0/8.13.0) with SMTP id tATJWJcE003524;
    Sun, 29 Nov 2015 15:32:20 -0400
    (envelope-from )
    DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
    d=pack164.w00n.com; s=default; h=Content-Transfer-Encoding:Content-Type:
    List-Unsubscribe:MIME-Version:Reply-To:From:Date:Message-ID:Subject:To;
    bh=M5gSDhaw7yLT/3qBZadANp29O3/bCiWH077syxt2lUU=; b=YKzwonRCZ0zO5Wbz4I5stAumhn
    2tW3+XKuJ4Fm9Ur1ls6mjiE5dxXardcjBoolu6KDvQt6HrL6Vh48dSjH+6ph3nPYXoO6aoaGQ0ts6
    v9543kfXosi2wAkWi5NldZZpZKDZc4hJyn80ZwwnBRKp+M3wMbLmhf4CKeNSaIEpudC8=;
    Received: from pack163w00n by 1.w00n.com with local (Exim 4.86)

  3. Buenas tardes,
    Los correos enviados desde mi servidor llegan siempre a la carpeta de spam (A no ser que el usuario señale el correo como deseado).
    He realizado la configuración de SPF, DKIM y DMARC y nada. He enviado un mensaje a soporte con mi rango de ips y me responden esto:
    Note: Errors are unlikely, however, if an error is indicated, please resubmit the specific IP or IP range.
    ¿Qué puedo hacer?
    Aquí dejo una cabecera de mis emails.
    Authentication-Results: hotmail.com; spf=pass (sender IP is mi-ip; identity alignment result is pass and alignment mode is relaxed) smtp.mailfrom=mi-email; dkim=none (identity alignment result is pass and alignment mode is relaxed) header.d=mi-email; x-hmca=pass header.id=mi-email
    X-SID-PRA: mi-email
    X-AUTH-Result: PASS
    X-SID-Result: PASS
    X-Message-Status: n:n
    X-Message-Delivery: —
    X-Message-Info: —
    Received: from mi-servidor ([mi-ip]) by BAY004-MC2F21.hotmail.com over TLS secured channel with Microsoft SMTPSVC(7.5.7601.23143);
    Fri, 16 Oct 2015 07:04:25 -0700
    Received: from mi-dominio (localhost [IPv6:::1])
    by mi-servidor (Postfix) with ESMTPA id –;
    Fri, 16 Oct 2015 16:04:23 +0200 (CEST)
    MIME-Version: 1.0
    Content-Type: text/plain; charset=US-ASCII;
    format=flowed
    Content-Transfer-Encoding: 7bit
    Date: Fri, 16 Oct 2015 16:04:23 +0200
    From: mi-email
    To: mis-otras-cuentas
    Subject: Prueba
    Message-ID:
    X-Sender: mi-email
    User-Agent: Roundcube Webmail/1.1.3
    Return-Path: mi-email
    X-OriginalArrivalTime: 16 Oct 2015 14:04:25.0371 (UTC) FILETIME=[909B96B0:01D1081B]

    Prueba
    A ver si alguien pudiera arrojarme algo de luz en este tunel en el que me encuentro…

    Saludos

    1. Arturo: puedes redireccionar los correos de información a una cuenta que abras en dmarcian. Así no te llegarán y tendrás estadísticas de uso disponibles siempre que te apetezcan. Esto es lo que hago yo. Si por el contrario no quieres pasar estos datos a una tercera parte siempre puedes crear un filtro en tu correo para que los elimine directamente cuando lleguen ¿no?

  4. Pingback: @planetasysadm

Deja un comentario

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