Sitio para la difusión de conocimiento informático. 

Twitter RSS

Entrenar SPAM/HAM en Bayes

Entrenamiento de Bayes – Spamassassin

El entrenamiento de correos en Bayes para Spamassassin, ya sea como HAM o SPAM, se realiza manualmente utilizando la herramienta “sa-learn”. Eso requiere exportar el correo envaiado por el usuario a un formato .eml y luego copiarlo hasta el servidor de correo para ejecutar la herramienta “sa-learn” y entrenar el correo como SPAM o HAM.

Ej. de entrenamiento manual:
– Entrenar un correo como SPAM: sa-learn –spam mail.eml
– Entrenar un HAM como HAM: sa-learn –ham mail.eml
– Verificamos la nueva puntuación del correo forzando a que
Spamassassin lo vuelva a procesar: cat mail.eml | spamassassin –lint -D | more
Al final de la salida de este comando veremos la puntuación que Spamassassin le otorgó a nuestro correo.

Para facilitar la tarea, a continuación detallamos como podemos configurar nuestro DNS interno y Postfix para enviar correos a entrenar en Bayes a la casilla ham@ham.ham para entrenar el correo como HAM; y spam@spam.spam para entrenar el correo como SPAM.

Descripción

Crearemos dos dominios ficticios (que no existan en Internet) en el servicio BIND (DNS) que corre localmente en el servidor de correo para que sean válidos para Postifx, y a su vez sean procesados por el servicio local de Postfix. Los dominios que se configuraran  son “ham.ham” y “spam.spam”, los cuales rutean los correos a entrenar directamente a Postfix quien los entregará a la herramienta “sa-learn”. Cuando desee entrenar un HAM, enviaré un correo desde mi red interna destinado a la casilla “ham@ham.ham”, y cuando desee entrenar un SPAM enviaré un correo dsde mi red interna destinado a la casilla “spam@spam.spam”.

 

Configuración en BIND

– Copiamos el archivo correspondiente a la zona local “localhost.zone”:
cp /var/lib/named/localhost.zone /var/lib/named/localhost-ham.zone
cp /var/lib/named/localhost.zone /var/lib/named/localhost-spam.zone

– Editamos el archivo de configuración de zonas de BIND /etc/named.conf, y agregamos las siguientes líneas:
zone “spam.spam” in {
       type master;
       file “localhost-spam.zone”;
};
zone “ham.ham” in {
       type master;
       file “localhost-ham.zone”;
};

– Reiniciamos el servicio de BIND y verificamos en el log que haya cargado las nuevas zonas:
/etc/init.d/named restart
less /var/log/messages

 

Configuro la Postfix para auto entrenar correos

– Editamos el archivo de configuración de postfix “master.cf”, y agregamos las siguientes líneas:
sa-wrapper unix –       n       n       –       –       pipe
     user=spamd argv=/usr/bin/sa-learn –${mailbox}
– Editamos el archivo de configuración de postfix “transport”, y agregamos las siguientes líneas para rutear los correos:
spam@spam.spam sa-wrapper:
ham@ham.ham    sa-wrapper:
– Cargamos la nueva configuración de ruteo ejecutando el comando: postmap transport

– Reiniciamos postfix: /etc/init.d/postfix restart

– Si deseamos bloquear correos que no vengan de mi organización, y sean destinados a los dominios ficticios, puedo crear una lista de control de acceso en Postifx y rechazar esos dominios destino para todos menos para las redes definidas en la variable “mynetworks” de Postfix:
. Creo el archivo reject en “/etc/postfix/reject”, y agrego las siguientes líneas:
spam.spam REJECT
ham.ham REJECT
. Luego edito el archivo de configuración de postfix “/etc/postfix/main.cf”, y agrego lo siguiente dentro de la configuración de “smtpd_recipient_restrictions”:
smtpd_recipient_restrictions =
permit_mynetworks,

hash:/etc/postfix/reject
. Ejecuto el comando “postmap /etc/postfix/reject”, para cargar esta configuración. De esta forma denegaremos los correos desde redes que no estén definidas en la variable “mynetworks”.

 

De esta forma, cuando enviemos un correo desde nuestra red interna a los dominios definidos anteriormente, serán entregados a la herramienta “sa-learn”, con el argumento “–ham” o “–spam” según la casilla destino del correo.

 
Home Linux OS Spamassassin Entrenar SPAM/HAM en Bayes