Como fazer usuário interagir com SpamAssassin

Nesse artigo veremos como fazer o usuário de e-mail interagir e "educar" o SpamAssassin, seja via webmail, evolution, etc. Serve tanto para e-mails SPAM quanto para não-SPAM (HAM).

[ Hits: 43.478 ]

Por: Nandor em 13/09/2006 | Blog: http://www.solucoesnandor.com.br/


Criando e configurando os scripts de interatividade



Crie dois usuários, um chamado "spam" e outro "nospam" para que os usuários de e-mail possam enviar os e-mails que são SPAM para [email protected] e os que não são SPAM para [email protected]

Obviamente esses nomes podem ser diferentes, desde que você considere isso nas outras etapas.

Criando e configurando os scripts


Por padrão, quando você configura para trabalhar com Clamav + SpamAssassin, ele cria um diretório /var/lib/clamav/.spamassassin. Dentro desse diretório crie uma pasta chamada "scripts" e dentro dela coloque os seguintes scripts, conforme segue abaixo e com explicação linha a linha:

Leitura dos SPAMs:
Esse script irá ler o arquivo de armazenamento de e-mail do usuário criado, desconsiderará o cabeçalho e enviará o código fonte do e-mail para um arquivo transitório a fim de depois fazermos a leitura dele adicionando na base de dados do SpamAssassin.

Script Leblock:

# vim /var/lib/clamav/.spamassassin/scripts/leblock

#!/bin/bash
# Conta o número de linhas do e-mail e armazena na variável
NL=`cat /var/mail/spam | wc --line`

# Subtrai o número de linhas do cabeçalho padrão do arquivo de
# e-mail do usuário, mude esse numero de linhas caso seja necessário.
NL=$(($NL-12))

# Envia para o arquivo temporário o código fonte do e-mail e já
# aplica o sa-learn, que é responsável pelo "aprendizado" do Spamassasin
tail -$NL /var/mail/spam > /var/lib/clamav/.spamassassin/scripts/Spam | sa-learn --spam /var/lib/clamav/.spamassassin/scripts/Spam

# Crie no diretório /var/lib/clamav/.spamassassin/scripts um arquivo
# sem conteúdo chamado "vazio" para que possamos "zerar" o arquivo
# temporário e assim não ficar enviando repetitivamente códigos que o
# SpamAssassin já tenha "aprendido". Existem outras maneiras de "zerar"
# esse arquivo esse é apenas um exemplo.
cat /var/lib/clamav/.spamassassin/scripts/vazio > /var/lib/clamav/.spamassassin/scripts/Spam

# Lê o cabeçalho do arquivo de e-mail do usuário SPAM que criamos e
# envia para um arquivo transitório.
head -12 /var/mail/spam > /var/mail/tmp

# Retorna o cabeçalho pro arquivo original, deixando assim somente
# o cabeçalho.
cat /var/mail/tmp > /var/mail/spam

# Apagando o arquivo transitório
rm -rf /var/mail/tmp

# redefinindo a permissão do arquivo para que não dê erros no momento
# da gravação do usuário spam
chown spam.spam /var/mail/spam

Leitura dos Ham ou não SPAM:
Esse script lerá o arquivo de armazenamento de e-mail do usuário criado, desconsiderará o cabeçalho e enviará o código fonte do e-mail para um arquivo transitório a fim de depois fazermos a leitura dele adicionando na base de dados do SpamAssassin.

Script Leunblock:

# vim /var/lib/clamav/.spamassassin/scripts/leunblock

#!/bin/bash
# Conta o número de linhas do e-mail e armazena na variável
NL=`cat /var/mail/nospam | wc --line`

# Subtrai o número de linhas do cabeçalho padrão do arquivo de
# e-mail do usuário, mude esse numero de linhas caso seja necessário.
NL=$(($NL-12))

