Medidas anti-spam I, SPF: Que es, como funciona y como implementarlo

Buenos días a todos, esta vez toca el turno a nuestros queridos registros SPF. Algunos los conoceréis desde hace días, otros los habréis oído nombrar o leído en algún sitio, otros no tenéis ni idea de lo que es.

¿Que es SPF?

Sender Policy Framework o SPF, es una protocolo para luchar contra el Spam por correo electrónico creado en 2003. Mas concretamente intenta evitar que se manden correos suplantando identidades dentro de un dominio. Para ello solo necesitaremos introducir un registro TXT con una sintaxis especial en el servidor DNS que gestione el dominio al que le queremos aplicar las restricciones.

Es un protocolo desarrollado por voluntarios, y como suele pasar en estos casos, su configuración y administración no es algo accesible para un usuario medio, se recomienda dejar la implementación a algún profesional con conocimientos de DNS’s y de servidores de correo.

¿Como funciona?

SPF, como se explicaba anteriormente, se utiliza para evitar el envió de correos suplantando identidades. El sistema se fundamenta en que en los registros SPF se introduce la información de las maquinas, redes, dominios, etc….. desde donde se autoriza a realizar envió de correos, en el momento en que se intenta enviar un correo se consulta este registro para compararlo con la IP desde donde se eta enviando para ver si es autorizada, vamos algo asi como un registro “MX inverso”. El proceso sigue los siguientes pasos:

  1. El emisor o sender envía el correo.
  2. El mensaje llega al servidor de correo entrante del destinatario o receiver, el cual llama a su Sender ID Framework (SIDF).
  3. El SIDF consulta el registro SPF del dominio que el emisor esta utilizando para enviar el correo y determina si pasa o no pasa.
  4. Al final si el correo no es devuelto se le pasa a los filtros de reputación para que lo clasifiquen como le corresponda.
  5. Se entrega el correo al destinatario..

Exquema SPF
Un ejemplo practico:

Tengo mi dominio suplantamesipuedes.com el cual me están avisando desde hace un tiempo de que de vez en cuando llegan correos en mi nombre con enlaces con virus o con campañas de publicidad. Para hacerle honor a su nombre configuro el registro SPF para que solo estén autorizados los envíos realizados desde mi casa y desde el webmail del dominio.

En el otro lado de esta historia nos encontramos con el señor Spammer que desde hace un tiempo ha decidido usar mi nombre de dominio para realizar sus envíos encubiertos. Dichos envíos los realiza en mi nombre, pero para evitar dejar pistas los envía a través de algún servidor que este puesto en modo Open Relay en algún recóndito lugar de China a través de unos cuantos proxies anonimizadores, etc… , o lo que es lo mismo sin usar en ningún momento IP’s relacionadas con mi dominio.

Nuestros caminos se cruzan el día que implemento los registros SPF. Desde ese momento nuestro querido Spammer empieza a recibir mensajes de nuestro amigo MAILER-DAEMON el cual le comenta que de enviar correos del dominio suplantamesipuedes.com nanai desde donde lo esta enviando, que esa IP/dominio/red no esta autorizada a enviar correos en nombre de suplantamesipuedes.com. Nuestro amigo tiene dos opciones en ese momento, reconocer que le han jodido el invento y que habrá que buscarse otro dominio que suplantar (Lo que pasa el 99,9% de las veces) o intentar enviar los correos desde alguno de los servidores autorizados (Una simple consulta a las DNS’s del dominio le dará las direcciones autorizadas). Aquí ya estaríamos en lo de siempre, dependiendo del contexto tendrás implementadas unas medidas u otras para que un atacante no se cuele en tus buzones, y eso ya no entra dentro del tema de este post.

Al hilo de esto, comento un par de experiencias profesionales que he tenido a raíz de implementar los registros SPF:

  • Como ya he señalado anteriormente esta configuración aunque afecta al envió de correos se implementa en las DNS’s, con lo cual tendremos que tener muy presente el tema de la propagación. Si se nos escapa alguna IP que debería estar autorizada en el momento en el que se configura el registro SPF podemos encontrarnos que algunos o todos nuestros correos enviados nos los devuelven por falta de autorización por parte del SPF. Si el TTL del registro es muy alto hasta que no expire y se actualice la información no podremos solucionarlo, lo que puede ser un autentico problema en según que situaciones.
  • ¿Conocéis exactamente todos los métodos de envío de correo que se usan bajo vuestro dominio? Me explico, yo pensaba que tenia perfectamente claro como se enviaban todos los correos de mis dominios hasta que me implemente por primera vez SPF. Resulta que algunas aplicaciones para gestionar el correo no utilizan exactamente los servidores de correo del dominio para los envíos que le configuras si no que lo envían desde sus sus dominios. Esto me paso con una aplicación de gestión de correo desde el móvil, el día después de implementar SPF, me empezaron a llover llamadas diciéndome que los correos enviados desde los móviles que hacían uso de la aplicación los devolvía. Tuve que localizar los servidores de envío de la aplicación, certificar personalmente que esos servidores eran confiables y autorizarlos en el registro SPF, y digo personalmente por que en el proveedor de telefonía que me da cobertura ni en el departamento de asistencia técnica avanzada tenían ni idea de como funciona la aplicación de verdad….. .

Si aun tienes dudas o quieres comprobar bien todo lo descrito hasta ahora puedes consultar el RFC aquí.

¿Como se implementa?

Para implementar los registros SPF personalmente recomiendo que utilicéis algún asistente, que una vez os de el borrador lo reviséis manualmente y añadáis o modifiquéis lo que necesitéis. Un par de sitios para esto son:

Si queréis revisar lo que significa cada operador podéis hacerlo aquí.

Una vez tengamos el registro revisado podemos comprobar que no tenemos errores en la sintaxis desde el validador de OpenSPF aquí. Tened presente que esto nos dirá únicamente si la sintaxis es la correcta, no nos asegura que encaje perfectamente con la arquitectura de envío de correo de nuestro dominio.

Por ultimo iremos a nuestro servidor DNS y añadiremos en un registro de tipo TXT la sentencia que hemos obtenido durante el proceso. Esperamos un poco a que se propague la información y listo.

3 comments

Comments are closed.