Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux
» Screenshot
Linux: Enlightenment E16
Por sagu



» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: NÃO USE DROGRAS, USE LINUX
Por jcs.linux


Artigo

Anti-SPAM ASK - Válidando remetentes por confirmação de mensagens
Linux user
patrickbrandao
07/07/2006
Você sabia que quase 65% do tráfego SMTP na web é SPAM? Nesse artigo ensinarei como criar um anti-SPAM por confirmação de mensagens, igual ao usado por certo provedor no Brasil, além de umas técnicas muito interessantes que eles não tem. Morte ao SPAM!
Por: Patrick Brandao
[ Hits: 29872 ]
Conceito: 9.8   Linux conceitoLinux conceitoLinux conceitoLinux conceitoLinux conceito + quero dar nota ao artigo

Introdução

Por Patrick Brandão
http://www.patrick.eti.br
contato@patrick.eti.br

Aviso


Este artigo pode ser distribuído, publicado, impresso e copiado de todas as formas e meios possíveis, desde que se mantenha o nome, a página web e o e-mail do autor no cabeçalho, em local visível, abaixo do título e com a letra maior ou igual a usada no texto.

É segunda-feira, você chega no serviço, abre o cliente e e-mail, e de repente, chove mensagem: "Viagra", "Trabalhe em casa", "Você está sendo traído", "Livre-se das multas", etc...

Depois de implementar o SpamAssassin, a redução é drástica, mas não total, infelizmente você corre o risco de ter uma mensagem legítima excluída e o risco aumenta a medida que você abaixa o nível, tornando o SpamAssassin mais agressivo. Programá-lo para apenas marcar as mensagens como SPAM ajuda, mas você de qualquer maneira, vai perder tempo separando algo do lixo.

Então, qual a solução?

Os spammers, pessoas desprezíveis, usam sistemas de envio de mensagens em massa, a maioria, um simples arquivo de texto com uma lista de endereços e um script que passa linha por linha enviando uma cópia do SPAM para cada um. Os mais modernos, tem sistemas com dicionários e funções de detecção de endereço de e-mail válido, sugando páginas de sites de busca, verdadeiros ROBÔS. Os mais sofisticados usam softwares que balanceiam o SPAM entre servidores de relay aberto, de forma que nem bloqueando por IP resolverá.

O detalhe interessante é que quando os SPAM´s são enviados usando remetentes inexistentes, o e-mail tende a voltar para o remetente (inventado pelo maligno), que não usa uma caixa postal válida. O resultado disso é uma fila enorme de mensagens em busca de um fim. Um dos servidores de e-mail que gerencio, certa vez chegou a ter 136 mil mensagens no queue, sendo que havia apenas 900 caixas válidas.

Bloquear o endereço do remetente é perca de tempo. Por que?
Os spammers criam strings aleatórias para o usuário no campo "From:" do SPAM e um domínio válido, e usam servidores open-relay aleatórios também, por exemplo:

From: xyz@yahoo.com.br
To: vitima@dominio.com
Subject: compre viagra, baratinho!

Assim, você bloqueia o xyz@yahoo.com.br, para que os SPAM´s sejam bloqueados, mas o próximo SPAM logo atrás dele terá o cabeçalho:

From: abc123@yahoo.com.br
To: vitima@dominio.com
Subject: compre viagra, baratinho!

Então vamos pelo assunto!
Bloqueia tudo que tiver "viagra" no assunto, e o próximo e-mail será:

From: xyz@yahoo.com.br
To: vitima@dominio.com
Subject: compre V 1 4 G R 4!

Se você bloquear o domínio yahoo.com.br, vai ter problemas de verdade, pois e-mails legítimos serão afetados.

Conclusão do texto acima: spammers não recebem retornos por e-mail, apenas usuários legítimos, os sacanas não querem um reply de seu lixo, apenas que você leia o conteúdo ou visite o link indicado. Eles são malignos, conhecem bem os anti-spam's existentes e vivem criando e-mails capazes de burlar a avaliação dos mesmos.

