spfini.rtf

Anuncio
Introducción al SPF (Sender Policy Framework).
Fecha: 20/09/2004
Autores: Jesús Sanz de las Heras (RedIRIS) y Víctor Fernández Gómez (Universidad Pablo
Olavide)
Revisión: Grupo de Apoyo IRIS-MAIL
Presentación
El objetivo de este documento es ofrecer una visión general de SPF a la Comunidad RedIRIS.
Existe mucha información y documentación acerca de SPF por lo que no se profundizará en
exceso en el tema y se intentará exponer desde el punto de vista de las tipologías comunes
de los Servicios de correo de las instituciones RedIRIS.
Aunque a día de hoy SPF no es todavía un estandar en Internet, RedIRIS lo considera una
iniciativa que se consolidará en su estado actual o evolucionada (Sender-ID). Consideramos
que no se podrá solucionar el problema del spam si previamente no se definen soluciones para
autenticar el dominio emisor, y SPF es la solución mas simple y desarrollada que existe. La
inversión en tiempo necesaria para desplegar SPF en la Comunidad RedIRIS siempre será
positiva independientemente de su futura estandarización ya que es creciente su evolución
internacional. Además SPF, de forma colateral, nos ayudará a reforzar algunos aspectos de la
política del servicio como es el tema de la movilidad de nuestros usuarios.
Por tanto RedIRIS considera una necesidad la implantación de SPF en toda la Comunidad.
La implantación de SPF exclusivamente
dependerá de cada institución pero hemos
considerado que dado la homogeneidad en la tipología de Servicios de Correo Electrónico
podemos ayudarnos entre todos para una mayor eficacia ya que es necesario que cada uno
entendamos correctamente el protocolo, sus implicaciones y diseñemos las fases progresivas
de implantación en nuestra institución.

Las páginas oficiales de spf podréis encontrarlas en:

Para cooodinarnos en RedIRIS sobre los aspectos de SPF podéis utilizar la lista <[email protected]>
http://spf.pobox.com.
Introducción SPF
En pocas palabras, SPF es un mecanismo que proporciona un método para autenticar el
dominio de una dirección de correo. Permite a las estafetas receptoras de correo, comprobar
que la estafeta emisora que desea entregar un mensaje identificado como procedente de un
determinado dominio, está autorizada a hacer dicha entrega.
Supongamos, por ejemplo, que un equipo cualquiera intenta entregar un mensaje al servidor de
Rediris, un mensaje que dice proceder de la dirección <[email protected]> que es una
dirección existente de un dominio correctamente registrado y configurado. Es muy posible que
el servidor de Rediris acepte sin muchas más comprobaciones el mensaje.
Si otro equipo diferente intenta una entrega utilizando la misma dirección origen del mensaje:
<[email protected]>, seguramente el servidor de Rediris también lo acepte.
¿Y desde un nuevo equipo? También lo acepta.
¿Y otro más? Ídem.
Como vemos, lo que se echa de menos es una pequeña comprobación antes de aceptar el
mensaje. Una comprobación que nos confirme que el equipo emisor, es un equipo que los
responsables del dominio centro.es han designado para la entrega.
SPF permite esta comprobación.
Mucho software de spam y de inoculación de virus aprovecha esta característica, esta ausencia
de comprobaciones en la entrega, y usa direcciones falsificadas para entregar correo infectado
y no deseado.
Contra este tipo de software, y para evitar estos esos mensajes sirve SPF. Pero SPF no es un
sistema para erradicar el spam sino para solucionar el problema del uso ilegítimo de las
direcciones de correo y garantizar la legitimidad de nuestro dominio y la imagen de nuestra
institución en el tráfico SMTP saliente. Es un mecanismo que además nos permitirá garantizar
la legitimidad del tráfico de entrada eliminando el falsificado que actualmente es un alto
porcentaje.
SPF no comprueba el contenido del mensaje sino sólo la legitimidad del emisor. Se deja en
manos del
¿Cómo funciona, a grandes rasgos, SPF?
La idea de SPF es mimetizar el mecanismo que se utiliza para la entrega de correo y aplicarlo
también en la recepción.
Recordemos: durante el envío de mensajes, la estafeta emisora comprueba el dominio destino
del mensaje y utiliza el sistema de nombres dominios (DNS) para localizar los servidores que
están designados para la recepción (simplificando: registros MX y registros A). Es lo que se
llama enrutamiento de correo.
SPF es una imagen especular del mecanismo anterior: durante la recepción de mensajes, la
estafeta receptora, comprueba el dominio origen del mensaje y utiliza el sistema de nombres
de dominios (DNS) para localizar los servidores que están designados para el envío (en este
caso: registros TXT con un formato propio, formato spf).
Llegados a este punto, la estafeta receptora puede decidir rechazar el mensaje si el equipo que
ha establecido la conexión no está convenientemente autorizado en los registros spf para la
emisión de mensajes con determinado dominio.
Implementación de SPF.
Implementar SPF no es necesario para que nuestro Servicio de correo funcione. Es una
buena práctica, fácil de implantar y que garantizará al exterior la buena imagen de nuestro dominio.
Para desplegar SPF debemos actuar en dos frentes. Ambas acciones son independientes y no
importa el orden en el que sean implantadas.


