24 novembro, 2006

 

Usando activamente o Greylistd


O pacote greylistd da distribuição Debian é muito fácil de utilizar.
A instalação que fiz, estável, incluiu o Exim4 e posteriormente o greylistd.

Neste artigo foco as partes de configuração dos triplets, assumindo que o leitor já conhece os princípios gerais do greylisting.

O habitual é termos uma média de 10% de entradas grey (cinzentas) em relação às entradas white (brancas).
Ao dia de hoje, um conhecido servidor da internet tinha:
millis:~# greylist list --white | wc -l
4579
millis:~# greylist list --grey | wc -l
369
millis:~# greylist list --black | wc -l
6
A imagem em cima (gerada a partir do Munin) ilustra de forma sistemática a evolução destas entradas (pelo que a regra referida dos 10% é apenas uma estimativa aproximada do que acontece tipicamente a médio/longo prazo).
No seguinte exemplo vemos como se podem usar os comandos manuais de remoção de entradas cinzentas:
millis:~# greylist delete --grey '213.171.223.109' postmaster@localhost burlado@real_domain.xyz
error: Not found
millis:# greylist delete --grey "'213.171.223.109'" postmaster@localhost burlado@real_domain.xyz
Removed from greylist
Quando existem plicas nos endereços IPs, no caso de se usar uma shell bash (a shell default em Linux), tem que se evitar a substituição que a própria shell faz das plicas para esse argumento: logo a utilização de aspas torna-se necessária.

Pessoalmente a parte do greylistd para black-listed IPs não me convence: é demasiado onerosa. (Usar triplets para manualmente declarar um IP-source que temos a certeza que é um rato, ou um open-relay, ocupa demasiada memória física.) No entanto, o Exim4 possui mecanismos de procura linear.

Vejamos um exemplo de um rato regular que tenta colocar spam no meu MTA:

% host mail-kr.bigfoot.com
mail-kr.bigfoot.com. has address 211.115.216.228
mail-kr.bigfoot.com. has address 211.115.216.252
mail-kr.bigfoot.com. has address 211.115.216.222
mail-kr.bigfoot.com. has address 211.115.216.225

Corremos o Exim4 em modo debug da seguinte forma:

exim4 -d -bh 211.115.216.226

Se tivermos as regras habituais e um ficheiro em /etc/exim4/local_host_blacklist com o seguinte conteúdo

211.115.216.226

poderemos simular a entrega de spam, e o comando que corremos gerará o seguinte log:

check hosts = ${if exists{/etc/exim4/local_host_blacklist}{/etc/exim4/local_host_blacklist}{}}
host in "/etc/exim4/local_host_blacklist"? yes (matched "211.115.216.226" in /etc/exim4/local_host_blacklist)
deny: condition test succeeded
SMTP>> 550-sender IP address 211.115.216.226 is locally blacklisted here. If you think
550-sender IP address 211.115.216.226 is locally blacklisted here. If you think
SMTP>> 550 this is wrong, get in touch with postmaster
550 this is wrong, get in touch with postmaster

LOG: MAIN REJECT
H=mail-kr.bigfoot.com [211.115.216.226] F=xpto rejected RCPT guest@frog.prized: sender IP address 211.115.216.226 is locally blacklisted here. If you think this is wrong, get in touch with postmaster

Isto é trivial, embora exija a alteração manual do ficheiro referido, em relação aos triplets pretos do greylistd.
Os triplets são constituidos por 3 strings, na realidade, embora a primeira seja na realidade, por definição, o endereço IP de origem da mensagem (o SMTP-client) -- que pode conter outros caracteres delimitadores, como por exemplo a plica, e eventualmente descrito pelo CNAME.

% greylist list --grey | grep "'"

A lista de IPs linearizados acinzentados pode ser visualizada pelo comando em cima. Nem sempre os MTAs legítimos re-enviam as mensagens das suas filas em menos de 60 minutos; há um balanço cuidadoso entre a diminuição deste periodo (configurável no greylistd) e a resolução manual por white-lists: estes casos serão tipicamente assinalados com o valor 4 a 6, significa 4 a 6 tentativas de drop (neste caso, de servidores legítimos, espaçadas por periodos racionais).


Comments: Enviar um comentário



<< Home

This page is powered by Blogger. Isn't yours?