Filtrado de correo electrónico

Esquema del filtrado de correo en Zentyal

Para defendernos de estas amenazas, Zentyal dispone de un filtrado de correo potente y flexible.

Esquema del filtrado de correo en Zentyal

Esquema del filtrado de correo en Zentyal

En la figura se observan los diferentes pasos que sigue un correo antes de determinarse si es válido o no. En primer lugar, el servidor envía el correo al gestor de políticas de listas grises, donde, si es considerado como potencial spam, se rechaza y se solicita su reenvío al servidor origen. Si el correo supera este filtro, pasará al filtro de correo donde se examinarán una serie de características del correo, para ver si contiene virus o si se trata de correo basura, utilizando para ello un filtro estadístico. Si supera todos los filtros, entonces se determina que el correo es válido y se emite a su receptor o se almacena en un buzón del servidor.

En esta sección vamos a explicar paso a paso en qué consiste cada uno de estos filtros y cómo se configuran en Zentyal.

Lista gris

Las listas grises [1] se aprovechan del funcionamiento esperado de un servidor de correo dedicado a spam para que por su propio comportamiento nos ayude a descartar o no los correos recibidos o, al menos, dificultar su envío.

Estos servidores están optimizados para poder enviar la mayor cantidad posible de correos en un tiempo mínimo. Para ello autogeneran mensajes que envían directamente sin preocuparse de si son recibidos. Cuando disponemos de un sistema de greylists (listas grises), los correos considerados como posible spam son rechazados, solicitando un reenvío, si el servidor es realmente un servidor spammer, probablemente no disponga de los mecanismos necesarios para manejar esta petición y por tanto el correo nunca llegará al destinatario. Por el contrario, si el correo era legítimo, el servidor emisor no tendrá problema para reenviarlo.

En el caso de Zentyal, la estrategia utilizada es fingir estar fuera de servicio. Cuando un servidor nuevo quiere enviarle un correo, Zentyal le respondera “Estoy fuera de servicio en este momento. durante los primeros 300 segundos, por lo que el servidor remitente lo intentará en otro instante [2]. Si el servidor remitente cumple la especificación, reenviará el correo pasado ese tiempo y Zentyal lo apuntará como un servidor correcto.

En Zentyal, la lista gris exime al correo enviado desde redes internas, al enviado desde objetos con política de permitir retransmisión y al que tiene como remitente una dirección que se encuentra en la lista blanca del antispam.

El Greylist se configura desde Correo ‣ Lista gris con las siguientes opciones:

Configuración de las listas grises

Configuración de las listas grises