Salida correo: publicación de registros SPF para cada dominio de la institución.
Entrada correo: instalación de mecanismos de gestión basados en SPF en las estafetas receptoras
de mensajes (SPF-enabled MTAs).
Aunque independientes, como hemos dicho, ambas operaciones son complementarias y de
poco sirve una sin la otra: que todos los dominios publiquen sus registros SPF no es útil si no
hay estafetas que utilicen estos registros para la gestión de recepción (y eventualmente el
rechazo de mensajes); análogamente, poco eficaces serán aquellas estafetas capaces de
interpretar registros SPF, si el número de dominios que publican estos registros no aumenta.
Los pasos recomendados para implementar SPF es:
1º Tráfico entrante: Publicar en DNS los registros SPF de los dominios bajo nuestra
responsabilidad.
2º Divulgarlo a nuestros usuarios
3º Tráfico entrante. Instalar y configurar los módulos SPF adecuados a su MTA para
analizar el correo entrante y tomar las correspondientes acciones.
Publicación de registros SPF.
Operativamente es la más sencilla de las dos acciones para avanzar hacia la implantación
completa de SPF, pero hay que estar muy seguros de lo que hacemos. Publicar consiste en
declarar, para cada uno de los dominios, las IPs que nuestra institución utiliza para enviar
correo, un registro SPF asociado a dicho dominio en el servicio de nombres responsable. Este
registro designa los servidores que están autorizados para enviar correo desde este dominio.
Básicamente al publicar estos registros en DNS estamos definiendo nuestra política de salida
del correo, y de alguna forma mejora la reputación de nuestro dominio de correo en Internet. Se
deben definir registros SPF para todos nuestros dominios y subdominios de correo no para
nuestros servidores.
Con la publicación en el DNS de los registros SPF estamos describiendo el comportamiento
del servicio de correo de una institución respecto al envío de mensajes y por tanto debería ser
incluido en el Documento de Correo Electrónico Institucional (DOCE) aclarando su significado.
La declaración de registros SPF en muchos casos será transparente a los usuarios locales
pero en otros no; en ambos caso es imprescindible informarlos.
Es importante destacar que, al publicar estos registros, la institución accede de forma explícita
a que sean rechazados (o tratados de forma diferenciada) todos aquellos mensajes que sean
emitidos desde servidores distintos a los descritos por los mismos, aceptando, de alguna
forma, la responsabilidad del rechazo, que no recae, como suele ser habitual, en la estafeta
rechazante. En cierta manera, la estafeta receptora rechazaría un mensaje por “motivos SPF”
porque la institución responsable del dominio así lo solicita en sus registros SPF
Para intentar explicarlo mejor, lo haremos con un ejemplo tipo de registro SPF en un servidor
DNS (tipo Bind) tendría el siguiente aspecto:
centro.es
IN TXT "v=spf1 a mx ptr -alll"
Donde,

