SPF Sender Policy Framework

Arme esta pequeña guia cuando tuve que ponerme a leer yo sobre esto. Espero que les sirva.

El protocolo SPF (Sender Policy Framework) fue creado para combatir el spam.

Lo que hace es comparar la direccion de mail de un mensaje con una lista de los sevidores autorizados para enviar mails desde ese dominio. 
Actualmente los dos protocolos mas importantes son SPF y Caller-ID (Microsoft). La ventaja de SPF es que solo descarga la cabecera del mensaje consumiendo menos recursos de sistema y menos ancho de banda y si bien Microsoft usa Caller-ID en Exchange, lo compatibilizo con SPF.

Registros SPF
Tanto el servidor de correo saliente como entrante deben operar con SPF y el saliente debe disponer de un registro TXT en los servidores DNS.
Un ejemplo de registro TXT seria:
"v=spf1 +a +mx +ptr include:tecnologiayredes.com.ar exp=spf-err ~all"

v=spf1 Es el número de versión. Hay una.
a, mx, ptr y include Son registros. Pueden existir uno o más registros.
+ y ~ Son prefijos. Los prefijos preceden a los registros -si no se especifican + se implica
exp Es un modificador. Pueden ser cero, uno o dos modificadores.
all Todas las IP, locales y remotas.
include Dominios externos utilizados por los remitentes de e-mails locales, habituales cuando viajan.
a Todas las IP del registro DNS A.
mx Todos los registros A de cada registro host MX.
ptr Todos los registros A de los registros host PTR.
ip4 Uno o más dominios especificados que utilizan Ip IPv4.
exists Uno o más dominios especificados que se identifican como excepciones de las definiciones SPF.
+ La dirección ha superado el test. Ejemplo: +all
- La dirección ha suspendido el test. Ejemplo: -all
~ La dirección ha suspendido el test pero el resultado no es definitivo. Ejemplo: ~all
? La dirección no ha superado o ha suspendido el test. Ejemplo: ?all

Para verificar si un servidor de correo dispone o no de un registro TXT se puede hacer por consola tanto en linux como windows
Windows

Código:
nslookup -type=txt dominio.com

Linux (Ver el MAN del comando host para mas info)

Código:
#host -t txt dominio.com

Ejemplo:

Código:
host -t txt tecnologiayredes.com.ar
tecnologiayredes.com.ar descriptive text "v=spf1 ip4:190.192.160.69 a mx -all"

Esta forma indica que los que pueden enviar correos a nombre del dominio tecnologiayredes.com.ar son:

  • v=spf1 : usa la versión 1 del spf (hay otra pero no la he usado).
  • a : todos los records A que tenga el dominio
  • mx : todos los servidores que reciben correos para el dominio (mx)
  • -all : Nadie más excepto los antes descritos pueden enviar. Considérese definitiva la respuesta (es decir, en serio que nadie más).

Los campos de SOA (Start Of Authority son los datos básicos DNS de un dominio) son:

  • Mail Address: dirección email del administrador de zona del dominio. Generalmente se sustituye la arroba (@) por un punto. Esto lo realiza automáticamente nuestro gestor DNSpro.
  • Refresh: número de segundos que un servidor de nombres secundario debe esperar para comprobar de nuevo los valors de un registro.
  • Retry: número de segundos que un servidor de nombres secundario debe esperar después de un intento fallido de recuperación de datos del servidor primario.
  • Expire: número de segundos máximo que los servidores de nombre secundarios retendrán los valores antes de expirarlos.
  • Minimum TTL: significa Time To Live y es el número de segundos que los registros se mantienen activos en los servidores NS caché antes de volver a preguntar su valor real.

Un ejemplo de configuracion standard de SOA seria:

  • Refresh: 86400 (1 día)
  • Retry: 7200 (2 horas)
  • Expire: 604800 (1 semana)
  • Minimum TTL: 21600 (6 horas)

Un ejemplo de encabezado de SPF seria:
Received-SPF: pass (ejemplo.mail: domain of user@dominio.com
designates 8.8.8.8 as permitted sender)
x-spf-client=MDaemon.PRO.v7.1.0.R
receiver=ejemplo.com
client-ip=8.8.8.8
envelope-from=<user@dominio.com>
helo=smtp.dominio.com

Si el servidor de correo obtiene un error 500 bloquea el mensaje, cerrando la conexión y colocando al remitente en lista negra. Además, añade un filtro heurístico de correo basura.

Mas informacion:
Wikipedia Tipos de registro DNS (Ingles)
Wikipedia Sender Policy Framework
RFC1035 (Ingles)
RFC1034

Tags: 

Predefined Sections

Seccion Cisco   Seccion Linux   Seccion Microsoft   Seccion Redes   Seccion Seguridad   Seccion General