Nesse artigo você vai aprender como implementar, personalizar e dar suporte a um servidor de e-mail com o anti-SPAM ASK, cujo funcionamento é igual e superior ao anti-SPAM UOL!

O objetivo é ter na caixa de entrada, apenas endereços de e-mail de pessoas legítimas, que pretendem receber retorno das mensagens enviadas.

Navegação
   1. Introdução
   2. Algoritmo e fluxograma
   3. Servidor de e-mail
   4. Download e instalação
   5. Ajuda e referências

Outros artigos deste autor

Leitura recomendada

Comentários
Comentário enviado por pcnmota em 07/07/2006 - 14:20h:

E ai Patrick, blza?

Cara isso é show, ainda mais se tratando de uma solução que neste caso foi implementada no slackware. o ASK é show mesmo.

Comentário enviado por Snails em 07/07/2006 - 16:31h:

Kra, dei uma lida legal nos sites do ASK.....muito bom mesmo..só meio complicadinho de entender...
Remexendo muuuito achei uma opção para os lunáticos presos em Windows...chama-se Afw(ASK for Windows), vo coloca o link no final do comentário...
Mas minha duvida é a respeito do ASK em geral, ele é um servidor de e-mail ou ele roda por cima do meu servidor real ????
Quero coloca issu num servidor, mas ele é Windows e tem um servidor de e-mail rodando...e não tenhu como troca.
Se souber isso, me fala aew kra q to precisando urgentemente dessa ferramenta rodando la..
Vlw kra e até mais ver...

Link do Afw: http://sourceforge.net/projects/afw/

Comentário enviado por patrickbrandao em 07/07/2006 - 16:56h:

O ASK é basicamente scripts em Python que intermedia a escrita da mensagem na caixa do servidor. Em vez de escrever na caixa de entrada do usuário no servidor, o MDA deve entregar ao ASK.

Para rodar em windows, seu servidor deve ter suporte a python, maildir ou mailbox. Talvez algumas alterações sejam necessárias no ASK.

Comentário enviado por fpio em 12/07/2006 - 10:38h:

Estou com uma dúvida.
Quando o e-mail chega no meu servidor após um tira-teima ele é incluído na White list ou essa deve ser configurada manualmente?

Valeu!


Comentário enviado por lucasbrescia em 17/07/2006 - 11:04h:

Como eu realizo esta configuração no sendmail já que o sendmail não utiliza o vpopmail e sim o procmail. a diferença para realizar a configuração é muito diferente?
Obrigado.

Comentário enviado por patrickbrandao em 17/07/2006 - 13:12h:

Olá Lucas,

basta enviar a mensagem no procmail para a linha de comando do ASK.


Comentário enviado por robsontex em 17/07/2006 - 15:00h:

Lucas,

Apenas completando a resposta do Patrick, basta você adicionar as linhas abaixo no seu .procmailrc

:0 fW
|/usr/bin/ask.py --procmail --home=/home/seulogin

Falow

Comentário enviado por lucasbrescia em 19/07/2006 - 10:17h:

Não irei mais utilizar o procmail, irei fazer este serviço usando o .forward ja estou configurando quase tudo, porem preciso saber se tenho que definir valor desta variavel rc_askdir = ${HOME}/.ask com o diretorio home do usuario pq o arquivo " .ask" esta sendo gravado no /root? isto é norma?

Comentário enviado por pbhost em 03/08/2006 - 13:54h:

Amigo se puder me ajudar agradeço, estou tendo problemas, após fazer conforme indicado por você quando mando um email para o contato volta a seguinte mensagem:

ERROR: No confirmation templates found! Exiting...
Attention:
/The system could not deliver your message due to a technical problem.
Information about the problem has been recorded locally for analysis.
/--- Problem Details ---
/Traceback (most recent call last):
File "/usr/share/ask/askfilter", line 60, in ?
config = askconfig.AskConfig(sys.argv)
File "/usr/share/ask/askconfig.py", line 96, in __init__
self.__read_config(self.rcfile)
File "/usr/share/ask/askconfig.py", line 237, in __read_config
sys.exit(self.RET_PROCMAIL_CONTINUE)
SystemExit: 0
/-----------------------