# Envia para o arquivo temporário o código fonte do e-mail e já
# aplica o sa-learn que é responsável pelo "aprendizado" do Spamassasin
tail -$NL /var/mail/nospam > /var/lib/clamav/.spamassassin/scripts/unSpam | sa-learn --ham /var/lib/clamav/.spamassassin/scripts/unSpam

# Crie no diretório /var/lib/clamav/.spamassassin/scripts um arquivo
# sem conteúdo chamado "vazio" para que possamos "zerar" o arquivo
# temporário e assim não ficar enviando repetitivamente códigos que o
# SpamAssassin já tenha "aprendido". Existem outras maneiras de
# "zerar" esse arquivo, esse é apenas um exemplo
cat /var/lib/clamav/.spamassassin/scripts/vazio > /var/lib/clamav/.spamassassin/scripts/unSpam

# Lê o cabeçalho do arquivo de e-mail do usuário spam que criamos e
# envia para um arquivo transitório
head -12 /var/mail/nospam > /var/mail/untmp

# Retorna o cabeçalho para o arquivo original, deixando assim somente
# o cabeçalho.
cat /var/mail/untmp > /var/mail/nospam

# Apagando o arquivo transitório
rm -rf /var/mail/untmp

# redefinindo a permissão do arquivo para que não dê erros no momento da
# gravação do usuário nospam
chown nospam.nospam /var/mail/nospam
Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando e configurando os scripts de interatividade
   3. Agendando a execução dos scripts
Outros artigos deste autor

Monitoramento de utilização do DNS

Instalação e configuração do Spamassassin

Rodando seu script como "service" no Conectiva

Enviando mensagens para usuários da rede

Configurar autenticação no Postfix

Leitura recomendada

Vacation fácil com o OpenVacation

QMAIL, um poderoso MTA (FreeBSD)

Migrando entre clientes de correio eletrônico

Trabalhando com os logs do Postfix/Qmail usando o isoqlog

Anti-SPAM ASK - Válidando remetentes por confirmação de mensagens

  
Comentários
[1] Comentário enviado por peregrino em 14/09/2006 - 16:51h

muito bom seu tutorial parabens

mas agora queria saber uma coisa esse script educa altomaticamente, gostaria de saber se tem como fazer uma quarentena na qual o usuario iria ver se passo algum spam que o spamassassin não pego e colocando na pasta spam e automaticamente duarante uns 5 dias o que estiver nessa pasta ele educa como spam (HAM)

obrigado

[2] Comentário enviado por solucoesnandor em 14/09/2006 - 17:35h

Na ultima parte (Agendando a execução dos scripts) eu comento sobre o tempo de execução, ao qual você pode determinar o tempo que desejar. Numa das redes que administro a prática que tomei foi de enviar todo conteúdo detectado como spam para uma conta especifica, onde fica armazenados caso algum usuário reclame do não recebimento de um determinado e-mail, assim fica mais fácil poder detectar qual está sendo a eficiência do serviço, você pode redirecionar para essa caixa e verificar diariamente e encaminhar para o destinatário caso necessário.
Se tiver interessado nessa solução posso te passar mais detalhes de como faze-la.
Espero ter esclarecido suas duvidas.
Abraços

[3] Comentário enviado por balani em 15/09/2006 - 10:22h

Muito bom seu artigo, parabens!

[4] Comentário enviado por mbodao em 27/10/2006 - 15:08h

Na hora de digitar o comando sa-learn --dump magic
der este erro:
ERROR: Bayes dump returned an error, please re-run with -D for more
information

Tente digitar este comando abaixo que resolverá:
sa-learn --sync -D

[5] Comentário enviado por c.rafael em 16/11/2006 - 17:57h

Muito bom, ....

Mas me tira uma duvida, ....

Se eu trabalho com postfix+mysql+clamav+spamassassin, como que faço esse sistema para cada usuário ou para cada dominio?

valeu

[6] Comentário enviado por llu_asa em 13/03/2007 - 19:43h

olá to faxzeno um trabalho sobre spanassassin e gostaria de saber de sua instalação , quais os programas q ele interage e sua configração
grata


Contribuir com comentário