Práctica Instalación del antispam SpamAssassin
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: