3- greylisting

Imagen de Epe

Una técnica ya un poco vieja pero muy efectiva es el greylisting. El greylisting se propuso en Julio del 2003 por Evan Harris.

El Greylisting es increíblemente fácil de mantener y no genera falsos positivos lo que lo hace muy deseable, además el greylisting reduce el número de spams entrantes hasta en unas 10 veces.

En efecto, para muchos el greylisting puede parecer una técnica muy fácil de evitar por parte de los spammers pero no es así, en efecto tiene una gran efectividad ante el spam.

[b]Qué es el greylisting?[/b]

Greylisting funciona porque los spammers y gusanos para poder enviar sus correos de la forma más rápida usan atajos que no se atienen a cómo funciona el sistema de correos SMTP. Por ejemplo, ellos sólo intentan enviar los mensajes una vez, si falla el envío, descartan el mensaje y no es así como funciona el servicio de SMTP que sí reintenta los correos.

Es aqui donde greylisting actúa, en la característica de los spammers de no encolar los mensajes con fallos temporales como debe hacerse, para reintentar luego. El spammer no tiene tiempo de reintentar. Los servidores legales sí reintentan durante horas y días hasta que lo envían. El spammer si no puede a la primera no se preocupa mucho, sigue con las siguientes direcciones.

El problema es que implementar el reenvío complica el sistema de correos y carga el sistema de correos de la máquina que envía, el spammer no tiene tiempo para reintentar, no tiene tiempo para encolar, no quiere pues eso le demora.

El greylisting genera una tripleta de cada conexión que recibe guarda la IP, el que envía y el que recibe, por eso se llama tripleta. Esta tripleta se guarda en la BD. Si la tripleta no existe en la base de datos (BD) entonces es negada la conexión con un error 400 (error temporal), el mensaje entonces será reintentado por parte del servidor smtp un tiempo luego. Por supuesto el spammer nunca reintentará y ahi está la ventaja del greylisting.

Este rechazo dura normalmente media hora. Media hora después, el correo es aceptado. El spammer nunca reintentará, repito: aqui está la ventaja nuestra.

Una vez pasada la media hora el correo se envía y esa tripleta se guarda como confiable. Es decir, no vuelve a ser rechazada durante un determinado tiempo (3 días por defecto). si en ese periodo ventana de aceptación se vuelve a enviar un correo desde esa tripleta, entonces se vuelve a extender el tiempo durante 3 días.

[b]Pros:[/b]

Principalmente es su efectividad, es altamente efectivo. Además de su bajo mantenimiento, en verdad una vez bien configurado no hay que darle mucho mantenimiento cosa que agradecerán los administradores que casi siempre andan sobrecargados de trabajo. No requiere de actualizaciones de plugins ni de nuevos virus ni patrones ni nada.. sencillamente va actualizando su base de datos con cada conexión

Puede ocurrir el caso de que un spammer envíe más de un correo, lo que hará que seguramente los siguientes correos lleguen. Sin embargo esto tiene un beneficio. Durante el periodo de rechazo inicial, le damos tiempo a las listas negras, razor, dcc, etc, a actualizar la IP del spammer y entonces el correo sería detectado vía estos sistemas de detección de spam pues ha pasado tiempo suficiente. Además se obligaría así al spammer a enviar varios correos, cosa que no les conviene pues ellos tienen el tiempo contado para enviar el spam.

[b]Contras:[/b]

Bueno, no todo es perfecto y el greylisting tiene algunos contras, uno muy muy duro de sobreponer y es que en efecto todo correo inicial de una tripleta que llegue será rechazado: el primer mensage desde un origen hacia un destino será rechazado. En la mayoría de los casos tomará entre 20 y 40 minutos en llegar ese primero mensaje. Si ambos usuarios están al teléfono cuando el correo se envíe, notarán que el correo no llegará. A mi me ha pasado muchas veces y es duro explicarle a los usuarios el por qué, puesto que ya te llaman predispuestos y enojados sobre el tema.