Comentário enviado por patrickbrandao em 03/08/2006 - 14:21h:

Verifique a configuração, ele não encontrou a pasta ou os arquivos de templates, usados para enviar a confirmação.

Comentário enviado por pbhost em 03/08/2006 - 14:42h:

Patrick,

Eu uso o vopopmail com mysql e as contas não fica no home no arquivo .askrc a variavel rc_askdir = ${HOME}/.ask fica dessa forma mesmo.

Comentário enviado por marceloboavista em 10/08/2006 - 15:20h:

Patrick,

Esse material está muito bom, mas na hora do teste na minha máquina está apresentando o seguinte :

O e-mail que eu mando é retornado com o erro
"contato@dominio.com.br
preline: fatal: unable to run /usr/share/ask/askfilter: access denied"

Uso:
qmail e o Vpopmail
Preline
.qmail

Todos os arquivos estão com permissão de leitura escrita e execução para todos os usuários


Se puder me ajudar agradeço!


Comentário enviado por rogerio.dega em 14/08/2006 - 14:11h:

Patrick,
(Ainda não é uma contribuição, assim que eu conseguir utilizar será)
estou utilizando (tentando) com sendmail e tenho o meu .forward assim
configurado: |/usr/bin/askfilter --loglevel=5 --logfile=var/log/ask.log --home=/home/teste
para o usuário teste e estou recebendo este erro:
----- The following addresses had permanent fatal errors -----
|/usr/bin/askfilter --loglevel=5 --logfile=var/log/ask.log --home=/home/teste
(reason: Service unavailable)
(expanded from: <teste@twa.com.br>)

----- Transcript of session follows -----
smrsh: "teste" not available for sendmail programs (stat failed)
554 5.0.0 Service unavailable

devo substituir o .forward pelo .procmailrc no diretório do usuário ?

Rogério.
obrigado pela atenção.
rogerio.degasperi@terra.com.br


Comentário enviado por lord_roxton em 15/08/2006 - 16:08h:

Como faço para aplicar o ASK em um domínio inteiro? Basta alterar o arquivo .qmail-default? Ou ele tem que ser configurado pra cada um usuário?



Comentário enviado por rogerio.dega em 29/08/2006 - 12:07h:

E aí Patrik,
o que eu faço com este erro que está acontecendo no utilização
do ASK ?
para o usuário teste e estou recebendo este erro:
----- The following addresses had permanent fatal errors -----
|/usr/bin/askfilter --loglevel=5 --logfile=var/log/ask.log --home=/home/teste
(reason: Service unavailable)
(expanded from: <teste@twa.com.br>)


Comentário enviado por fabgcruz em 02/09/2006 - 00:50h:

Será que a implementação usando o POSTFIX é tranquila?

Comentário enviado por adrielj em 12/09/2006 - 16:37h:

eae Patrick

gostaria de saber se tem como tirar esta mensagem que vai na confirmação do email

This email account is protected by:
Active Spam Killer (ASK) V2.5.3 - (C) 2001-2004 by Marco Paganini
For more information visit http://www.paganini.net/ask

--- Original Message Follows ---

Parabens pelo post.
Vlw

Comentário enviado por unimedvr em 22/09/2006 - 12:38h:

Estou com um pequeno problema, ele inclui o email na caixa postal sem eu responder o tira teima. depois quando eu respondo o tira teima ele manda mais uma copia do email.
Alguem entendeu e pode me ajudar??

Comentário enviado por c.rafael em 27/11/2006 - 09:36h:

Olá Patrick Brandao,

Estou implementando a estrutura do seu artigo, mas o problema é que descompactei o ASK e não tem dentro nenhum askfilter.

