Oi pessoal, tou desenvolvendo um programinha prá dar uma mãozinha ao rblsmtpd (aquele programa que os MTAs usam pra consultar e-mails nas listas negras RBL). Na verdade, há muito tempo eu já tinha feito ele prá funcionar junto com o qmail-scanner, mas o problema é que daí, por mais que ele marcava o e-mail como 'spam', o servidor tinha que passar antivírus, isso e aquilo, o que gerava um desperdício bem grande de consumo do servidor.
Mesmo assim, no sistema que era, ele pegava pelo menos 25% dos e-mails que passavam batido por todos os outros testes (RBL convencional, anti-spam do spamassassin e anti-vírus). Ou seja, era uma quantidade considerável de e-mails bagunçados que passavam 'batido' pelo resto do sistema que 'meu programinha' pegava.
Daí agora, para tentar poupar de passar antivirus e antispam nesses emails-lixo todos (25% mais o que os métodos detectavam antes), eu passei esse script para o ato da conexão SMTP. Se pelo script ele pegar que é spam, ele já corta na hora sem ter que processar tudo. Senão, ele vai verificar na lista negra, no antispam e antivírus. A minha espectativa é de que melhore bastante o sistema.
A única coisa que aumentou no novo modo de operação é uma consulta de dns reverso a mais para o IP de quem tenta conectar. E já que falei da consulta reversa, é através disso que ele define se é fonte de spam ou não. Ele olha algumas características do DNS reverso do servidor. Dependendo do que contém ele força aceitar o e-mail (se tiver mail.algumacoisa.com, por exemplo), mas se tiver características de adsl ou dinâmico (com alguns números, ou com a palavra .dsl.), ele trava no ato, e retornando a mensagem (fácil de personalizar) de que o e-mail foi negado (isso ajuda até a ajustar algum possível exagero nas heurísticas de determinação de spam).
Todas as palavras-chave são também personalizáveis, seguindo mais ou menos (com excessão do '.') as regras do regexp, e uma interface relativamente simples para mecher (para quem tem alguma afinidade com linux).
Bem, eu tenho desenvolvido isso pro qmail, usando o rblsmtpd. Talvez se tem algum outro MTA que usa o rblsmtpd, seja fácil para usar isso.
Então, se tem alguém aí que achou muito interessante, quer testar, ajudar a desenvolver e aperfeiçoar o sistema, ou mesmo discutir e criticar, estou abrindo aqui o espaço prá a gente discutir.
Se alguém interessar, eu passo o código dos scriptzinhos. Tenho usado ele em ambiente de produção sem problemas há mais de um ano (no modo qmail-scanner -- agora eu só mudei alguns detalhes para passar ele para o rblsmtpd e não espero ter problemas).
Algo interessante de ressaltar aqui, é que ele não vai dar conflito com aquele método 'pop-before-smtp', onde usuários têm o ip 'liberado' para mandar qualquer e-mail do provedor (ou aqueles IPs fixos cadastrados como 'open-relay'). Se o ip estiver na 'lista branca' do servidor de e-mails (a variável RELAYCLIENT estiver definida), ele assume sem fazer nenhum teste desnecessário, que a fonte tem permissão de mandar o e-mail.
Agradeço a atenção de todos! :-)