Tabela de conteúdo |
Vamos instalar o pacote principal deste excelente antispam:
# apt-get install spamassassin
com o pacote instalado, vamos configurá-lo.
Edite o arquivo /etc/spamassassin/local.cf e deixe com as seguintes configurações:
# vim /etc/spamassassin/local.cf
use_bayes 1 bayes_auto_learn 1 bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status
agora para que funciona corretamente, edite o arquivo vim /etc/default/spamassassin e defina:
ENABLED=0
para:
ENABLED=1
e inicialize o serviço:
# /etc/init.d/spamassassin start
pronto.
Depois de instalar os pacotes:
# apt-get install libnet-dns-perl razor pyzor
Vamos editar o arquivo de configuração do Spamassassin e adicionar algumas regras para que o razor e pyzor sirvam de lista:
# vim /etc/spamassassin/local.cf
lock_method flock use_bayes_rules 1 bayes_auto_learn 1 bayes_auto_expire 1
agora reinicialize o serviço para passar a utiliza-los:
# /etc/init.d/spamassassin restart
Feito isso, vamos configurar um script para aprender com os Spams definidos pelos usuários:
Primeiro vamos criar o seguintes script:
# vim /usr/local/sbin/spam_learn.sh
#!/bin/bash
MAILDIRS="/caminho/das/contas/de/email"
DB_PATH="/var/lib/amavis/.spamassassin/"
DB_USER="amavis"
DB_GROUP="amavis"
SA_LEARN="`which sa-learn`"
LEARN_SPAM_CMD="$SA_LEARN --spam --no-sync --dbpath $DB_PATH"
LEARN_HAM_CMD="$SA_LEARN --ham --no-sync --dbpath $DB_PATH"
# Learn SPAM
find $MAILDIRS -iregex '.*/\.Junk\(/.*\)?\/\(cur\|new\)/.*' -type f -exec $LEARN_SPAM_CMD {} \;
chown -R $DB_USER:$DB_GROUP $DB_PATH
# Learn HAM
find $MAILDIRS -iregex '.*/cur/.*' -not -regex '.*/\.Junk\(/.*\)?\/\(cur\|new\)/.*' -type f -exec $LEARN_HAM_CMD {} \;
chown -R $DB_USER:$DB_GROUP $DB_PATH
# Clean SPAM folders
find $MAILDIRS -iregex '.*/\.Junk\(/.*\)?\/\(cur\|new\)/.*' -type f -ctime +30 -delete
feito isso, vamos ativar no cron do amavisd-new para que seja executado este comando antes do sa-sync diário:
# vim /etc/cron.d/amavisd-new
e adicione a linha:
00 20 * * 6 root /usr/local/sbin/spam_learn.sh > /var/log/spam_learn.log 2> /var/log/spam_learn.err
antes da linha:
18 */3 * * * amavis test -e /usr/sbin/amavisd-new-cronjob && /usr/sbin/amavisd-new-cronjob sa-sync
pronto, agora semanalmente seu Spamassassin será treinado e depois de 30 dias, os e-mails removidos da caixa de Spam (Junk).
--Brivaldo 19h00min de 3 de maio de 2010 (UTC)