Práctica Instalación del antispam SpamAssassin en profesordeinformatica.com

Práctica Instalación del antispam SpamAssassin

Por Aitor López de Aberasturi el Viernes, 20 de Junio de 2014 0 Comentarios

Para evitar que nos envíen Spam a nuestro correo podemos instalar un aptispammer que los filtre. Spamassasin es un filtro semi-inteligente que aplica una serie de reglas para intentar decidir si un mensaje es o no un mensaje no deseado con propaganda no deseada.

1.- Instalamos Spamassassin:

apt-get install spamassassin spamc

2.- Instalamos las librerias adicionales que puede utilizar Spamassassin:

apt-get install libmailtools-perl libhtml-format-perl spamc libmail-spf-perl re2c gcc libc6-dev libio-socket-inet6-perl 
apt-get install libcrypt-ssleay-perl libio-socket-ssl-perl razor libnet-ident-perl libdbi-perl pyzor libmail-dkim-perl 

Los ficheros de configuración de SpamAssasin son los siguientes:

  • /etc/spamassassin/local.cf: Fichero de configuración principal.
  • ~/.spamassassin/user_prefs: Fichero de configuración de los usuarios.
  • /usr/share/spamassassin: directorio donde están los ficheros con las reglas.

3.- Queremos que se ejecute con una cuenta sin privilegios y que los logs se guarden en /var/log/spamassassin:

sudo groupadd spamd
sudo useradd -g spamd -s /bin/false -d /var/log/spamassassin spamd
sudo mkdir /var/log/spamassassin
sudo chown spamd:spamd /var/log/spamassassin

4.- Habilitamos SpamAssassin:

Editamos el fichero /etc/default/spamassassin con los siguientes parámetros:

ENABLED=1
SAHOME="/var/log/spamassassin/"
OPTIONS="--create-prefs --max-children 2 --username spamd -H ${SAHOME} -s ${SAHOME}spamd.log"

5.- Configuramos el fichero /etc/spamassassin/local.cf con el siguiente contenido:

# Con esto reescribimos el asunto del mensaje
rewrite_header Subject *****SPAM*****
# Puntuacion maxima de no spam (La puntuación a partir de la cual spamassassin dice que un correo es SPAM). 
required_score 5.0
# Le decimos que nos mande el correo de spam de manera adjunta.
report_safe 1
# Son valores por defecto, pero es bueno resaltarlo:
use_bayes 1
bayes_auto_learn 1
bayes_learn_during_report 1
# Estas líneas se ponen para evitar que las cabeceras de los ISP se tomen como spam
bayes_ignore_header X-Upstream-Spamfilter
bayes_ignore_header X-Upstream-SomethingElse
# directorio de las BBDD bayesianas
bayes_path /etc/spamassassin/bayes/bayes
## Better hit rates, but databases 10 veces mas grandes:
bayes_use_hapaxes 1
## IDIOMAS
ok_languages es en
ok_locales es en
## PUNTUACIONES PARA EL IDIOMA
score UNWANTED_LANGUAGE_BODY 9 9 9 9
score UNDESIRED_LANGUAGE_BODY 9 9 9 9

El parámetro rewrite_header, nos indica que si el AntiSpam detecta el correo como un Spam va a añadir ***SPAM*** al asunto.

El parámetro required_score, indica que cuando el correo llegue a tener 5 puntos (correo sin resolución inversa, título en mayúsculas,etc) lo va a considerar como spam. Tiene que tener una puntuación entre 0 y 10. Si queremos que sea más restrictivo bajamos su valor.

6.- Creamos la carpeta donde se gurada la BBDD bayesana:

mkdir /etc/spamassassin/bayes

7.- Reiniciamos SpamAssassin:

/etc/init.d/spamassassin restart 

8.- Configuramos postfix para que utilice SpamAssassin:

Editamos el fichero /etc/postfix/master.cf

smtp    inet n      -    -   -     -    smtpd
    -o content_filter=spamassassin:dummy
y al final del fichero añadimos:
spamassassin unix - n n - - pipe user=spamd
       argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} -- ${recipient}

Nota: Conservar los saltos de líneas (-o y argv).

9.- Reiniciamos postfix

/etc/init.d/postfix restart

10.- Realizamos una prueba enviándonos un correo con la palabra VIAGRA en mayúsculas en el sujeto. Vemos el resultado:

correo SpamAssassin

Próxima entrada

Servidor de Correo Windows Exchange


Sobre el profe

Esta es la página web de Aitor Lopez de Aberasturi profesor de informática en ITS Ciudad Jardin. También puedes visitar mi blog de clase.