18 de Enero, 2005

La bbdd de Bogofilter

Ya llevo unas semanas filtrando correo en sendmail empleando bogofilter, y en los últimos días he activado el modo de auto-entrenamiento de Bogofilter.

Se me olvidó comentarlo, porque esto trae consecuencias:

# du -h wordlist*.db
2.1M    wordlist-base.db
4.3M    wordlist.db

El primer fichero es con el que partí después del entrenamiento inicial con dos dos corpus de correo: spam y ham. El segundo corresponde con el estado actual.

La verdad es que no recuerdo cuanto tiempo tengo ya al filtro aprendiendo de sus propias clasificaciones, así que nos conformamos con saber que aumenta... aunque no sepamos cuanto.

Esto se corrige como se indica en el FAQ (How can I compact my database?) de Bogofilter.

# bogoutil -d wordlist.db | bogoutil -l wordlist.db.new
# mv wordlist.db.new wordlist.db
# chown milter wordlist.db && chmod 600 wordlist.db
# du -h wordlist*.db
2.1M    wordlist-base.db
848K    wordlist.db

No está mal, aunque volverá a crecer :P. 4MB de bbdd tampoco era para tanto, pero me parece buena idea comentarlo.

Otra cosa que he ido haciendo estos días es guardar todos los falsos negativos, es decir, correos que no se han clasificado como spam y lo son. He empleado una carpeta en Mozilla para luego pasar ese mbox a Bogofilter:

# bogofilter -Ns -B BOGO-no.mbox

Le decimos que desclasifique los correos indicados como ham para ponerlos en spam. El -B nos permite indicarle un fichero en formato mbox.

Por cierto que estoy viviendo peligrosamente empleando policy reject en todos los correos que Bogofilter clasifica como spam, después de comprobar como en dos semanas no se le colaba ni un falso positivo (correo bueno marcado erróneamente como spam). Si alguien sospecha que no me ha llegado un correo vendiéndome Rolex de esos... que avise :P.

Actualización: Al compactar la bbdd me dio una advertencia, que no copié en el texto. Parece que era más importante de lo que yo creía y que más que compactar se han perdido parte de los datos. Eso explicaría porque esta noche ha dejado pasar unos 50 correos de spam :(. Se los iba a pasar al filtro para cambiar su diagnóstico e ir corrigiendo esta situación, pero finalmente he cogido la bbdd original (en wordlist-base.db) para volver a partir de ahí. Mirando el FAQ encuentro How can I tell if my wordlists are corrupted?, aunque no se si ha pasado algo como para deducir que la bbdd estaba fastidiada.

Anotación por Juan J. Martínez.

Hay 3 comentarios

Gravatar

Spam Assassin cuela alguno que otro, pero la verdad es que no lo tengo muy aprendido tampoco. Digamos que un porcentaje del 90% sería una justa puntuación para SA, de todas formas trataré de comprar pizarra y tiza para hacer de maestro unos días :).

De momento no he usado la policy reject aunque tampoco he avistado falsos positivos, de seguir así pronto pasaré a sentir el riesgo en mis propias carnes ;).

por r0sk, en 2005-01-18 10:50:10

Gravatar

Pues eso, no es que lo tenga aprendido, no lo tengo enseñado... uno, que es gallego :D.

por r0sk, en 2005-01-18 10:51:23

Gravatar

Piensa que si el filtro rechaza un correo es porque tiene toda la pinta de ser spam. Es decir, que si me mandas un correo legítimo vendiéndome productos farmacéuticos, pues puede que rechaze el correo :P.
El punto está en hilar muy fino, es decir, en que no se escape ninguno malo sin poner en riesgo los buenos. Dependiendo de los patrones que siga nuestro correo esto será más o menos complicado.
Bah, el correo geek no suele dar problemas (aunque igual si me manda un mensaje con Vigla y al final ponen un s/Vigla/Viagra/g... :D).

por Juanjo, en 2005-01-18 10:54:54

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.