Estou usando o ask-2.5!!

O que pode estar errado? e onde que eu consigo o askfilter?

Agardeço quem puder me ajudar

Comentário enviado por patrickbrandao em 27/11/2006 - 09:46h:

O desenvolvedor mudou a estrutura do codigo e renomeou, usa assim:

Baixa esse arquivo e coloque os codigos na pasta /usr/share/ask
http://www.patrick.eti.br/downloads/ask.tgz

Se usa vpopmail, usa o script abaixo para adicionar ASK a uma conta:
http://www.patrick.eti.br/software/scripts/vaddaskuser

Comentário enviado por c.rafael em 27/11/2006 - 11:22h:

Olá Patrick Brandao,

Outra quetão!!!,

implementei tudo direitinho como no artigo. Porém consigo enviar email para o email correspondente e não estou recebendo nenhum email de confirmação ou qualquer outro email.

O que pode ser?

Comentário enviado por patrickbrandao em 27/11/2006 - 14:38h:

Bom, uma boa ideia e verificar logs, principalmente na pasta do dominio, se exitir arquivos iniciando com ASK, leia-os. Eles devem conter os erros encontrados, seguir os logs do qmail tb é uma boa ideia.

Comentário enviado por wellesximenes em 30/11/2006 - 13:15h:

Não Envia a confirmação pq o log segue abaixo

2006/11/30 01:49:15 [27488]: ----- ASK v2.5.3 Started -----
2006/11/30 01:49:15 [27488]: Message from: leo <leo@gpsa.ufc.br>
2006/11/30 01:49:15 [27488]: Message to: leo <leo@gpsa.ufc.br>
2006/11/30 01:49:15 [27488]: Message Subject: adsasad
2006/11/30 01:49:15 [27488]: is_confirmation_return(): Didn't find conf#MD5 tag on subject
2006/11/30 01:49:15 [27488]: is_remote_command(): Verifying the subject...
2006/11/30 01:49:15 [27488]: Not matched in the whitelist
2006/11/30 01:49:15 [27488]: Sender is not mailer-daemon
2006/11/30 01:49:15 [27488]: __get_auth_tokens(): No X-ASK-Auth SMTP header found
2006/11/30 01:49:15 [27488]: validate_auth_md5(): Cannot read authorization tokens. Authentication Failed.
2006/11/30 01:49:15 [27488]: Checking for remote commands
2006/11/30 01:49:15 [27488]: is_confirmation_return(): Didn't find conf#MD5 tag on subject
2006/11/30 01:49:15 [27488]: Message is not a confirmation return
2006/11/30 01:49:15 [27488]: Message comes from us but does not contain our key. Delivering to Junk
2006/11/30 01:49:15 [27488]: junk_mail(): Queueing Junk Message
2006/11/30 01:49:15 [27488]: queue_mail(): x_ask_info = (Junk) Message from self without the mailkey
2006/11/30 01:49:15 [27488]: queue_mail(): The MD5 checksum for /home/leo/.ask/tmp/tmp7Rc4y_.27488.msg is b00504597576f8d7e517da911d8a664c
2006/11/30 01:49:15 [27488]: queue_mail(): Mailbox format. Queue file = /home/leo/.ask/queue/ask.msg.b00504597576f8d7e517da911d8a664c
2006/11/30 01:49:15 [27488]: generate_auth(): Authentication = 1164858555-74b439bc2cf98498b305a2851945ff23
2006/11/30 01:49:15 [27488]: deliver_mail_file: Delivering mail from /home/leo/.ask/tmp/tmp7Rc4y_.27488.msg to mailbox /home/leo/.ask/queue/ask.msg.b00504597576f8d7e517da911d8a664c
2006/11/30 01:49:15 [27488]: deliver_mail_file: Mbox format
2006/11/30 01:49:15 [27488]: deliver_mail_file: Message delivered to /home/leo/.ask/queue/ask.msg.b00504597576f8d7e517da911d8a664c


