Postfix_logo

Postgrey es un servidor de polí­tica que implementa greylisting para filtrar spam en servidores de correo Postfix. El principio de funcionamiento del greylisting está dado sobre la base de que mucho spam es enviado por spambots y otros MTAs que no obedecen los RFC. Postgrey rechaza temporalmente correos nuevos con el error 450 “inténtelo más tarde” para un perí­odo de tiempo y registrará en su base de datos el trio CLIENT_IP / SENDER / RECIPIENT. Si el servidor que enví­a `obedece los RFC, entonces seguramente reenviará el mensaje, en tal punto Postgrey comprobará su base de datos en busca de una coincidencia y aceptará el mensaje. El tiempo de espera es configurable y Postgrey mantiene una base de datos de trí­os. De esta forma los correos desde un origen determinado deberí­an ser demorados solo la primera vez.

Sin embargo, como un tí­pico spambot de correo tiende a recibir un gran número de correos rechazados o rebotados no es algo tí­pico de los spammers reenviar mensajes cuando ellos son temporalmente rechazados. Así­, los mensajes de correo recibidos desde tales fuentes son descartados por el servidor de correo. Esto tiene la ventaja de reducir el filtrado y la sobrecarga de procesamiento en los servidores de correo debido al alto porcentaje de mensajes que serán descartados simplemente antes de entrar al MTA y no necesitarán ser filtrados o procesados de otra forma.

A continuación vamos a detallar como instalar Postgrey en CentOS 5 o 6 (32/64bit), para ello abriremos el terminal de acceso SSH, nos logueamos.

1. Instalación de Postgrey

Code:

yum install postgrey

OK. Service installed!

2. Configuración

Abrimos con nuestro editor favorito el archivo /etc/init.d/postgrey

Code:
nano /etc/init.d/postgrey

# buscamos la siguiente línea

Code:
options="--unix=/var/spool/postfix/postgrey/socket"
Esto significa que el proceso “postgrey” está utilizando socket en vez de la conexión TCP. Ruta Socket es crucial para que postfix se comunique con postgrey. CTRL (CMD) + C este camino para su uso posterior!
Tenemos que iniciar el servicio y asegúrese de que el servicio se inicie automáticamente al reiniciar el sistema!
Code:
service postgrey start
chkconfig postgrey on

Ahora configuramos postfix, para ello abrimos con el editor /etc/postfix/main.cf

Code:
nano /etc/postfix/main.cf

… y buscamos la línea

Code:
smtpd_recipient_restrictions =

debería ser algo como esto:

Code:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_policy_service unix:/var/spool/postfix/postgrey/socket, ### Add this line. Double check the socket path!!!

Mine smtpd_recipient_restrictions block looks like this:

Code:
smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_policy_service unix:/var/spool/postfix/postgrey/socket,
reject_invalid_hostname,
reject_unauth_destination,
reject_non_fqdn_sender,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_pipelining,
reject_unknown_sender_domain,
reject_unknown_recipient_domain,
# SPAM/black list checksreject_rbl_client sbl-xbl.spamhaus.org,
#       reject_rbl_client multi.uribl.com, ### Too many requests – payable service
reject_rbl_client dsn.rfc-ignorant.org,
reject_rbl_client dul.dnsbl.sorbs.net,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client bl.spamcop.net,
#       reject_rbl_client dnsbl.sorbs.net, ### This one is blocking emails from yahoo
reject_rbl_client cbl.abuseat.org,
reject_rbl_client ix.dnsbl.manitu.net,
reject_rbl_client combined.rbl.msrbl.net,
reject_rbl_client rabl.nuclearelephant.com,
permitSi desea una lista blanca algunos clientes / destinatarios abren estos dos archivos con el editor:
Code:
nano /etc/postfix/postgrey_whitelist_clients
nano /etc/postfix/postgrey_whitelist_recipients

Para el último paso todo lo que tenemos que hacer es volver a cargar la configuración de Postfix con:

Code:

service postfix reload

Sólo para estar seguro de que Postfix y Postgrey están trabajando juntos compruebe el registro de correo con:

Code:
tail -f /var/log/maillog

… y busque la siguiente linea

Code:
Aug 28 17:33:59 hostname postgrey[20092]: action=greylist, reason=new, client_name=remote.mail.server, client_address=<remote IP address>, sender=<email@address>, recipient=<email@address>

Bien hecho. Con esto acabas de reducir drásticamente el número de mensajes de spam.

Enlaces de interés:

Print Friendly
Compartir