viernes, abril 07, 2006

Integración de SPF en Spamassassin

Introducción.
Spamassassin es un filtro de correo escrito en Perl para identificar spam utilizando multitud de tests heurísticos en las cabeceras de un correo y en el cuerpo del mensaje. Es software libre.

Cómo funciona Spamassassin.
Cuando nuestro servidor de correo recibe un mensaje, se lo envía al demonio de Spamassassin, quien procede a ejecutar una serie de tests sobre él. Cada uno de ellos añade o quita unas pocas milésimas de puntuación a dicho correo. Si la puntuación que asigna un test es positiva, es que tiene cierto parecido con el spam; por contra, si esa puntuación es negativa, es que tiene parecido con correo válido. Así, una vez pasados todos los tests se suman todas las puntuaciones para hallar la puntuación total de dicho correo. Si esa puntuación está por encima de un margen, el mensaje podrá ser marcado como spam, si pasa por encima de un segundo límite, será directamente descartado.

Tanto las puntuaciones como los límites más arriba citados pueden ser configurados y modificados a nuestro antojo.

Cómo funciona SPF
SPF nos permite comprobar mediante una consulta DNS si un servidor está autorizado para enviar correo de un dominio determinado. Para ello el administrador del DNS del dominio remitente debe haber configurado la/s entrada/s correspondiente/s en el servidor DNS de ese dominio. Igualmente el receptor debe haber configurado el servidor que recibe el correo para hacer la consulta DNS. SPF no evita el Spam, sólo asegura que un correo viene de donde dice venir.

Porqué integrar SPF dentro de Spamassassin
Una buena razón es que en lugar de recibir un correo y aceptarlo o directamente descartarlo por su razón SPF, le asignemos una puntuación más y lo tratemos como un test más dentro de SPF.

Cómo integrar SPF dentro de Spamassassin

A partir de la versión 3.0 de Spamassassin es bastante sencillo, ya que viene integrado dentro de Spamassassin. Aún así, habrá que activarlo e instalar el módulo Perl que nos dará la funcionalidad SPF. Para ello instalamos el módulo Perl Mail::SPF::Query. Procedemos a activar el SPF en el Spamassassin, para ello descomentamos en el fichero
/etc/mail/spamassassin/init.pre (path válido para RedHat) la línea:

loadplugin Mail::SpamAssassin::Plugin::SPF

Ahora reiniciando el Spamassassin tendríamos ya el SPF incrustado en el Spamassassin. Sólo nos queda ajustarlo a nuestro gusto. Para ello modificamos las puntuaciones de los tests SPF en
/etc/mail/spamassassin/local.cf añadiendo una línea del tipo:
score SPF_FAIL 5


Reiniciamos de nuevo Spamassassin para que coja los cambios y ya lo tenemos activado.