Lo curioso es que si intentan enviar el correo digamos unos 30 minutos después, ese correo llega, sin embargo el primero no. Porque el primero está encolado para ser reintentado. Y eso les enoja aún más pues piensan que "algunos" correos se están perdiendo. Lo que les termina de excitar negativamente es que quizá 40 minutos después llega el primero, después de haber llegado el segundo, ahi los gritos los oirán en el cielo.

La parte positiva es que si tienes un usuario intransigente, greylist te permite ponerlo en una lista de exluidos esto es: a él no se le demorarán los mails.. pero le llegará más spam.

Lo negativo es que el usuario que más se queja, es el que más se queja por todo. Así que te dirá: sí, reparaste eso de los envíos demorados, pero ahora me llega mucho spam. La idea siempre es: protesto ante todo.

Algunas implementaciones de greylisting tienen un modelo de aprendizaje, es decir, puedes ponerlo a aprender (sin rechazar) cuáles son las IPs desde donde más recibes correos, y después activar el greylist.. de esta forma puedes minimizar las quejas iniciales.

Los mails salientes pueden ser demorados también, por el callback que implementan algunos SMTP, callback es ese correo que te llega poco después de haber enviado un mail a un destinatario, en el cual te piden que confirmes que eres un ser humano haciendo click en una dirección, etc, etc, etc.. bueno, este correo será demorado por el greylisto.. y enojará al usuario.

Los callbacks están destinados a morir por los problemas que introducen, los usuarios no esperan tener que confirmar su mail. Además que el SPF ayuda mucho a luchar contra ese tema. A medida que el SPF crezca en uso, disminuirá el uso de callbacks.

El grave problema es cuando no se envían correos desde una IP sino desde múltiples. Como por ejemplo hotmail, yahoo o gmail, estos servidores se conectan desde diferentes IPs, quizá el primer intento se hace desde una IP y los subsiguientes desde otras, lo que afecta a las tripletas ya que serán diferentes IP.

A este efecto se puede mantener una lista blanca, y se mantiene una lista blanca de los servidores que usan ésta técnica. Otra forma que uso es blanquear la red clase C completa (/24) en vez de una tripleta por IP usar una tripleta por red.

[b]Qué hacen los spammers?[/b]

No podemos pensar que los spammers se quedarán impávidos ante ésta situación. Quizá algunos esperen que sean tantas las situaciones negativas que no se efectivice el uso del greylisting.

En efecto algunos spammers ya han implementado el reintento, sin embargo como ya comentamos, esto no le conviene al spammer puesto que le demorará el reenvío y con eso podrán ser detectados mucho más fácilmente. En realidad no muchos lo han implementado ni lo implementarán el reintento puesto que les afecta en verdad.

[b]Bibliografía:[/b]

[url]http://greylisting.org/[/url] -- Mucha más información sobre greylisting

[url]http://spf.pobox.com/[/url] -- Sender Policy Framework (SPF) es una tecnología que prevendrá la falsificación de direcciones, se puede usar en colaboración con el greylisting.

Comentarios

Este howto lo creé hace

Imagen de Epe

Este howto lo creé hace casi 4 meses o más. El greylist lo vengo usando hace más de 10 meses.. y no he tenido mayores quejas. Aparte de la usual (que el primer mail de un destinatario demora unos minutos en llegar).

Es una maravilla realmente.

El spam? casi cero en mis servidores (Excepto los enviados por los mismos servidores MTA tradicionales que reintentan).

Y la carga de los servidores? Ya no es tan alta por culpa de los spammers. Nada de ataques de diccionario ni payasadas así.

No tengo spam de imágenes, no tengo spam de pdf, no tengo ninguno de los nasty spam que envían los spammers...

Saludos
epe
--
EcuaLinux.com
Ecuador: +(593) 9 9246504, +(593) 2 3412402
USA: +1 305 675 1512, España: +34 917617884


Saludos
epe

EcuaLinux.com

+(593) 9 9924 6504

Servicios en Software Libre