Amavis-new + spamassassin
De Wikillano
amavis-new + spamassassin
apt-get install spamassassin apt-get install amavisd-new
copiamos el fichero de configuración default de amavis al directorio conf.d
cp /usr/share/doc/amavisd-new/examples/amavisd.conf-default.gz /etc/amavis/conf.d/.
lo renombramos a 30-user
mv /usr/share/doc/amavisd-new/examples/amavisd.conf-default.gz /etc/amavis/conf.d/30-user
ahora editamos las siguientes lineas:
$mydomain = 'ballano.net'; $forward_method = 'smtp:127.0.0.1:10025'; $notify_method = $forward_method; $final_spam_destiny = D_PASS; $sa_tag_level_deflt = 4.0; $sa_tag2_level_deflt = 5.0; $sa_kill_level_deflt = $sa_tag2_level_deflt; #descomentamos la siguiente linea para habilitar el anti-spam @bypass_spam_checks_maps = (\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); #cuenta donde irá a parar el spam $spam_admin = 'spam@dominio.net';
Si se detecta el correo como spam, y tenemos la variable como D_PASS el mail será enviado igualmente al usuario destinatario, para que esto no ocurra y sólo sea enviado a la cuenta de spam deberemos poner D_DISCARD | |
En /etc/postfix/main.cf añadiremos:
content_filter=smtp-amavis:[127.0.0.1]:10024
añadimos lo siguiente al final de /etc/postfix/master.cf
smtp-amavis unix - - - - 2 smtp -o smtp_data_done_timeout=1200s -o disable_dns_lookups=yes 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_client_restrictions= -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o mynetworks=127.0.0.0/8 -o strict_rfc821_envelopes=yes
los espacios son [Tab]
creamos una cuenta (Maildir) spam@loquesea.com donde recibiremos lo que spamassassin identifica como spam,
en esta cuenta crearemos dos carpetas colgando de la bandeja principal:
- spam-si
- spam-no
el funcionamiento será el siguiente:
cuando llegue un correo identificado como spam, este será depositado el la bandeja de entrada de spam@loquesea.com, entonces nosotros mismos verificaremos si es spam, si lo es lo pondremos en spam-si de no serlo lo moveremos a spam-no
después mediante unos trabajos cron moveremos los mails de spam-si spam-no a los directorios (spam,ham) para que spamassassin pueda aprender de ellos e ir mejorando la detección.
- crontab de root:
#movemos los mails que nosotros hemos seleccionado como spam y no a los dirs de amavis 3 * * * * /bin/mv /home/spam/Maildir/.spam-si/cur/* /var/lib/amavis/spam/. >/dev/null 2>&1 3 * * * * /bin/mv /home/spam/Maildir/.spam-no/cur/* /var/lib/amavis/ham/. >/dev/null 2>&1 #les cambiamos el propietario 4 * * * * /bin/chown amavis.amavis /var/lib/amavis/spam/* > /dev/null 2>&1 4 * * * * /bin/chown amavis.amavis /var/lib/amavis/ham/* > /dev/null 2>&1
Como usuario amavis creamos dos directorios, uno llamado spam (para los mensajes de spam) y otro llamado ham para procesar los mensajes no spam
- crontab de amavis:
crontab -e
#primero le decimos a spamassassin que olvide lo aprendido en los dirs spam/ham 5 * * * * /usr/bin/sa-learn --forget --dir /var/lib/amavis/spam >/dev/null 2>&1 5 * * * * /usr/bin/sa-learn --forget --dir /var/lib/amavis/ham >/dev/null 2>&1 #adiestramos a spamassassin del contenido de los dirs spam/ham 6 * * * * /usr/bin/sa-learn --spam --dir /var/lib/amavis/spam >/dev/null 2>&1 6 * * * * /usr/bin/sa-learn --ham --dir /var/lib/amavis/ham >/dev/null 2>&1 #borramos el contenido de los dir 7 * * * * /bin/rm -f /var/lib/amavis/spam/* > /dev/null 2>&1 7 * * * * /bin/rm -f /var/lib/amavis/ham/* > /dev/null 2>&1