Comentário enviado por doubt_linux em 08/12/2006 - 10:40h:

Uma duvida, tenho o ask instalado e rodando normalmente, mas eu gostaria de modificar quando ele envia a mensagem de confirmação ele manda com o seguinte assunto:
Please confirm (uma numeração)

Gostaria de modificar este topico, como seria?

Comentário enviado por patrickbrandao em 11/12/2006 - 16:48h:

Essa mensagem faz parte do template, para alterar, veja onde esta os arquivos de template no seu .askrc.

Algumas alterações exigem edição do arquivo askmessage.py


Comentário enviado por jukabala em 05/01/2007 - 13:45h:

Patrick,,, vc teria os procedimentos para instalar no slackware 10.1 com sendmail uso rc.ipforward

obrigado,

Juarez

Comentário enviado por unimedvr em 29/01/2007 - 13:53h:

estou usando o ASK com QMAIL, funciona perfeitamente! o problema é com os usuários que contém . exemplo: qmail-vinicius.almeida qmail-thiago.senna, estes 2 usuários não funcionam. agora quando tem somente o primeiro nome funciona, alguém sobe o que pode ser?

Comentário enviado por unimedvr em 30/01/2007 - 10:14h:

consegui fazer funcionar, se vcs tb passarem por isso é só colocar ":" no lugar do "."
Exemplo: .qmail-vinicius.almeida, vai ficar .qmail-vinicius:almeida
valeu !

Comentário enviado por JØK3® em 17/08/2007 - 09:05h:

kra, na minha fila de e-mails no queue/mess, tem varios e-mails destinados a usuarios que eu ja exclui da lista.
Como faço para bloquear estas mensagens destinadas a eles?
Vlw!

Comentário enviado por anderssom em 10/09/2007 - 12:26h:

Prezado... Instalei o ask em um servidor slackware 10 com Postfix e está funcionando legal, mas estou tendo problemas com os usuários que possuem alias. Pois quando um e-mail é enviado para um destes alias todas as contas que pertencem a ele enviam a aconfirmação. O que pode ser feito para melhorar isso. Desde já agradeço.

Comentário enviado por jonathangil em 16/11/2007 - 14:36h:

usr/local/lib/python2.4/whrandom.py:38: DeprecationWarning: the whrandom module is deprecated; please use the random module
DeprecationWarning)
Attention:
/The system could not deliver your message due to a technical problem.
Information about the problem has been recorded locally for analysis.
/--- Problem Details ---
/Traceback (most recent call last):
File "/usr/local/bin/askfilter", line 66, in ?
rc = ask.filter(sys.stdin)
File "/usr/local/lib/ask/askmain.py", line 94, in filter
self.msg.read(filehandle)
File "/usr/local/lib/ask/askmessage.py", line 115, in read
self.fh = open(self.tmpfile, "w")
IOError: [Errno 13] Permission denied: '/usr/local/vpopmail/domains/logiminasgerais.com.br/.ask/tmp/tmpNqBf8B.34117.msg'


Alguém já viu esse erro, sabe qual a solução ?

Comentário enviado por maionesebr em 04/01/2008 - 19:20h:

Aqui uso Qmail em um Red Hat 7.3, eu tive que fazer algumas mudanças:
1- atualizar o python para a versão 2.2.1.
2- modificar a primeira linha do /usr/share/ask/askfilter para #!/usr/bin/python2.2
3- alterar as permissões na pasta de log (/var/log/ask) e na .ask das caixas postais.

Parabéns pelo artigo



Comentário enviado por luiscarlos em 28/01/2008 - 11:26h:

outro software excelente no combate ao spam eh o spamdyke, quem nao o utiliza eu o aconselho


Contribuir com comentário
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Contribuir com: [ Artigo | Conf | Dica | Pergunta | Script | Screenshot | Simulado | Wallpaper ]
Responsável pelo site: Fábio Berbert de Paula - Copyleft© 2002-2008 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux do Brasil! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.