GAT v2

Introducción

Este proyecto pretende implementar un sistema antispam complemtamente independiente del servidor de correo instalado, o sea, no-intrusivo. Por lo tanto puede ser montado en una máquina que haga de frontend al servidor actual de correo de su empresa, ISP o similar.

La máquina frontend recibirá el correo y después de aplicarles los filtros correspondientes re-enviará el correo hacía el servidor de correo interno que corresponda. Tambíen puede filtrar todo el correo que sale hacia internet desde el interior de la empresa forzando en el/los servidores de backend el correo use al frontend como smart-relay server.

Documentación

El siguiente esquema ilustra cual es el flujo del correo en términos generales:

source:doc/images/thumbs/postfix-esquema.png

En este escenario disponemos de dos partes bien diferenciadas el frontend y el backend, la idea principal es conseguir liberar al servidor principal (backend) de la carga de las tareas de antispam, antivirus y otras complejas configuraciones para garantizar que no se recibe correo no deseado en la empresa. A pesar de que el backend puede estar detras de un firewall para su mejor seguridad no es necesario que esto sea así. Lo que si es importante destacar es que el correo via SMTP siempre irá contra el servidor frontend y el servidor SMTP del backend usará como smtart-host o relay único el frontend. Así aseguramos que todos los correos son examinados por el sistema anti-UCE (unsolicited commercial email).

Estas técnicas son muy útiles porqué a menudo el servidor de backend es un servidor de groupware (exchange, lotus notes, zimbra, etc) o alguna aplicación para gestión de ISPs (plesk, ispconfig, etc) que o queremos sobrecargar con tareas de anti-UCE. Esta solución es indicada para todo aquel sistema que necesite ser escalado en el backend y no quiera tener dependencia de la escalavilidad del sistema anti-UCE para hacer esta escalavilidad, porqué esto aumenta la complejidad del crecimiento inecesariamente.

Para entender más en detalle los procesos que sigue el correo el siguiente esquema nos permite introducirnos en el interior del servidor frontend (MailGateway/GatV2):

source:doc/images/thumbs/gatv2_thumb.png [ full size | source ]

Descripción de los puntos:

1) Entrada del correo a través de los puertos estándard.
2) El binding de los puertos de SMTP se hace desde postfix, que es el encargado de gestionar el spool de los mensajes y la coordinación de lógica de filtrado.
2.1) Si el remitente del correo quiere usar autenticación para hacer el envio postfix esta connectado al módulo SASL que a través de la función de autenticación rIMAP permite validar al usuario contra su servidor de IMAP.
2.1.1) por ejemplo, un servidor Plesk cPanel o cualquier otro servidor de backend con el servicio de IMAP habilitado.
2.2) La validación de cuentas de correo locales se hace contra un módulo hecho a medida al que llamamos learn_recipients, este módulo ofrece funciones de caché para direcciones de correo. Su principal función es descargar el backend y almacenar el correo hasta poder ser entregado al backend si este esta caido.
2.3) Valida si un dominio es o no local a través de un módulo hecho a medida (vrfy_domain).
2.4) Valida si una IP es o no local a través de un módulo hecho a medida (mynetworks).
2.5) Controla permisos para enviar correos de un usuario validado, por ejemplo, impide que un cierto usuario mande correos desde otra cuenta que no sea la suya. Esta funcionalidad se hace a través de un módulo hecho a medida (sender_auth_validation).
2.6) Permite el uso de ACL, tales como grey, black y whitelisting. Esta funcionalidad la ofrece la apliación apolicyd.
3) Cuando postfix ha validado el correo es el turno de dspam, se trata de un filtro antispam basado en estadística eurística.
3.1) dspam también hace filtrado de correos con virus apoyandose en la herramienta clamav.
4) cuando dspam ha validado el correo este se re-inyecta a postfix para ser entregado.
5) postfix usa la herramienta hecha a medida transport para descubrir cual es el servidor SMTP donde debe entregar el correo.
6) llegados en este punto los correos o se entregan al servidor SMTP al que van destinados o se acaban descartando por problemas en los envios.
7) servidor SMTP receptor del correo, puede ser el backend o no.
8) uno de los posibles destinos del correo puede ser learn_dspam una herramienta hecha a medida que permite educar a dspam.
9) spam-wui es una página web hecha a medida que sirve como gestor de SPAM para los usuarios, permitiendo educar a dspam, consultar correo en cuarentena y otras funciones relacionadas.

Módulos

Web gestión del SPAM

  • SPAM WUI? - web gestión del DSPAM para usuarios
    • sysadmin?
      • como instalar WUI
      • configuración WUI
        • re-educación del DSPAM via envio de correos a learn_dspam
        • programada en symfony
          • configuración del app.yml
          • myImapAuth.class.php: servidor IMAP, por defecto, donde se intenta autenticar a los usuarios
      • configuración de otros paquetes:
        • apolicyd: templates por dominio
        • postfix: cambios para cuando se reinyecta un correo que estaba en cuerentena
        • dovecot: configuración especial para consultar buzones de correos en cuerentena
    • developers?
      • cambios en código fuente de dspam
        • soporte SQLite
        • parches:
          • diff amb l'original per saber què canvia
    • [[guia de usuario?
      • usuario/email
        • dashboard
        • training
        • quarantine
        • preferences
      • administrador de dominio
        • dashboard
        • emails management
        • white/black lists
        • domain accounts preferences
      • administrador
        • dashboard
        • domain configuration
        • accounts: domains
        • super-administrator:
          • accounts: emails
          • accounts: administrators
          • groups
          • permissions

Misc

  • MONIT? - monitorización de los servicios
  • Ciclos? de vida de un correo:
    • email remoto a email local
    • email local a email remoto
    • email local a email local
    • educación del DSPAM via correo
  • Postfix FAQ?
    • que hay en la cola?
    • borrar correos e la cola
    • parar correos de la cola

Old

  • Como funciona
  • Servidores de correo de terceros - la idea es explicar en forma de receta los pasos para que el correo después de pasar por el frontend no se entregue al backend sinó a un servidor concreto. En caso de un ISP, por ejemplo, en el servidor de correo de un cliente. También se comenta como permitir la recpeción des de el correo de un tercer servidor hacia el frotend igual que si este correo se hubiera entregado localmente en el servidor.
  • Analisis de la nueva GUI de gestión. Esta permite a los usuarios gestionar sus falsos postivios, negativos, etc. a los administradores de dominio administrar sus cuentas y ajustes.

Descargar

  • Descargar - enlaces para descargar ficheros del proyecto y sub-proyectos.

Sub-proyectos

  • bouncer with failover - permite redirigir las conexiones TCP que llegan a un puerto local al puerto que se quiera de un servidor remoto, si este esta caido podemos intentar enlazar la primera conexión con otro servidor y así de forma indefinida con tantos servidores como se quiera.

Misc