¿Qué es SPF?
SPF (Marco de Política de Remitente) es un método de autenticación de correo que permite a los propietarios de dominios especificar qué servidores de correo están autorizados a enviar correo en su nombre. Los servidores de correo receptores verifican los registros SPF para confirmar que el correo electrónico entrante de un dominio proviene de una fuente autorizada.
Por qué SPF es importante
Sin SPF, cualquiera puede enviar correo que parezca provenir de tu dominio (suplantación). SPF ayuda a:
- Prevenir phishing: Los atacantes no pueden suplantar fácilmente tu dominio
- Mejorar la entregabilidad: Los proveedores de correo confían en los mensajes autenticados
- Proteger la reputación: El correo suplantado no dañará la reputación de tu dominio
- Habilitar DMARC: SPF es un componente básico de las políticas DMARC
Cómo funciona SPF
1. El propietario del dominio publica un registro SPF (TXT) en DNS
2. El servidor de correo del remitente envía un correo afirmando ser de @ejemplo.com
3. El servidor de correo receptor busca el registro SPF de ejemplo.com
4. El servidor verifica si la IP de envío está autorizada
5. Se aplica el resultado: Pass, fail, softfail o neutral
Sintaxis del registro SPF
Un registro SPF es un registro TXT con un formato específico:
v=spf1 [mecanismos] [calificador]all
Ejemplos de registros SPF
Básico (un solo servidor de correo):v=spf1 ip4:203.0.113.50 -all
Google Workspace:
v=spf1 include:_spf.google.com ~all
Múltiples servicios:
v=spf1 include:_spf.google.com include:sendgrid.net ip4:203.0.113.50 -all
Mecanismos de SPF
| Mecanismo | Descripción | Ejemplo |
|---|---|---|
| ip4 | Dirección o rango IPv4 | ip4:203.0.113.0/24 |
| ip6 | Dirección o rango IPv6 | ip6:2001:db8::/32 |
| include | Incluir SPF de otro dominio | include:_spf.google.com |
| a | IPs del registro A del dominio | a:mail.ejemplo.com |
| mx | IPs de los servidores MX del dominio | mx |
| all | Coincide con todo (normalmente al final) | -all, ~all, ?all |
Calificadores
| Calificador | Resultado | Significado |
|---|---|---|
| + (predeterminado) | Pass | Remitente autorizado |
| - | Fail | Remitente no autorizado, rechazar |
| ~ | SoftFail | Probablemente no autorizado, aceptar pero marcar |
| ? | Neutral | Sin aseveración de política |
Mejores prácticas de implementación de SPF
Comienza con SoftFail
Al implementar SPF por primera vez, usa ~all para evitar rechazar correo legítimo:
v=spf1 include:_spf.google.com ~all
Transición a Fail
Una vez confirmado que funciona, cambia a -all para aplicación estricta:
v=spf1 include:_spf.google.com -all
Mantén búsquedas DNS por debajo de 10
SPF permite un máximo de 10 búsquedas DNS (include, a, mx, redirect, exists). Exceder este límite causa fallos de SPF.
# Cuenta como búsquedas DNS:
include:_spf.google.com # 1 (más includes anidados)
a:mail.ejemplo.com # 1
mx # 1
# NO cuenta:
ip4:203.0.113.50 # 0
ip6:2001:db8::1 # 0
Solo un registro SPF
Múltiples registros SPF causan fallos de validación. Combina todos los mecanismos en un registro:
# Incorrecto - dos registros SPF
v=spf1 include:_spf.google.com ~all
v=spf1 include:sendgrid.net ~all
# Correcto - combinado
v=spf1 include:_spf.google.com include:sendgrid.net ~all
Verificación de registros SPF
Usando dig:dig ejemplo.com TXT | grep spf
Usando DomScan:
curl "https://domscan.net/v1/health?domain=ejemplo.com"
# Devuelve el estado hasSPF
Validadores en línea: MXToolbox, mail-tester.com
Problemas comunes de SPF
Demasiadas búsquedas DNS
Síntoma: SPF permerror
Solución: Aplanar includes o usar menos servicios externos
Falta de servicios de terceros
Síntoma: Correo legítimo falla en SPF
Solución: Agregar include/ip4 para todos los servicios de envío (herramientas de marketing, CRM, etc.)
SPF demasiado permisivo
Síntoma: Correo suplantado pasa SPF
Problema: Usar +all o incluir demasiados servicios
Solución: Auditar y restringir remitentes autorizados
SPF es esencial para la autenticación de correo pero funciona mejor combinado con DKIM y DMARC para protección integral.