Está en la página 1de 10

ConstruyendounAntiSPAMGateway.

Parte5 (Greylisting)
Hola una vez ms, perdonad la tardanza pero NO he estado de vacaciones :(, sino he estado estudiando para obtener el VCP410 de VMware y actualmente estoy estudiando para sacar el CCNA... as que hasta pasado el mes de octubre, los artculos irn a cuenta gotas. Tambin quiero compartir con vosotros, que tomar tan merecidas vacaciones el prximo da 11 de octubre, donde viajar con mi pareja a la costa este de USA hasta el 1 de noviembre (tremendas ganas que tenemos). Bueno, voy a dejarme de rollos que sino nos liamos. En este nuevo artculo, donde seguimos con el objetivo de construir un Anti-SPAM Gateway eficiente y sin grandes esfuerzos, nos vamos a centrar en el Greylisting. Esta tcnica desde un punto de vista general, se encarga en realizar una demora de 5 minutos al menos antes de recibir el correo electrnico. Se basa en direccin IP del remitente, direccin de correo electrnico del remitente y direccin de correo electrnico del destinatario; informando al servidor origen con el error 450 (No puedo atender tu peticin ahora, por favor intntalo ms tarde). Esta tcnica resulta til porque los spammers normalmente no reenvan los correos que han fallado, ya que eso generara la necesidad de tener grandes lneas y servidores para procesar todos los reenvos de los correos fallidos. De este modo, si el correo NO es spam, SEGURO que intentar ser enviado una, dos, tres, hasta un periodo de caducidad configurado por el servidor origen.

Como anteriormente hemos mencionado, la tcnica de Greylisting se basa en tres parmetros como la IP del remitente y su direccin de correo electrnico, y la direccin de correo del receptor. A partir de ah, cuando un correo llega por primera vez a nuestro Anti-SPAM Gateway, ste consultar si dispone alguna informacin en su base de datos, de no ser as l la agregar incluyendo la hora y fecha de la recepcin. Desde ese momento, hasta cinco minutos ms tarde (tiempo predeterminado), todo reintento no ser aceptado. Una vez hayan pasado los cinco minutos, cuando el servidor origen vuelva a reintentar el envo, nuestro Anti-SPAM Gateway permitir dicho correo y dejar almacenado durante 35 das (tiempo predeterminado) los datos requeridos para comprobar el correo electrnico, es decir, IP del remitente, direccin de correo electrnico del remitente y direccin de correo electrnico del receptor. De esto modo, dentro de esos 35 das, todo correo que cumpla esa regla almacenada ser directamente aceptado por nuestro Greylisting.

Para conseguir este valor aadido en nuestro Anti-SPAM Gateway, vamos a utilizar la herramienta ms extendida que se encuentra para esta tcnica, la cual se llama Postgrey. Se da por hecho, que ya contamos con nuestro Anti-SPAM Gateway instalado habiendo seguido los artculos previos. Los pasos que vamos a seguir para esta instalacin son los siguientes:
1. 2. 3. 4. 5. Instalar requisitos previos. Crear grupo, usuario y directorio para Postgrey. Descargar, instalar y configurar Postgrey. Configurar Postfix. Probar Postgrey.

Instalar requisitos previos Postgrey requiere Perl >= 5.6.0, Net::Server, IO::Multiplex y BerkeleyDB. Para ello vamos a ejecutar los siguientes comandos como usuario root (aceptando todos los mensajes con yes o y): perl -MCPAN -e shell install Net::Server IO::Multiplex BerkeleyDB exit

Crear grupo, usuario y directorio para Postgrey Vamos a crear estos objetos ya que son necesarios para que Postgrey pueda correr como servicio y almacene los datos en su base de datos. Para ello como usuario root ejecutamos los siguientes comandos: groupadd -g 1982 postgrey useradd -m -u 1982 -g postgrey -s /bin/false -d /var/spool/postfix/postgrey postgrey

Descargar, instalar y configurar Postgrey Para realizar la instalacin nos vamos a descargar las ltimas fuentes de la aplicacin, para ello como siempre copiaremos la URL del paquete para posteriormente descargarlo en nuestro servidor. Como usuario root ejecutamos los siguientes comandos: cd /usr/local/src wget http://postgrey.schweikert.ch/pub/postgrey-1.33.tar.gz

Ahora vamos a instalar Postgrey, es un paso muy sencillo, ya que nicamente tenemos que copiar unos ficheros. Para ello vamos a ejecutar los siguientes comandos como root: tar xzf postgrey-1.33.tar.gz cd postgrey-1.33.tar.gz cp postgrey /usr/sbin

cp postgrey_whitelist_* /etc/postfix

Ahora vamos a configurar nuestro Postgrey, para que pueda ser arrancado como servicio. Para conseguirlo, vamos a copiar un script de ejemplo que viene en el directorio contrib del paquete descomprimido y vamos a crear un fichero en /etc/default para que lea de ah los parmetros adicionales. Como root vamos a ejecutar los siguientes comandos: cp contrib/postgrey.init /etc/init.d/postgrey chmod 755 /etc/init.d/postgrey chkconfig postgrey on vi /etc/default/postgrey POSTGREY_OPTS="--inet=10023"

Si deseamos arrancar Postgrey con otros parmetros, como en vez de cinco minutos poner diez; o en vez de 35 das poner ms o menos, podemos consultar su documentacin ejecutando el siguiente comando: perldoc postgrey

Ahora vamos a dejar arrancado Postgrey, para ello ejecutamos el siguiente comando como root: /etc/init.d/postgrey start

Configurar Postfix Para que Postfix remita los correo a Postgrey debemos agregar una lnea en el fichero main.cf despus de la lnea reject_unauth_destination. Para ello ejecutamos los siguientes comandos como root: vi /etc/postfix/main.cf smtpd_recipient_restrictions = ... reject_unauth_destination check_policy_service inet:127.0.0.1:10023 postfix reload

Si ejecutamos el comando tail -f /var/log/mail.log podremos observar que postgrey ha sido reconocido satisfactoriamente.

Probar Postgrey Para probar nuestro Postgrey vamos a realizar cuatro envos de correo desde la misma IP y con las mismas direcciones de correo. Ell segundo ser enviado un minuto despus del primero, el tercero ser enviado cuatro minutos despus del segundo y el cuarto ser enviado inmediatamente despus del tercero. Para monitorizar nuestro Postfix, dejamos ejecutado el comando tail -f /var/log/mail.log, donde ir apareciendo todo lo que suceda en el servidor en referencia al servicio MTA. Con el primer envo lo que hacemos es que Postgrey est en ALERTA por si se produce sucesivos intentos permitir su entrega. Para ello vamos a ejecutar los siguientes comandos (los mismos para todas las pruebas) con un cliente telnet atacando a nuestro Anti-SPAM Gateway. o Prueba primera

o Prueba segunda. Casi dos minutos despus del primer intento, se puede
comprobar que aparece el tiempo en la segunda captura.

o Prueba tercera. El correo es aceptado y aparece cuanto tiempo ha pasado desde


el primer envo en la segunda captura.

o Prueba cuarta. Se comprueba que ya no aparece cuanto tiempo ha pasado, pero


si aparece que cumple la triple condicin como se observa en la segunda captura.

Espero que este artculo os resulte de ayuda y dentro de poco tengamos nuestro Anti-SPAM Gateway ideal.