Spamassassin

De Biblioteca Unix

Conteúdo

SpamAssassin

Debian Lenny 5.0/Ubuntu Server 10.04 LTS

Instalando os Pacotes necessários

Vamos instalar o pacote principal deste excelente antispam:

# apt-get install spamassassin 

com o pacote instalado, vamos configurá-lo.

Configuração

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.

Adicionando Suporte ao Razor e Pyzor

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

Treinamento Automático

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)

Ferramentas pessoais