Previna-se contra o spam com o Exim + greylistd, parte 2

Spam prevention with Exim and greylistd – Part 2 – management and stats
Autor original: Ryan Cartwright
Publicado originalmente no:
https://www.freesoftwaremagazine.com
Tradução: Roberto Bechtlufft

Na primeira parte desta dica, vimos como instalar e configurar o greylistd em dupla com o Exim para nos ajudar na batalha contra o diabólico spam. Nesta segunda parte, vou explicar como podemos obter algumas informações do greylistd – o que é bastante útil quando você precisa descobrir por que aquela mensagem “urgente” do CEO ainda não chegou!

Logs

O greylistd é o daemon chamado pelo Exim em conexões SMTP. A ACL acl_check_rcpt (se configurada para greylisting) faz com que o Exim registre no log as conexões SMTP que acabem parando na greylist. Você pode usar essas informações, somadas a estatísticas do próprio greylistd, para resolver problemas e acompanhar o progresso dos tercetos de remetentes e mensagens incluídos na greylist.

Uma típica entrada da greylist no log principal do Exim seria mais ou menos assim:

2008-09-11 06:25:59 H=(mx_relay.dominio.com) [117.4.26.192] F=<um.remetente@dominio.com> temporarily rejected RCPT <um.endereço@seudominio.com>: greylisted.

A mensagem nos informa a data (11 September 2008), a hora e o terceto do remetente da mensagem. Se quiser saber por que uma mensagem da greylist foi entregue em uma segunda tentativa, continue procurando no log do Exim por uma entrada marcada como “Completed”:

2008-09-11 06:37:51 1KgLbh-0007zz-Kh <=um.remetente@dominio.com H=(mx_relay.dominio.com) [212.2.3.143] P=smtp S=25153 id=F89EE039F5154749BCDAF05850A8993C0E8044B7@ASENDERPC
2008-09-11 06:37:51 1KgLbh-0007zz-Kh => um.endereço@seudominio.com R=verify_recipient T=remote_smtp H=17.10.189.25 [17.10.189.25]
2008-09-11 06:37:51 1KgLbh-0007zz-Kh Completed

Aqui temos a informação de que uma mensagem foi entregue por esse servidor, desse remetente para esse destinatário. Pode ser uma segunda mensagem que por acaso tenha o mesmo terceto da primeira, ou pode ser uma segunda tentativa daquela mesma mensagem. Como a primeira mensagem não foi entregue, o Exim não atribuiu uma ID a ela. A segunda tentativa foi bem-sucedida, e ganhou uma ID: 1KgLbh-0007zz-Kh. Não presuma automaticamente que as duas entradas se referem a uma mesma mensagem. O que se pode dizer a partir da segunda mensagem é que emails com esse terceto estão sendo entregues, e provavelmente figuram na whitelist.

O próprio greylistd pode confirmar isso, com o uso do comando greylist no terminal. É preciso fornecer o terceto do remetente na forma <endereço IP do host de origem> <endereço de email do remetente> <endereço de email do destinatário>:

meuservidor:/# greylist check 117.4.26.192 um.remetente@dominio.com um.endereço@seudominio.com

white

meuservidor:/#

A resposta white confirma que o terceto está na whitelist, e que futuras mensagens com esse terceto não sofrerão atraso. Mas cuidado se a resposta for grey, porque essa é a resposta padrão para tercetos que não constam de nenhuma lista. Isso acontece porque o check solicita ao greylistd o status do terceto – um terceto desconhecido estaria na greylist.

Estatísticas

O comando greylist também pode fornecer algumas estatísticas:

meuservidor:/# greylist stats

Statistics since Fri Aug 22 16:04:45 2008 (21 days and 2 hours ago)
——————————————————————-
18655 items, matching 48655 requests, are currently whitelisted
0 items, matching 0 requests, are currently blacklisted
2841 items, matching 2854 requests, are currently greylisted

Of 167535 items that were initially greylisted:
– 18655 ( 11.1%) became whitelisted
– 148880 ( 88.9%) expired from the greylist

Observe que o comando informa a média de itens na whitelist em relação às solicitações. Essa é mais uma indicação de que o greylistd está fazendo seu trabalho: os remetentes freqüentes terão várias solicitações, mas apenas um item na whitelist. Também é possível ver detalhes das três listas (white, grey e black):

meuservidor:/# greylist list –white

Greylist data:
==============
Last Seen Count Data
2008-09-12 09:45:15 2 117.4.26.192 um.remetente@dominio.com um.endereço@seudominio.com

A coluna Count indica o envio bem-sucedido de duas mensagens pelo terceto do remetente e a coluna Last Seen diz quando ocorreu a última delas. Essas listas podem ser bem longas, então use um pipe para uma melhor visualização (greylist list –grey | more) ou filtre os resultados com o grep greylist list –grey | grep dominio.com. O último comando vai exibir todas as entradas da greylist que contenham “dominio.com”.

Os resultados podem ser exibidos no formato usado pelo MRTG (Multi Router Traffic Grapher) e redirecionados para um arquivo, com o comando: greylist mrtg > ./nomedoarquivo.

Alterando manualmente as listas

Até agora, os comandos de greylisting não afetam as três listas que ele gerencia. Podem haver situações em que seja necessário mover um terceto de uma lista para outra ou adicionar um terceto à whitelist. Eu não recomendo a adição de um terceto à blacklist – prefiro deixar o greylistd fazer o trabalho dele. O greylistd pode lidar com isso. Nem preciso dizer que essas opções devem ser usadas com cautela (não saia adicionando as notificações do LinkedIn do seu CEO à blacklist sem que ele peça). O comando greylist add –white <terceto_do_remetente> adiciona o terceto à whitelist. Substitua –white por –grey ou –black , de acordo com o caso. E não se esqueça de que é preciso adicionar o terceto, e não apenas o endereço de email do remetente. Se for necessário, greylist delete <terceto_do_remetente> exclui o terceto da lista em que ele estiver.

Contém Glúten

No Reino Unido, os alimentos que contenham a palavra “diet” no nome (Diet Coke, por exemplo) recebem um aviso: “Só ajuda como parte de uma dieta controlada de calorias”. Da mesma maneira, as greylists só ajudam a diminuir a quantidade de spam se usadas em parceria com outras ferramentas, como verificações baseadas em regras bayesianas, uma ou mais blacklists de DNS e filtragem no lado do cliente. Devo dizer que as greylists foram uma das medidas mais eficientes que já implementei – sem falar que ainda ajudam a diminuir a carga no seu servidor.

Créditos a Ryan Cartwrighthttps://www.freesoftwaremagazine.com
Tradução por Roberto Bechtlufft <robertobech at gmail.com>

Postado por
Siga em:
Compartilhe
Deixe seu comentário
Assine nossa Newsletter
Assine nossa newsletter e receba nossa seleção de conteúdo sobre tecnologia, games, IA e internet em seu email.
Veja também
Publicações Relacionadas
Img de rastreio
Localize algo no site!