Vamos a ver cómo instalar Spam Assassin en una distribución CentOS 6 o CentOS 7, ya sea en un servidor dedicado o en un VPS.
Spam Assassin es un programa bajo licencia Apache 2.0 utilizado para filtrar spam en nuestro correo entrante en base a una serie de reglas que definamos.
Si hemos instalado ZPanel, Plesk, CPanel o cualquier otro de los más conocidos, se nos instalará también un servidor de correo y alguna interfaz de webmail como Roundcube o Squirrel Mail, pero en caso de no haber instalador un panel, tendremos que instalar un servidor de correo antes de instalar Spam Assassin.
Contenidos
Actualizar CentOs
Antes de nada debemos asegurarnos de que nuestra distribución se encuentra plenamente actualizada ejecutando:
# yum -y update
Instalando SpamAssassin
Como siempre, utilizaremos el comando yum para instalar SpamAssassin del repositorio:
# yum install spamassassin
Crear un nuevo grupo y usuario
Es un requisito del programa. Primero deberemos crear un grupo para el usuario que ejecutará el servicio smapassassin:
# groupadd spamfilter
Seguidamente creamos el usuario spamfilter con el directorio home /usr/local/spamassassin y luego lo añadimos al grupo spamfilter creado con el comando anterior.
# useradd -g spamfilter -s /bin/false -d /usr/local/spamassassin spamfilter # chown spamfilter: /usr/local/spamassassin
Configuración básica de SpamAssassin
Debemos editar el archivo de configuración localizado en /etc/mail/spamassassin/local.cf mediante el comando:
# vim /etc/mail/spamassassin/local.cf
Seguidamente editamos el archivo para que quede así:
## Required_hits: Determina el balance de filtrado, siendo los valores más bajos los que más agresivos para el filtrado de spam. # Un valor de 5.0 es generalmente el más efectivo para pequeñas y medianas empresas o usos personales. #Dependiendo del tipo de empresa y el tipo de spam que recibáis, deberéis ajustar este valor hasta que sea adecuado. #Puede llegar a ser incluso de 8.0 en caso de empresas médicas. required_hits 5 ## Report_safe: Esta línea determina si el elemento clasificado como spam se eliminará o si se le agregará una etiqueta de SPAM al sujeto del email. #Un valor de 1 eliminará el email y un valor de 0 lo enviará a la bandeja de entrada con la etiqueta de SPAM [recomendado] report_safe 0 rewrite_header Subject [**SPAM**] ## Required_score: Esta opción clasifica la puntuación de spam de todos los emails que llegan al servidor. con niveles de entre 0 y 5. #El valor 0 será un email legítimo mientras que 5 será sin duda en correo de SPAM. #Si ponemos un valor de 3 detectaremos bastantes emails de spam pero también recibiremos algunos falsos positivos. #Aquí pondremos un valor de 5, pero recordad cambiarlo de acuerdo con vuestras preferencias. required_score 5.0
Tras guardar el archivo y antes de iniciar el servicio spamassassin, necesitamos asegurarnos de que utiliza nuestro usuario spamfilter editando el archivo /etc/sysconfig/spamassassin.
# vim /etc/sysconfig/spamassassin
Debería contener:
# Options to spamd SAHOME="/usr/local/spamassassin" SPID_DIR="/var/run/spamassassin" SUSER="spamfilter" SPAMDOPTIONS="-d -c -m5 --username ${SUSER} -H ${SAHOME} -s ${SAHOME}/spamfilter.log"
Finamente, guardamos el archivo y activamos el servicio spamassassin tanto ahora como en nuestro inicio del sistema ejecutando:
# service spamassassin start # chkconfig spamassassin on
Configurando PostFix
La siguuente tarea será integrar SpamAssassin con postfix para que podamos escanear y clasificar los emails entrantes como SPAM. Editamos el archivo de configuración de postfix:
# vim /etc/postfix/master.cf
Agregamos o editamos las siguientes líneas tal que así:
smtp inet n - n - - smtpd -o content_filter=spamassassin spamassassin unix - n n - - pipe user=spamfilter argv=/usr/bin/spamc -f -e /usr/sbin/sendmail -oi -f ${sender} ${recipient}
Por último, reiniciamos el servicio postfix para aplicar la configuración anterior:
# service postfix restart
Probando la configuración
Para probar que SpamAssassin está funcionando sencillamente enviamos un email con el asunto XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X a una de las las direcciones de email que hayamos creado. Una vez recibido, comprobamos las cabeceras y para que SpamAssassin esté realizando bien su trabajo, debería mostrarse:
X-Spam-Flag: YES X-Spam-Level: ************************************************** X-Spam-Status: Yes, score=1000.0 required=5.0 tests=GTUBE,RCVD_IN_DNSWL_NONE, TVD_SPACE_RATIO autolearn=no version=3.3.1 ....
Y esto es todo. Espero que esta pequeña guía os haya sido útil.
Hola neeonez, muchas gracias por tu tutorial. He seguido todos los pasos sin problema (he tenido que añadir manualmente las líneas en /etc/sysconfig/spamassassin y en /etc/postfix/master.cf y tras reiniciar los servicios y hacer la prueba de la configuración, no me marca X-Spam-Flag en el correo que he recibido (enviado desde cuenta GApps).
¿Qué puedo estar haciendo mal? ¿Cómo puedo hacer otra prueba?
Gracias por tu ayuda una vez más.
Hola BalBino, perdón por la tardanza.
¿Qué es lo que te aparece en la cabecera del email? ¿No aparece nada o aparece el X-Spam-Flag como negativo? ¿Estás utilizando algún panel de Hosting? En este último caso el archivo master.cf podría estar en otro lado, aunque el archivo de /etc/postfix/master.cf debería ser un symlink al verdadero y además, ete archivo podría variar dependiendo del panel. En ocasiones solamente has de añadir: smtp inet n – n – – smtpd
Uff muchas gracias, me costo mucho encontrar una guia como esta. ojala me funcione. saludos y gracias de nuevo!
Gracias muy buena guia….