El spam viene siendo un problema desde hace bastante tiempo hasta tal punto que constituye entre el 70% y 80% del tráfico de correo electrónico total. Hay muchas formas de solventar de la mejor manera posible la entrada de spam a nuestros buzones, tanto por parte del cliente (tú mismo) como a nivel servidor. Naturalmente la mayor parte de éstos se filtran antes de que lleguen a tu buzón.
Cuando estuve trabajando en México, recuerdo que debido a la poca eficiencia de Windows antes este tipo de problemas (ya sabemos que tiene muchos más) tuvimos que migrar todos los correos de los clientes a FreeBSD. El panel de control que estaba instalado en los servidores, instalaba Qmail. No se metían demasiados clientes en la misma máquina, por lo que el servicio iba perfectamente. Desde ports, instalé RulesDuJour para la actualización de las reglas de SpamAssassin (ya que el panel de control no tenía esta función) acomodé el script para que guardara las reglas en el mismo sitio en donde lo hace el panel de control que por cierto era Plesk. También metí una línea en el cron para correr RulesDujour diariamente y también instalé mailgraph para ver el rendimiento del servidor, ya que revuerdo que era el primero que monté para manejar el correo de los clientes. Si no recuerdo mal, teniendo la cantidad de unos 500 clientes, llegaba a filtrar más de 500.000 mensajes de spam al mes. A partir de ahí empezamos a migrar todos los clientes que tenían el correo en Windows, para FreeBSD.
Bueno, a lo que iba. Existen otras medidas contra el spam y que no llegarán a SpamAssassin por lo que la máquina se cargará en menor medida. Una de ellas es Postgrey, para Postfix. Postgrey es un demonio que escucha en el puerto que nosotros le digamos, y que hará una caché de las Ip que se van conectando al servidor. Si lo tiene en caché, lo dejará pasar, sino, lo retendrá los minutos que nosotros queramos, hasta que el servidor del remitente lo vuelva a enviar y no lo haga dentro del tiempo mínimo que le especificamos para que lo vuelva a hacer, sino, será rechazado de nuevo. Para activarlo y usarlo con Postfix, no tenemos nada más que ponerlo a escuchar en un puerto, y poner lo siguiente en el main.cf:
check_policy_service inet:127.0.0.1:8888,
Esto lo tenemos que poner dentro del campo smtpd_recipient_restrictions.
También está policy-weightd que es otro demonio que verificará los EHLO de los correos entrantes, así como listas RBL y todo esto sin que pase a a entregarlo a nuestro Postfix. Tiene la posibilidad de poner un score para rechazar correos. Mirará registros DNS (PTR, MX, etc) y todo esto como digo antes de que pase al MTA. Para poder usarlo, es similar a Postgrey:
check_policy_service inet:127.0.0.1:6666,
Con esto, al igual que con Postgrey, los correos “pasarán” a través de Policy Weight (ojo: el puerto 6666 es un ejemplo, debes especificarlo en la configuración).
Bueno, espero que esto haya orientado a alguien o le haya servido de ayuda.