Sender Policy Framework (SPF) es un protocolo utilizado por los servidores de correo para autenticar correos electrónicos. Se implementa a través de registros de tipo TXT conocidos como registros SPF. Anteriormente, en “ Explicación de registros SPF ”, brindamos una descripción detallada de este concepto. En este artículo, hablaremos sobre cuestiones prácticas y cómo evitar problemas comunes de SPF. La atención se centrará en el segundo error más común al configurar varios registros SPF para un solo dominio.
¡No use varios registros SPF!
Aquí hay un axioma listo para usar: un registro SPF para un dominio. Esto se define explícitamente en RFC4408 : Un nombre de dominio NO DEBE tener varios registros que podrían causar que una verificación de autorización seleccione más de un registro.
En la práctica, el servidor del destinatario rechazará varios registros SPF de su dominio, así que, ¿cuál es el punto de tener más de una entrada? Como regla general, la duplicación del registro TXT de DNS ocurre por accidente. Lo siguiente es un ejemplo:
Un nuevo proveedor de servicios de correo electrónico, digamos Mailgun, le solicita que cree un registro SPF. Olvidas que ya tienes un registro en funcionamiento para Gmail y creas uno nuevo. Al final, tiene dos entradas SPF de la siguiente manera:
v=spf1 include:_spf.google.com ~all
v=spf1 include:mailgun.org ~all
La regla general: varios registros SPF fallarán en la autenticación SPF.
¿Cómo verificar la existencia de mi registro SPF?
La mejor forma de validar un registro SPF para su dominio es utilizar una herramienta dedicada. Veamos cómo funcionan algunos de ellos buscando el registro SPF de Mailtrap.io :
Comprobación de registro SPF por MXToolbox
SPF Record Check proporciona un diagnóstico detallado del registro SPF. Simplemente ingrese su nombre de dominio o dirección IP y haga clic en el botón. También puede verificar otra información, como registros MX, DNS, reputación del remitente y mucho más.
Búsqueda de registros SPF por Easy DMARC
SPF Record Lookup enfatiza las búsquedas de un dominio en particular. El resultado de la validación es el árbol de búsqueda de SPF que puede expandir para buscar búsquedas principales y adicionales, como las siguientes:
Buscar registros SPF por Agari
Agari ofrece una herramienta básica para la verificación de registros SPF. Buscar registros SPF solo muestra el registro válido y proporciona información general, como la cantidad de mecanismos de consulta de DNS y direcciones IP autorizadas.
Comprobación del registro SPF a mano
También puede verificar el registro manualmente usando nslookup
. Para ello, ejecute la línea de comando y escriba nslookup -type=txt <domain-name>
. En la respuesta, debe haber solo una v=spf1
entrada. Por ejemplo:
$ nslookup -type=txt mailtrap.io
Server: 192.168.1.1
Address: 192.168.1.1#53
Non-authoritative answer:
mailtrap.io text = "v=spf1 include:_spf.google.com include:sendgrid.net include:smtp1.uservoice.com ~all"
Margen
Se han encontrado varios registros SPF para mi dominio. ¿Qué debo hacer?
Digamos que se ha metido en una trampa de registros SPF duplicados:
- Has agregado una nueva entrada
v=spf1 ip6:2001:4860:4000::/37 ~all
- Pero ya tenías uno
v=spf1 include:_spf.google.com ~all
Si está utilizando un gran proveedor de correo electrónico como Microsoft Exchange o Gmail, el problema con los registros SPF duplicados debe corregirse automáticamente. Los proveedores de correo electrónico más pequeños no suelen ofrecer funciones tan inteligentes, por lo que probablemente tendrá que manejar todo esto usted mismo. La mejor solución es fusionar sus dos entradas TXT de DNS en una versión consolidada. Para lograr esto, expanda la entrada recién agregada con los datos de la entrada existente, de la siguiente manera:
v=spf1 ip6:2001:4860:4000::/37 include:_spf.google.com ~all
NB: No puede simplemente copiar un registro TXT y pegarlo en otro como este:
v=spf1 ip6:2001:4860:4000::/37 ~all v=spf1 include:_spf.google.com ~all
o
v=spf1 ip6:2001:4860:4000::/37 v=spf1 include:_spf.google.com ~all
Al fusionar varios registros SPF, puede usar v=spf1
solo una vez al principio y all
solo una vez al final.
Mejores prácticas para manejar adecuadamente los registros SPF
El uso de la sintaxis adecuada de varios registros SPF es esencial para la fusión, pero también hay otras notas clave importantes.
Cumplir con los límites de búsqueda de DNS
El número total de mecanismos y modificadores que realizan búsquedas de DNS no debe exceder diez. Cada instancia de la siguiente: include
, a
, mx
, ptr [deprecated]
, exists
, o redirect
, generará una búsqueda. Si se excede este número, la autenticación SPF fallará. Por ejemplo, esta es una entrada incorrecta:v=spf1 include:emailcenterpro.com include:sampledomain.net include:spf-a.hotmail.com include:_spf.google.com include:test.spf.basic.org include:staging.spf.magic.net mx a include:getresponse.com include:servers.mcsv.net ~all
¿Qué sucede si necesito crear un SPF para varias direcciones IP (por ejemplo, más de 10)? Los mecanismos, como all
, ip4
y ip6
, no requieren búsquedas de DNS, por lo que no se incluyen en el número límite especificado. Por ejemplo, el siguiente registro SPF múltiple ip4 no causará ningún problema:
v=spf1 ip4:11.8.2.2/11 ip4:11.8.2.5/13 ip4:11.9.3.6/8 ip4:11.9.3.6/11 ip4:192.168.1.0 ip4:11.42.55.2/13 ip4:12.10.4.8/22 include:spf-a.hotmail.com ip4:12.10.5.8/23 ip4:12.10.5.8/13 ip4:12.10.5.8/11 ip4:12.10.5.8/15 ~all
Esté atento a los include
mecanismos anidados
Cuando verificamos Mailtrap.io usando SPF Record Lookup de Easy DMARC (arriba), la herramienta detectó nueve búsquedas, mientras que solo había tres include
mecanismos:
¿Hay algún problema con la herramienta? ¡Realmente no! Cada include
declaración de este registro requiere una búsqueda de DNS de acuerdo con sus propios registros SPF. Puede verlos todos al expandir el árbol de búsqueda de SPF:
Por lo tanto, cuando incluya un nuevo proveedor de servicios de correo electrónico, asegúrese de que su registro SPF final no exceda el total de 10 consultas DNS permitidas.
Cumplir con los límites de caracteres en los registros SPF
Otro límite asociado con los registros SPF que debe tener en cuenta es el límite de 255 caracteres para una sola cadena. Por ejemplo, la siguiente cadena tiene 253 caracteres (incluidos los espacios):
v=spf1 ip4:11.8.2.2/11 ip4:11.8.2.5/13 ip4:11.9.3.6/8 ip4:11.9.3.6/11 ip4:192.168.1.0 ip4:11.42.55.2/13 ip4:12.10.4.8/22 include:spf-a.hotmail.com ip4:12.10.5.8/23 ip4:12.10.5.8/13 ip4:12.10.5.8/11 ip4:12.10.5.8/15 ip4:12.10.5.8/18 ip4:12.10.5.8/20 ~all
Entonces, ¿cómo puedo agregar una dirección IP u otro parámetro aquí? No puede exceder el límite de 255 caracteres, pero puede dividir su registro DNS de texto en varios. Por ejemplo, la siguiente es la entrada que contiene todos sus parámetros:v=spf1 ip4:11.8.2.2/11 ip4:11.8.2.5/13 ip4:11.9.3.6/8 ip4:11.9.3.6/11 ip4:192.168.1.0 ip4:11.42.55.2/13 ip4:12.10.4.8/22 include:spf-a.hotmail.com ip4:12.10.5.8/23 ip4:12.10.5.8/13 ip4:12.10.5.8/11 ip4:12.10.5.8/15 ip4:12.10.5.8/18 ip4:12.10.5.8/20 include:emailcenterpro.com include:sampledomain.net include:_spf.google.com include:test.spf.basic.org ~all
Desafortunadamente, no puede usarlo como está porque tiene 356 caracteres. Intentemos dividirlo en dos subregistros: record.com TXT y spf2.record.com TXT. Así es como se verán:
record.com TXT “v=spf1 ip4:11.8.2.2/11 ip4:11.8.2.5/13 ip4:11.9.3.6/8 ip4:11.9.3.6/11 ip4:192.168.1.0 ip4:11.42.55.2/13 ip4:12.10.4.8/22 ip4:12.10.5.8/23 ip4:12.10.5.8/13 ip4:12.10.5.8/11 ip4:12.10.5.8/15 ip4:12.10.5.8/18 ip4:12.10.5.8/20 include:spf2.record.com ~all”
spf2.record.com TXT “include:spf-a.hotmail.com include:emailcenterpro.com include:sampledomain.net include:_spf.google.com include:test.spf.basic.org ~all”
Advertencia: Cada división provocará una consulta de DNS adicional desde que agrega la include
declaración.
Para concluir
Un registro SPF creado correctamente es solo una variable en la fórmula para una entrega de correo electrónico confiable. Otras variables incluyen el registro DMARC y la firma DKIM . Consulte nuestras publicaciones de blog dedicadas para configurarlas correctamente.
Deja una respuesta