Personal tools
You are here: Home Documentación Recetas Filtro Anti Spam en el servidor
Navigation
Log in


Forgot your password?
New user?
 
Document Actions

Filtro Anti Spam en el servidor

by Lorenzo Gil Sanchez last modified 14-03-2005 02:57 PM

Copyright © 14 Marzo 2004 Lorenzo Gil Sánchez

Motivacion

El correo no deseado (spam) se puede filtrar en el cliente o en el servidor. Filtrarlo en el servidor tiene la ventaja de que si utilizamos varios clientes de correo distintos (webmail, Evolution, Thunderbird, Outlook, ...) o simplemente consultamos el correo desde sitios distintos (casa, oficina, cibercafe) no tenemos que mantener varias configuraciones para combatir el spam. Todo se hace desde el servidor y una unica vez.

Software elegido

Se ha elegido spambayes por su facil integracion con procmail, el programa que distribuye el correo desde el servidor SMTP a las distintas carpetas de cada usuario. Otras ventajas son:

  • Facilidad de entrenamiento automatico (en una tarea de cron)
  • Escrito en Python (si algo falla podemos tratar de arreglarlo)
  • Usa varios algoritmos bayesianos para clasificar el spam
  • Se configura por separado para cada usuario, asi, si alguien no quiere usarlo, no tiene por que hacerlo
  • Es libre

Instalacion de spambayes

Spambayes requiere Python 2.2.2 pero en el servidor (Debian Woody) solo tenemos Python 2.2.1. Asi que se ha instalado Python 2.4 en /usr/local

Spambayes usa la base de datos Berkeley DB y es necesario que Python 2.4 tenga soporte para ella. Asi que, antes de compilar, se ha instalado el paquete Debian libdb4.2-dev

Configuracion de spambayes

Estos son los pasos a seguir para configurar spambayes para un determinado usuario.

Creamos el fichero .spambayesrc en nuestro directorio home:

  [Storage]
  persistent_use_database = True
  persistent_storage_file = ~/.hammiedb

Spambayes se entrena dandole dos montones, uno de spam y otro de ham (correo bueno). Para ello primero creamos la base de datos:

  sb_filter.py -n

A continuacion entrenamos inicialmente spambayes:

  sb_mboxtrain.py -f -s ~/Maildir/.spam/ -g Maildir/.correobueno

Por ultimo modificamos nuestro fichero .procmailrc para que el spam y el ham vayan a las carpetas apropiadas:

  :0 fw:hamlock
  | /usr/local/bin/sb_filter.py

  :0
  * ^X-SpamBayes-Classification: spam
  .spam/

  :0
  * ^X-SpamBayes-Classification: unsure
  ./posible_spam

Estas lineas deben ir antes que cualquier otra regla de .procmailrc. La primera regla redirige todo lo que entre al filtro spambayes, la segunda coloca el spam en una carpeta llamada spam (que debe existir previamente) y la ultima coloca el correo que no es seguro que sea spam en la carpeta posible_spam. Todo lo demas (ham) se coloca en la carpeta inbox o en donde corresponda segun el resto de reglas que tengamos en .procmailrc

Entrenando a spambayes

Dia a dia debemos colocar los correos que sean spam y no hayan sido clasificados como tales por spambayes en la carpeta spam. Asi mismo es conveniente repasar de vez en cuando el spam por si spambayes se ha equivocado. Hay formas mas sofisticadas de hacer esto como la que se describe en el Wiki de Spam Bayes

Periodicamente debemos entrenar a spambayes, para lo cual podemos usar una tarea de cron:

  crontab -e

Por ejemplo, para entrenarlo cada 2 horas:

0 */2 * * * /usr/local/bin/python /usr/local/bin/sb_mboxtrain.py -s /home/lgs/Maildir/.spam/ -g /home/lgs/Maildir/


Powered by Plone CMS, the Open Source Content Management System Powered by GCubo Powered by Cicode

This site conforms to the following standards: