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!
Vá até a pasta do domínio intranet.br, caso não saiba onde é, digite:
# /home/vpopmail/bin/vdominfo intranet.br -d
Como vamos trabalhar com o usuário "contato" do domínio "intranet.br", na pasta do domínio crie o arquivo:
.qmail-contato
Esse arquivo receberá as mensagens do qmail, que serão processadas pelos comandos contidos nesse arquivo. Para que a mensagem seja simplesmente entregue, o seguinte conteúdo basta:
--loglevel: define o nível de sensibilidade do log, de 1 a 10;
--logfile: arquivo onde os eventos serão registrados, é necessário que o usuário que executa a entrega (normalmente, vpopmail uid 89) tenha permissão de escrita;
--home: diretório do usuário, para descobrir, digite:
As mensagens esperando por confirmação do remetente permanecerão no diretório "queue", arquivos temporários serão trabalhados em "tmp", remetentes conhecidos deverão estar cadastrados em "whitelist.txt" e remetentes bloqueados em "ignorelist.txt".
O mais importante aqui é que o usuário (uid) responsável pela entrega (vpopmail) seja capaz de escrever nesses diretórios.
O arquivo de configuração. Quando definimos "--home=/home/vpopmail/domains/intranet.br/contato" no comando askfilter, fizemos com que o ASK procure nessa pasta o arquivo .askrc, esse arquivo contém as configurações do ASK específicas para a conta em que vamos usá-lo. Crie o arquivo ".askrc" no diretório especificado e no conteúdo coloque:
Define o nome do responsável pela conta, essa informação é usada no campo "From:" do e-mail de tira-teima, portanto, coloque um nome assimilativo, a maioria dos clientes de e-mails coloca o nome do campo "From" no catálogo de endereços quando uma mensagem é respondida.
Define o diretório onde as mensagens serão gravadas para que os softwares servidores (POP3, IMAP) possam entregá-las ao usuário. A presença do barra ("/") no final define o tipo de entrega como Maildir. Caso fosse em mailbox, defina o caminho para o arquivo, sem o barra no final.
* rc_mailkey = ContatoImediatoSecreto
Esse recurso é interessante: define a frase ou palavra secreta. Caso este segredo esteja presente no corpo da mensagem, ela é considerada válida será entregue diretamente, sem tira-teima. Procure colocar algo não muito óbvio, como seu nome! O sobrenome é uma boa idéia, haja visto que apenas seus conhecidos sabem.
* rc_md5_key = mamamiaASK
Define a palavra ou frase usada para gerar o código MD5. Esse código é enviado no assunto da mensagem de tira-teima.
* rc_remote_cmd_enable = on
Habilita/desabilita comandos remotos.
* rc_remote_cmd_htmlmail = off
Habilita/desabilita comandos remotos em mensagens com formato html
Diretório onde as sub-pastas (tmp/, queue/, templates/) foram instalados.
rc_msgdir = %(rc_askdir)s/queue
Diretório onde as mensagens aguardarão por confirmação.
rc_tmpdir = %(rc_askdir)s/tmp
Diretório para manipulação de arquivos temporários.
rc_confirm_dirs = %(rc_askdir)s/templates
Diretório onde estão os templates (modelos) para envio do tira-teima, esses templates pode ser personalizados, assim você coloca aqui a mensagem que deseja enviar para o remetente avaliado.
* rc_whitelist_on_mailkey = true
Se definido como "true", adiciona automaticamente na lista branca (whitelist.txt) o remetente que informou a frase/palavra secreta no conteúdo da mensagem. É necessário que o usuário responsável pela entrega (vpopmail) consiga escrever nesse arquivo.
* rc_confirm_langs = ptbr
Linguagem usada na mensagem de tira-teima, esse valor define os arquivos em templates/ que serão usados.
Define os arquivos de lista branca, quando um remetente retorna o tira-teima, o endereço de e-mail dele é adicionado no primeiro arquivo definido. Assim, o usuário responsável pela entrega (vpopmail) deve ter privilégios de escrita nesse arquivo. Use o segundo parâmetro (opcional) para definir uma lista global, ou criar grupos de listas: use a imaginação!
MUITO IMPORTANTE. Define o comando a ser executado para enviar a mensagem de tira-teima. No caso do qmail, /usr/sbin/sendmail deve ser um link simbólico para /var/qmail/bin/sendmail
Prontinho!
Envie uma mensagem para o usuário que está usando ASK e verifique o resultado. Caso erros ocorram, o ASK procura o primeiro diretório acima do diretório do usuário para escrever um arquivo ASK-XXXXX contendo os erros.
[2] 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...
[3] 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.
[5] 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.
[8] 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?
[9] 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
/-----------------------
[13] 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
[15] 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>)
[17] 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
[18] Comentário enviado por vinicius.almeida 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??
[21] 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.
[22] 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.
[24] 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)
[27] Comentário enviado por vinicius.almeida 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?
[28] Comentário enviado por vinicius.almeida 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 !
[29] 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!
[30] 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.
[31] 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'
[32] Comentário enviado por ricardoolonca 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.
[35] Comentário enviado por nepsck em 12/02/2010 - 11:21h
Bom dia!
Implatei o ask no postfix +courier esta funcioando 100%, estou com duvida somente em uma parte, como faço para que os usuarios do email tenham acesso para cadastrar ou deletar os contatos, na whitelist ou mesmo na black, ou mesmo ter acesso aos emails que estao no queue
[36] Comentário enviado por lpossamai em 28/03/2011 - 14:50h
Boa tarde !
utilizo postfix + smtpd
Fiz os procedimentos, quando mando um e-mail para a conta que ativei o ASK, me retorno o seguinte erro:
LEGENDA: lucas@exemplo.com.br - USUÁRIO QUE TEM O ASK ATIVADO
lucas2@exemplo.com.br - Usuário remetente
Your message to <lucas@exemplo.com.br> was automatically rejected:
Internal quota calculation error
Reporting-UA: mail; Dovecot Mail Delivery Agent
Final-Recipient: rfc822; lucas@exemplo.com.br
Original-Message-ID: <ba1feb3de789dccba1746b2d4c859f3c@exemplo.com.br>
Disposition: automatic-action/MDN-sent-automatically; deleted
Return-Path: <lucas2@exemplo.com.br>
Delivered-To: lucas@exemplo.com.br
Received: from localhost (localhost [127.0.0.1])
by mail.exemplo.com.br (Postfix) with ESMTP id 14F27171806A
for <lucas@exemplo.com.br>; Mon, 28 Mar 2011 14:46:10 -0300 (BRT)
X-Virus-Scanned: amavisd-new at exemplo.com.br
X-Spam-Flag: NO
X-Spam-Score: -187.195
X-Spam-Level:
X-Spam-Status: No, score=-187.195 required=6.2 tests=[ALL_TRUSTED=-100,
AWL=-0.870, DNS_FROM_OPENWHOIS=2.431, FH_DATE_PAST_20XX=3.384,
TVD_RCVD_IP=1.617, TVD_RCVD_IP4=3.344, TVD_SPACE_RATIO=2.899,
USER_IN_WHITELIST=-100] autolearn=no
Received: from mail.exemplo.com.br ([127.0.0.1])
by localhost (mail.exemplo.com.br [127.0.0.1]) (amavisd-new, port 10024)
with LMTP id 0UgVQFB8TeOk for <lucas@exemplo.com.br>;
Mon, 28 Mar 2011 14:46:08 -0300 (BRT)
Received: from 192.168.0.82 (localhost [127.0.0.1])
by mail.exemplo.com.br (Postfix) with ESMTP id C1B1F1718069
for <lucas@exemplo.com.br>; Mon, 28 Mar 2011 14:46:08 -0300 (BRT)
MIME-Version: 1.0
Date: Mon, 28 Mar 2011 14:46:08 -0300
From: lucas2@exemplo.com.br
To: <lucas@exemplo.com.br>
Subject: iiii
Message-ID: <ba1feb3de789dccba1746b2d4c859f3c@exemplo.com.br>
X-Sender: lucas2@exemplo.com.br
User-Agent: Roundcube Webmail/0.5.1