Todo aquel que maneje un servidor de correo sabe que el mayor tráfico proviene del correo no solicitado, más conocido como spam. Detectar cuáles correos son spam y cuáles no suele ser el dolor de cabeza de todo administrador de correo o postmaster. ¿Qué se puede hacer contra esto? Existen muchas técnicas y herramientas para evitar y detectar el spam. Una técnica para evitarlo es la denominada “greylisting”, que tiene como una de sus mejores implementaciones a Postgrey.
Greylisting
Greylisting es una técnica de bloqueo de spam que se basa en el hecho que los servidores de correo spam no se comportan de la misma forma que un “servidor de correo normal”. En esta técnica se controla el correo entrante antes que sea aceptado por el MTA (Message Transfer Agent: servicio de correo, por ejemplo postfix). Podría decirse que considera todo correo entrante como “sospechoso”.
Esta técnica fue ideada por Evan Harris y está descrita en su whitepaper: http://projects.puremagic.com/greylisting/whitepaper.html .
Cómo funciona
Cada vez que un servidor de correo intenta hacer un envío de correo se verifican estos tres datos: IP del servidor de origen, remitente, destinatario. Se forma con estos datos un triplete único que identificará la relación y se sigue una regla muy simple: si es primera vez que se ve ese triplete en nuestro MTA, se denegará el envío por un tiempo establecido con un error temporal (error 45x). Todo servidor de correo que cumpla correctamente con el RFC 821 reintentaría el envío. Así pues, cuando el servidor de origen reintente el envío en un lapso de tiempo establecido, el correo será aceptado. Si el servidor no reintenta en un tiempo máximo establecido, ese triplete será descartado de la lista, de tal forma que cuando vuelva a intentar será considerado nuevo.
¿Por qué es efectivo?
Es efectivo porque un servidor de envío de spam usualmente no tiene una cola de envío, y simplemente descarta los correos con error, sea temporal o permanente. De esta forma no se está evitando la entrada de correos que no tienen tolerancia al error temporal y que no son enviados desde servidores que cumplan el estándar (RFC 821).
Pero no hay que creer que con esto se solucionan al 100% los problemas de spam, esta solución debe acompañarse de un filtro de spam que sí analice los contenidos de los correos, como lo puede ser el SpamAssassin.
Ventajas
- Es un servicio ligero en cuanto a recursos de memoria y procesador. Sólo procesa tres datos por correo, y manda una respuesta simple, aprobado o retardado (error temporal 45x).
- Aligera la carga de CPU del servidor de correo al rechazar correos que luego tendrían que ser procesados en la cola de correo, y seguramente también por un sistema antispam, que suele ser pesado para el procesador.
Desventajas
- La principal desventaja es la demora agregada a toda recepción de correo electrónico. Esto sólo ocurre la primera vez que un remitente envía un correo a cada destinatario. Depende de la implementación en particular en cuánto tiempo se aceptará el correo nuevamente, pero algo que está fuera de control es en cuanto tiempo el servidor de envío reintentará.
- Servidores que tengan más de un IP de origen son un problema para este sistema, pues cada vez que envían el correo, podrían tener un IP de origen distinto, reconociéndose como si fuera un nuevo triplete, y retardando más la entrega del correo.
- Servidores que no reintenten el envío de correos serían un problema importante, pues esos correos se perderían o rebotarían a su emisor. Aunque estos servidores no están cumpliendo con el estándar, igual han de ser considerados al configurar la implementación en particular del greylisting.
- Algunos greylisting utilizan un tiempo límite máximo entre reintentos para considerarlo un nuevo triplete, si los servidores de envío no reintentan en ese rango de tiempo, esos correos nunca llegarán.
Puede parecer que son más las desventajas, pero finalmente estas pueden ser reducidas en gran medida por una buena implementación y configuración del greylisting usado. Acompañado además de un constante monitoreo puede reducirse el falso-positivo a casi cero.
Postgrey
Postgrey es una implementación de greylisting para Postfix desarrollada por David Schweikert. Este programa funciona como servicio de políticas para Postfix. Simplemente se configura el Postfix para que entre las reglas a aplicar al verificar un destinatario, consulte a este servicio.
Ventajas de Postgrey
- Base de datos segura: se utiliza una base de datos embebida BerkeleyDB, donde hace uso de sus características transaccionales y además como sólo hay una instancia del programa corriendo, pues hay una posibilidad casi nula de corrupción de los datos.
- Mantenimiento automático: No sólo se lleva cuenta de cuándo fue la primera vez que un “triplete” se recibió, sino también de la última vez, limpiándose así datos antiguos.
- Whitelists (o listas blancas): Permite mantener una lista de servidores, receptores o emisores a los cuales no se les aplicará la política de greylisting.
- Búsqueda por subred: Reconoce servidores con múltiples IPs que pertenezcan a una misma subred.
- Auto-whitelists: Crea listas blancas de servidores que tienen un alto contador de correos aceptados como buenos, para que ya no sea necesario aplicarles el greylisting.
Algunos parámetros de configuración
Los parámetros principales son el tiempo de demora y el tiempo de espera para considerar un triplete como nuevo. Sus valores por defecto son 5 minutos (el atraso mínimo por tanto es de ese tiempo), y de 2 días (podría llamarse a esto un tiempo de atraso máximo, si el correo no reintentó ser enviado en 2 días, pues ya no llegará).
Otro parámetro temporal importante es hasta cuánto tiempo se guardará un triplete considerado bueno después de la última vez de visto, su valor por defecto es 35 días.
También se puede configurar si se usa o no verificación por subred o directamente por IP, así como especificar cuántos correos buenos deben ser considerados para el auto-whitelist.
Instalación
La instalación es bastante sencilla, aquí hay un howto en castellano: http://wiki.fjra.es/wiki/Postgrey
Experiencia práctica
En Antartec se usa como servidor de correo Zimbra, que usa como MTA un Postfix. Inicialmente sólo tenía como protección antispam la implementación interna del Zimbra que es el SpamAssassin. Después de aplicar la técnica de greylisting usando la implementación de Postgrey se redujo la cantidad de spam detectado en un 98%, pues esos correos simplemente no pasaban el primer filtro del correo que es el greylisting del Postgrey. De esta forma el rendimiento del servidor mejoró pues la carga sobre el procesador por parte del antispam disminuyó considerablemente.
En conclusión, en general recomendamos el uso de greylisting en los servidores de correo, y en particular el uso de Postgrey como solución para Postfix.
No related posts.