centro.es es el nombre del dominio afectado (por tanto, este registro se aplica a los
mensajes con origen (MAIL FROM) del tipo <[email protected]>. Es importante
resaltar que este registro no se aplica a subdominios debajo del dominio afectado, es
decir no se aplica a mensajes del tipo <[email protected]> que debería
tener su propio registro SPF según politica institucional.

IN TXT, identifica la categoría de registro en el sistema de nombres de dominio (DNS). Se trata de un
registro de tipo "texto" de direcciones Internet.

"v=spf1 a mx -all" es la parte spf del registro DNS es la mas importante. Más
concretamente:
v=spf1 indica que se trata de un registro spf versión 1 (la única hasta el momento)
a y mx
identifican los servidores que podrán enviar mensajes del tipo
[email protected] , en este caso identificados como:
"a" está indicando que podrán hacerlo las IPs asociadas a los registros
de tipo A del dominio centro.es.
"mx" está indicando que podrán hacerlo las IPs asociados a los
registros MX del dominio centro.es
"ptr" está indicando que podrán hacerlo las IPs cuya resolución inversa
pertenezca al dominio .centro.es
-all indica el valor de la información declarada anteriormente con las opciones de este ejemplo:
"a", "mx","ptr". En este caso indica que el valor de lo declarado es alto y por tanto cualquier
chequeo spf deberá dejarlo pasar. El resultado definido en el protocolo SPF por parte del MTA
es "Pass". No es necesario hacer chequeos adicionales al mensaje.
Podríamos poner "~all" en el registros spf con lo que estaríamos declarando que las
IPs indicadas en los registros "a","mx" o "ptr" las estamos dando un valor menor y que
cualquier chequeo spf lo dejará pasar pero avisando que es conveniente hacer otro
tipo de chequeos pues no son de confianza. El resultado definido en el protocolo spf
por parte del MTA es "softail".
"~all" es considerada una opción transitoria y para eso fue definida dentro del protocolo
spf,. Es decir cuando queremos declarar nuestros registros SPF pero no estamos
seguros que algún usuario no vaya a utilizar nuestras IPs para enviar correo como
@centro.es.
Por tanto ¿qué estamos declarando cuando definimos unos registros SPF para el dominio
correo.es ?
centro.es
IN TXT "v=spf1 a mx ptr -alll"
Estamos garantizando
la reputación de la institución asociada al dominio centro.es
certificando que exclusivamente (-all) podrán enviar correo como @centro.es las IPs
correspondientes a:



Registro A del dominio centro.es.
Registros MX del dominio centro.es
Cualquier IP cuya resolución inversa tenga el dominio .centro.es
En definitiva un registro spf tiene dos partes:
1.Parámetros que nos permiten indicar las IPs que declaramos como emisoras de
correo de nuestra institución
2.Parámetro del valor que damos a lo declarado que está asociado a un resultado en el
algoritmo SPF y que por tanto intervendrá en las acciones que tomen los servidores
remotos al entrar el correo.
Acciones o chequeos SPF
Un servidor SMTP con SPF cuando recibe un mensaje de correo se hace la siguiente
pregunta ¿Esta autorizada la IP del cliente SMTP a enviar ese mensaje? Para responder a
esta cuestión se llevan a cabo las siguientes acciones:
1.Extrae el Sender del mensaje que dice estar enviándolo y la rdel cliente SMTP
2.Separa la parte del dominio del Sender, chequea sus registros SPF para comprobar
la IP
3.Al chequear los registros spf se devuelven varios resultados para la toma de decisión:
 Pass. El Sender es bueno y ha declarado que envía correo desde esa IP. EL mensaje
se dejaría pasar.
 Fail. El Sender es malo. El sender ha publicado una listas de Ips desde la que ellos
envían mensajes y la IP cliente no es una de ellas. El mensaje se rechzaría.
 SoftFail. El sender puede ser bueno o malo. El sender ha declarado registros spf
pero en un estado de migración. El mensaje se debería chequear de nuevo.
 Unknow. No se sabe. El Sender no ha declarado ningún registro SPF.
Ejemplos SPF
A continuación damos ejemplos básicos de dos configuraciones típicas en RedIRIS.
Ejemplo 1.



Datos:
Varias direcciones institucionales (@centro.es, @subd.centro.es)
Un sólo punto de encaminamiento de entrada/salida (smtp.centro.es)
Servicio a usuarios móviles institucionalizado
Como se ha comentado previamente es necesario declarar registros SPF para cada una de las
direcciones oficiales de la institución con o sin subdominios. Es necesario declarar las
máquinas que sacan al exterior el correo. Todos los usuarios de esta institución conocen y
disfrutan de los servicios de correo institucionales cuando salen fuera del dominio: en su caso,
congreso etc. Por tanto los registros en este caso serían:
centro.es
subd.centro
text = "v=spf1 mx -all"
text = “v=spf1 mx -all”
Los usuarios no podrán encaminar correo con ninguno de los Sender institucionales a través
de servidores diferentes que los declarados como registros MX. Cualquier servidor que reciba
correo con estos dominios procedente de las IPs de los registros MX deberá aceptarlos (-all
indicado en el registro dice al servidor PASS). El procedente de IPs diferentes que las
declaradas en los registros MX podrá ser rechazado (FAIL), pero recordemos que no lo
rechazan los servidores que chequean el correo sino que es rechazado porque lo indica la
política declarada por la propia institución a través de los registros spf.
Ejemplo 2.



Datos:
Direcciones únicas
Puntos diferentes de encaminamiento de entrada (registros MX) y salida
(relayout.centro.es)
No se ofrece servicio a usuarios móviles y/o no estamos seguros de como
acceden los usuarios al servicio desde el exterior.
Dado que la dirección es única basta con declara un solo registro spf. En este caso el tráfico
de entrada y salida esta desdoblado, es un buena idea pues a veces es necesario aplicar
diferentes políticas, pero en lo que afecta a SPF deberemos definir exclusivamente las
maquinas salientes no las entrantes (registros MX). Por otro lado no se ofrecen servicios de
movilidad a los usuarios o no estamos seguros, por lo tanto debemos declarar unos registros
transitorios (~ all) para evitar que cualquier usuario haga uso del correo desde otras IP y no le
funcione. Transitorio quiere decir temporal, es decir que cuando dispongamos de servicios
móviles estables y estemos seguros que todos nuestros usuarios los conozcan deberemos
modificarlos y definir unos registros garantizados (-all), pero mientras tanto:
centro.es
subd.centro
text = "v=spf1 a:relayout.centro.es ~all"
text = “v=spf1 a:relayout.centro.es ~all”
Con esta definición estamos declarando que el correo enviado como @centro.es y
@subd.centro.es debe de ser emitido por la IP asociada a “relayout.centro.es” pero no
exclusivamente (~all). Los servidores que recogen el correo y chequeen estos registros está
recibiendo el código SOFTFAIL, que les está indicando que se acepte pero con precauciones.
Casos especiales en la Comunidad RedIRIS
Caso 1. SAUCE de RedIRIS (Servicio de Acceso Universal al Correo Electrónico)
SAUCE es un servicio Webmail que permite a cualquier usuario de la Comunidad
RedIRIS a recibir correo de sus servidores institucionales y enviar a través de las máquinas de
RedIRIS. ES decir permite a cualquier usuario enviar correo con el Sender de su Institución a
través de IP que no le pertenecen como son las del Centro de comunicaciones RedIRIS. Este
correo es tratado como falso y sería rechazado por cualquier servidor que haga chequeos SPF,
a no ser que hayan declarado sus registros como ~all. La solución más correcta es definir unos
registros SAUCE siempre que queramos que nuestros usuarios utilicen este Servicio de
RedIRIS en lugar, o además de, del Servicio WebMail institucional . Para ello el registro
adecuado para el Ejemplo 2. anterior sería:
centro.es
subd.centro
text = "v=spf1 mx include:sauce.rediris.es -all"
text = “v=spf1 mx include:sauce.rediris.es -all”
RedIRIS definirá en su zona DNS un registro:
sauce.rediris.es
text = "v=spf1 a:130.206.1.3 -all"
De esta forma nuestra institución está indicando que sea aceptado todo el correo con
direcciones @centro.es y @subd.centro.es que procedan exclusivamente (-all) de las IP
asociadas a los registros MX y de la IP asociada a los registros SPF de “sauce.rediris.es” que
es la 130.206.1.3.
Caso 2. Servicio MailBackup de RedIRIS (pendiente de estudio)
Incorporación de mecanismos de chequeo SPF en las Estafetas
receptoras.
Esta actividad es algo más compleja. Hasta ahora hemos visto que el control de SPF en la
salida de correo depende de la declaración de registros spf en nuestra zona DNS sin necesidad
de llevar a cabo modificación alguna en los programas. Por el contrario el control SPF para el
tráfico entrante implica una serie de cambios en la configuración del software de la Estafeta.
Actualmente sendmail, postfix, exim y qmail disponen de soporte para tratar mensajes según
las directivas spf..
Activar el chequeo SPF en una estafeta puede requerir compilaciones adicionales, ajustes de
configuración y análisis iniciales, pero realmente no tiene implicaciones importantes, más allá de
la anotación de este dato en el Documento de Correo Electrónico (DOCE) o equivalente, es
decir informar a los futuros y actuales usuarios de nuestro Servicio de Correo.
Que la estafeta de nuestra institución trate un mensaje en recepción según se desprende de la
interpretación de los registros SPF es tratarlo según ha establecido el centro responsable
de la estafeta emisora y, por tanto, la responsabilidad recae en la institución titular del dominio
emisor, que es la que sugiere el comportamiento que deben darse a los mensajes que digan
proceder del dominio del que es responsable.
El correo procedente de dominios que no tienen declarados registros spf serán aceptados pero
analizados como sospechosos, debiéndose chequear con otros sistemas: listas negras, filtros
de contenidos etc.
La librería de referencia de implementación de SPF está escrita en Perl: Mail::SPF::Query.
Sendmail conecta con esta librería a través de su interface Milter. Las últimas versiones de
posftix lo hacen utilizando lo que llaman un “policy daemon”. Exim y Qmail incorporan SPF
mediante mecanismos ACL y un parche sobre el fuente original respectivamente.
En todos los casos es posible configurar el conector (plugin) SPF para que, en lugar de
rechazar el mensaje, únicamente se añada una línea de control (Received-SPF: fail) al mensaje
tratado. Es un comportamiento conservador que puede ayudar en las etapas iniciales de
prueba.
Problemas
Si bien SPF es una implementación muy sencilla conlleva algunos efectos colaterales. Como
dice su creador “No es posible hacer una tortilla sin romper el algún huevo” por tanto los
huevos son:

Redirecciones o forwarding
Gusanos, virus y spam falsifican la dirección del Sender con el objeto de esconder su origen
real. ¿A que se llama redirección o forwarding? Al encaminamiento que hace una Estafeta
(MTA-forwarder) hacia otra dirección externa (MTA-destinatario) de un mensaje procedente de
un servidor (MTA-emisor). Es el clásico caso de un usuario que configura su cuenta (.forward)
o indica al postmaster para que todo su correo sea encaminado a otra dirección con
/etc/mail/aliases etc. Es una acción muy común, cuando un profesor se desplaza durante un
periodo largo a otra universidad o cuando un compañero ha dejado de trabajar en nuestro
centro y desea que provisionalmente todo el correo le sea encaminado a otra dirección.
Ejemplo. Supongamos que la dirección del usuario [email protected] (MTA-forwarder) está
reencaminada a [email protected] (MTA-destino). Cuando el usuario [email protected]
(sender) envíe un mensaje a [email protected] (MTA-destino) el MTA-forwarder lo reencaminará
a la dirección destinataria [email protected] del MTA-destino. El Sender emisor del mensaje
no se modifica en todo el trayecto. En un escenario SPF esto ya no será posible ya que el MTAforwarder no podrá ser responsable de los registros SPF del emisor. Por tanto el MTA-destino
hará el correspondiente chequeo SPF y el mensaje podrá ser rechazado ya que la IP de la que
procede no se corresponde con lo declarado en los registros spf del Sender ([email protected]),
es decir lo vería como una falsificación.
[email protected]
SMTP
↓
[email protected]
SMTP
↓ 
[email protected]
dom.es text "v=spf1 a:1.1.1.1 -all"
Mail From: <[email protected]>
centro.es text “v=spf1 a:2.2.2.2 –all”
SMTP
Mail From: <[email protected]>
+
SPF
La IP origen (2.2.2.2) no corresponde a lo declarado en
los registros SPF del dominio (dom.es) de del sender
que dice ser la 1.1.1.1
En un escenario SMTP normal vemos que el campo Mail From: no cambia en ninguna de las
transacciones. En un escenario SPF se necesita que el MTA-forwarder reescriba la dirección
del Sender de tal forma que el mensaje de salida lleve un return-path que haga referencia al
servicio de forwarding e incluya el sender. Este proceso es lo que SPF ha denominado SRS
(Sender Rewriting Scheme) y hay una librería de desarrollo (módulo perl Mail::SRS) para llevar
a cabo esta reescritura, existiendo una amplia variedad de programas SRS que nos ayudaran
en solucionar este problema.
La solución SRS que adopte la institución dependerá de la política de redireccionamiento que
tenga la institución, si es soportado en casos puntuales, si es un servicio que se ofrece a todos
los usuarios, mecanismos utilizados etc
Dispone de mas información sober SRS en http://spf.pobox.com/srs.html

Uso de servidores ajenos
Otro problema que ya se ha comentado previamente es el que puede darse con usuarios de
nuestros centros que, utilizando una dirección origen correcta [email protected] , envíen
mensajes desde un servidor de un dominio ajeno, sin que el mensaje pase por nuestro servicio
de correo. Estos usuarios podrían verse afectados por la definición de registros SPF si alguna
estafeta a la que dirigen sus correos está preparada para tratar estos registros. Para evitar las
quejas de estos usuarios, tendremos que informarles o preparar una solución (SMTP-AUTH,
pop-before-smtp o similar) e invitarlos a que envíen sus mensajes utilizando el servicio de
correo del centro..
Resumen
La ventaja operativa fundamental de SPF es que colaborará en la reducción de correo y virus
no deseados y con ello aliviará la carga de las estafetas de correo, mejorando el uso de los
recursos (cpu, almacenamiento y red) y la calidad del Servicio de correo electrónico.
SPF comienza a modificar el paradigma que hasta ahora impera en el intercambio de correo
electrónico: “se asume la inocencia del emisor hasta que no se demuestre su culpabilidad” por
otro donde “se asume culpabilidad hasta que no se pruebe la inocencia del emisor”.
SPF no es la solución definitiva para eliminar el spam. Es sólo una del abanico de opciones
entre las que elegir para mantenerlo bajo un control razonable. Por si sola, ya sabemos que no
es suficiente. La combinación de varias soluciones de este tipo colabora a mantener el volumen
de spam en unos márgenes aceptables.
El grado de éxito de SPF dependerá del número de dominios registrados. Actualmente es
exponencial su crecimiento. El conjunto de dominios SPF registrados en Internet puede ser
interpretado como una gran lista blanca de dominios en los que podremos confiar. Nada
impedirá que un dominio con registro SPF distribuya correo no deseado basura o spam pero
dispondremos de mas datos para canalizar una denuncia.
RedIRIS fomentará en su Comunidad la implementación de SPF en diferentes etapas:
divulgación, declaración de registros spf y mecanismos de chequeo en los diferentes MTAs
mas habituales: sendmail, postfix y exim.
Descargar