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: 44.442 ]

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 spam@seudominio.com.br e os que não são SPAM para nospam@seudominio.com.br.

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

Configurar autenticação no Postfix

Aliases e autenticação para aliases no Postfix

Rodando seu script como "service" no Conectiva

Evite desgaste diário de seus CDs

Enviando mensagens para usuários da rede

Leitura recomendada

Servidor Postfix Total

Servidor de e-mail no Linux com MTA Sceo

Evosign - Adicionar assinatura automática ao Evolution

Sylpheed - a GTK+ based, lightweight, and fast e-mail client

Postfix - Integração AD e autenticação

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts