Spamdyke, un refuerzo para SpamAssassin en qmail

Un amigo me llamó el otro día porque habia migrado todos sus dominios a un plesk dedicado y creía que el spamassassin no estaba funcionando. Después de mirarlo parecía que estaba todo bien configurado , pero no asignaba bien las puntuaciones y estaba entrando bastante spam. Buscando documentación encontré bastantes foros en los que la gente comentaba que usaban spamdyke y hablaban del descenso en el número de emails spam que estaban recibiendo.

En la web de spamdyke dicen que:
Spamdyke es un filtro para monitorizar e interceptar conexiones smtp entre un host remoto y un servidor de correo qmail. Bloquea el spam mientras que el spammer está aún conectado y no hace falta procesamiento o almacenamiento adicional.
Además de los filtros anti-spam, spamdyke también incluye una serie de funcionalidades para mejorar qmail. Y lo mejor de todo es que no hace falta ni recompilar ni parchear qmail.

Tiene un montón de funcionalidades que podéis leer en su web. Es muy fácil ponerlo en funcionamiento, aquí dejo una de las guías de instalación de spamdyke que seguí. Hubo que hacer unas pequeños cambios que ahora mismo no me acuerdo. Una vez configurado, no entra ni un 1% de spam en relación a la instalación de qmail únicamente con spamassassin.

Amavis , Spamassassin y auto-whitelist gigante

Mi servidor de correo estuvo volviendose bastante lento  estas semanas después de meterle bastantes correos para que aprendiese con sa-learn.
Mirando en /var/lib/amavis/.spamassassin veo que el fichero de auto-whitelist pesa más de 600 Mb y bayes_seen casi lo mismo. También hay muchos ficheros auto-whitelist.lock.
El fichero de auto-whitelist pone a cada entrada una puntuación, las veces que ha entrado correo de esta dirección y una ip asociada, cogiendo solamente los dos primeros octetos de la dirección (por si nos estan enviando spam desde varias ips de la misma subred.)
Usando esta herramienta, check_whitelist , pude ver que había mas de 1,5 millones direcciones de correos de los que sólo había entrado un mensaje de spam en mi sistema.
Con check_whitelist –clean –min 3 auto-whitelist , eliminé todos las entradas de esta base de datos que tuvieran 2 o 1 ocurrencias, ya que no hay muchas probabilidades de que me vuelvan a enviar spam y cuando amavis va a hacer el chequeo se vuelve más lenta y va encolando los mensajes.
Aún así el fichero sigue pesando casi lo mismo. Para compactarlo existe otra herramienta trim_whitelist .

trim_whitelist auto-whitelist

y el fichero acaba pesando 8M.
Reinicio los servicios y la cola de correo baja de 2700 correos a 15.

La versión de spamassasin que uso no me permite dar parámetros para que determinadas entradas vayan expirando. Diversos sitios dicen que puedes eliminarlo y que empiece desde 0 o que uses determinadas “plantillas”.

A mi, compactado en auto-whitelist me fue suficiente.

Entrenar spamassassin con gmail

Una forma rápida de entrenar spamassassin es usar el filtro antispam de gmail. Tengo varias cuentas de correo que reciben basura del orden 2000-3000 correos diarios. Estas cuentas las redirecciono a una cuenta de gmail y así me aprovecho de su filtro antispam. Esta cuenta la configuro con acceso imap y sólamente me suscribo a la carpeta Spam. Esta carpeta, /home/usuario/.mozilla-thunderbird/4zqsixke.default/ImapMail/imap.gmail.com/carpetaSpam (es la ruta que le asigna Icedove), que es donde me descargo los correos, la comparto por samba y asi puedo montarla desde todos mis servidores de correo.

Después ejecuto el comando (lo suyo es ponerlo en un cron)

nice -n 19 sa-learn -u amavis –mbox –spam Spam

para alimentar de correos a spamassassin.

Dentro de la carpeta mi cliente email (Icedove) guarda los correos, me encuentro un fichero llamado Spam y otro Spam.msf. Icedobe guarda todos los correos en un sólo archivo.  Esto es porque el formato es mbox en lugar de maildir. Por eso al ejecutar el comando especifico la opcion –mbox. Con –spam le indico que los archivos a parsear son de spam y el fichero con todos los correos se llama Spam. Por la configuración de mis servidores le tengo que pasar el parámetro -u amavis, para decirle con el usuario que debería ejecutarse. Si quisiese entrenarlo con correo legítimo (es importante alimentar spamassassin con los dos tiposusaría la opción –ham. Hay otras muchas más en man sa-learn.

Si usais qmail, os recomiendo spamdyke. Es acabar con el spam de una vez por todas.