Habilitado:
Marcar para activar el greylisting.
Duración de la lista gris (segundos):
Segundos que debe esperar el servidor remitente antes de reenviar el correo.
Ventana de retransmisión (horas):
Tiempo en horas en el que el servidor remitente puede enviar correos. Si el servidor ha enviado algún correo durante ese tiempo, dicho servidor pasará a la lista gris. En una lista gris, el servidor de correo puede enviar todos los correos que quiera sin restricciones temporales.
Tiempo de vida de las entradas (días):
Días que se almacenarán los datos de los servidores evaluados en la lista gris. Si pasan más de los días configurados sin que el servidor emisor sea visto de nuevo, cuando quiera volver a enviar correos tendrá que pasar de nuevo por el proceso de greylisting descrito anteriormente.
[1]Zentyal usa Postgrey (http://postgrey.schweikert.ch/) como gestor de esta política en Postfix.
[2]Realmente el servidor de correo envía como respuesta Greylisted, es decir, puesto en la lista gris en espera de permitir el envío de correo o no pasado el tiempo configurado.

Verificadores de contenidos

El filtrado de contenido del correo corre a cargo de los antivirus y de los detectores de spam. Para realizar esta tarea, Zentyal usa un interfaz entre el MTA y dichos programas. Para ello, se usa el programa amavisd-new [3] para comprobar que el correo no es spam ni contiene virus.

Además, Amavisd realiza las siguientes comprobaciones:

  • Listas blancas y negras de ficheros y extensiones.
  • Filtrado de correos con cabeceras mal-formadas.
[3]Amavis: http://www.ijs.si/software/amavisd/

Antivirus

El antivirus que usa Zentyal es ClamAV [4], el cual es un conjunto de herramientas antivirus especialmente diseñadas para escanear adjuntos en los correos electrónicos en un MTA. ClamAV posee un actualizador de base de datos que permite las actualizaciones programadas y firmas digitales a través del programa Freshclam. Dicha base de datos se actualiza diariamente con los nuevos virus que se van encontrando. Además, el antivirus es capaz de escanear de forma nativa diversos formatos de fichero como por ejemplo comprimidos Zip, BinHex, PDF, etc.

La instalación del módulo de antivirus es opcional, pero si se instala se podrá ver como se integra con algunos módulos de Zentyal, aumentando las opciones de configuración de la seguridad en diversos servicios, como el filtro SMTP, Compartición de ficheros o el proxy HTTP.

[4]ClamAV: http://www.clamav.net/

Antispam

El filtro antispam asigna a cada correo una puntuación de spam. Si el correo alcanza la puntuación umbral de spam, es considerado correo basura, si no, es considerado correo legítimo. A este último tipo de correo se le suele denominar ham.

El detector de spam usa las siguientes técnicas para asignar la puntuación:

  • Listas negras publicadas vía DNS (DNSBL).
  • Listas negras de URI que siguen los sitios Web de antispam.
  • Filtros basados en el checksum de los mensajes, comprobando mensajes que son idénticos pero con pequeñas variaciones.
  • Filtro bayesiano, un algoritmo estadístico que aprende de sus pasados errores a la hora de clasificar un correo como spam o ham.
  • Reglas estáticas.
  • Otros. [5]

Zentyal usa SpamAssassin [6] como detector de spam.

La configuración general del filtro se realiza desde Filtro de correo ‣ Antispam.

Configuración de antispam

Configuración de antispam

Umbral de spam:
Puntuación a partir de la cual un correo se considera como spam.
Etiqueta de asunto spam:
Etiqueta para añadir al asunto del correo en caso de que sea spam.
Usar clasificador bayesiano:
Si está marcado, se empleará el filtro bayesiano. Si no, será ignorado.
Auto-lista blanca:
Tiene en cuenta el historial del remitente a la hora de puntuar el mensaje. Si el remitente ha enviado mucho correo como ham, es altamente probable que el próximo correo que envíe sea ham y no spam.
Auto-aprendizaje:
Si está marcado, el filtro aprenderá de los mensajes recibidos, cuya puntuación traspase los umbrales de auto-aprendizaje.
Umbral de auto-aprendizaje de spam:
Puntuación a partir de la cual el filtro aprenderá automáticamente un correo como spam. No es conveniente poner un valor bajo, ya que puede provocar posteriormente falsos positivos. Su valor debe ser mayor que Umbral de spam.
Umbral de auto-aprendizaje de ham:
Puntuación a partir de la cual el filtro aprenderá automáticamente un correo como ham. No es conveniente poner un valor alto, ya que puede provocar falsos negativos. Su valor debería ser menor que 0.

Desde Política de emisor, podemos marcar los remitentes para que siempre se acepten sus correos (whitelist), para que siempre se marquen como spam (blacklist) o que siempre los procese el filtro antispam (procesar). Los emisores no listados pasarán por los filtros configurados.

Configuración de políticas del emisor

Configuración de políticas del emisor

Desde Entrenar filtro de spam bayesiano, podemos entrenar al filtro bayesiano enviándole un buzón de correo en formato Mbox [7] que únicamente contenga spam o ham. Existen en Internet muchos ficheros de ejemplo para entrenar al filtro bayesiano, pero suele ser más exacto entrenarlo con correo recibido en los lugares a proteger. Conforme más entrenado esté el filtro, mejor será el resultado de la decisión de tomar un correo como basura o no.

Configuración del clasificador bayesiano

Configuración del clasificador bayesiano

[5]Técnicas antispam: http://en.wikipedia.org/wiki/Anti-spam_techniques_(e-mail)
[6]Spamassasin: http://spamassassin.apache.org.
[7]Mbox y maildir son formatos de almacenamiento de correos electrónicos independientes del cliente de correo electrónico. En el primero todos los correos se almacenan en un único fichero y con el segundo formato, se almacenan en ficheros separados diferentes dentro de un directorio.

Filtrado de Correo SMTP

Desde el apartado Filtro de correo ‣ Filtro de correo SMTP, se puede configurar el comportamiento de los filtros anteriores cuando Zentyal reciba correo por SMTP. Desde General, podemos configurar el comportamiento general para todo el correo entrante:

Parámetros generales para el filtro SMTP

Parámetros generales para el filtro SMTP

Habilitado:
Marcar para activar el filtro SMTP.
Antivirus habilitado:
Marcar para que el filtro busque virus.
Antispam habilitado:
Marcar para que el filtro busque spam.
Puerto de servicio:
Puerto que ocupará el filtro SMTP.
Notificar los mensajes problemáticos que no son spam:
Podemos enviar notificaciones a una cuenta de correo cuando se reciben correos problemáticos que no son spam, por ejemplo con virus.

Desde la sección Políticas de filtrado, se puede configurar qué debe hacer el filtro con cada tipo de correo.

Políticas del filtrado SMTP

Políticas del filtrado SMTP

Por cada tipo de correo problemático, se pueden realizar las siguientes acciones:

Aprobar:
No tomar ninguna acción especial, dejar pasar el correo a su destinatario. Sin embargo, en algunos casos (como spam o virus) se indicará la detección modificando el Asunto del correo.
Notificar a la cuenta de correo emisora:
Descartar el mensaje antes de que llegue al destinatario, notificando al usuario de correo remitente de que el mensaje ha sido descartado.
Notificar al servidor emisor de correo:
Descartar el mensaje antes de que llegue al destinatario, notificando al servidor emisor que el mensaje ha sido descartado. Es común que el servidor emisor avise a su vez al usuario emisor con un mensaje automático Undelivered Mail Returned to Sender.
Descartar sin notificar:
Descarta el mensaje antes de que llegue al destinatario sin notificar al remitente ni a su servidor.

Desde el menú Políticas específicas de los Dominios Virtuales, se puede configurar el comportamiento del filtro para los dominios virtuales de correo. Estas configuraciones sobreescriben las configuraciones generales definidas previamente.

Para personalizar la configuración de un dominio virtual de correo, pulsamos sobre Añadir nuevo.

Parámetros de filtrado por dominio virtual de correo

Parámetros de filtrado por dominio virtual de correo

Los parámetros que se pueden sobreescribir son los siguientes:

Dominio:
Dominio virtual que queremos personalizar. Tendremos disponibles aquellos que se hayan configurado en Correo ‣ Dominio Virtual.
Utilizar filtrado de virus / spam:
Si están activados, se filtrarán los correos recibidos en ese dominio en busca de virus o spam respectivamente.
Umbral de spam:
Se puede usar la puntuación por defecto de corte para los correos spam, o un valor personalizado.

Una vez añadido el dominio, se pueden añadir direcciones a su lista blanca, lista negra o que sea obligatorio procesar desde Política antispam para el emisor.