Apartamento En Familia

Apartamento En Familia
Apartamento de playa para vacaciones. http://www.apartamentoenfamilia.es. Número registro HUTT-005768

jueves, 9 de septiembre de 2010

SPF en Ubuntu 10.04 (Sender Policy FrameWork) y Postfix

SPF extiende el protocolo SMTP para permitir comprobar las máquinas autorizadas a enviar correo para un dominio determinado. La idea es identificar las máquinas autorizadas por su dirección IP, y que esta identificación la haga el responsable del dominio que recibirá el correo.

Una aproximación a la solución podría suponer que el remitente del correo, hace los envíos desde la misma máquina que los recibe. Como se puede resolver la dirección IP a donde se enviarían correos al remitente a través del registro MX del servicio DNS (RMX, del inglés Reverse MX), si esta dirección coincide con la que genera el envío, se puede entender que es el remitente real. Pero esta suposición no siempre es cierta, especialmente en grandes proveedores de soluciones de correo como Yahoo!Hotmail, o GMail.
Otra propuesta, la DMP (Protocolo de Servidores de Correo Identificados, del inglés Designated Mailer Protocol), consiste en que los proveedores de servicios de internet identifiquen las máquinas responsables del envío del correo. Esta solución es válida, pero para que sea efectiva requiere que todos los proveedores la adopten e implementen.
Como mezcla de estas dos propuestas, surge la idea de usar registros DNS para identificar las máquinas autorizadas para envío de correo (sean del proveedor de servicios de internet que sean). Esto es lo que se propone en la solución SPF.

(Fuente Wikipedia)
























En un artículo anterior se explicaba como instalar Postfix con soporte TLS:
Así pues, vamos a dar por hecho que sabemos y tenemos instalado un servidor Postfix y nos vamos a dedicar a aprender a aplicar la solución SPF:

Para instalar SPF en Ubuntu hay dos típos paquetes: escrito en Perl o Python. Es indiferente el que se use:
Python:
apt-get install python-policyd-spf python-spf
Perl

apt-get install postfix-policyd-spf-perl libmail-spf-perl


Luego editamos el archivo /etc/postfix/main.cf añadiendo la siguiente linea:

spf-policyd_time_limit = 3600s
quedará algo como esto:
smtpd_recipient_restrictions =
   permit_sasl_authenticated,
   permit_mynetworks,
   reject_unauth_destination,
   check_policy_service unix:private/policy-spf,
   reject_rbl_client strong.dnsbl.dominiobloqueador.cat

y en el apartado dentro del mismo archivo smtpd_recipient_restrictions hay que añadir esta restricción:
check_policy_service unix:private/policy-spf


Luego modificamos el archivo /etc/postfix/master.cf. Según si hemos instalado el SPF de Python o de Perl deberemos modificarlo de distinta manera:
Python

policy-spf unix - n n - - spawn
user=nobody argv=/usr/bin/policyd-spf

Perl

policy-spf unix - n n - - spawn
user=nobody argv=/usr/sbin/postfix-policyd-spf-perl


Una vez realizados estos pasos, simplemente nos quedará reiniciar nuestro servidor postfix:

/etc/init.d/postfix restart

Podemos verificar que todo funciona correctamente mirando los logs.
Si queremos configurar algunas opciones extra, vale la pena mirar el archivo /etc/postfix-policyd-spf-python/policyd-spf.conf en donde podremos, entre otras cosas, modifcar el nivel de log que deseamos.

That u don't know what you've got 'til it's gone