Qmail e chkuser - fila de mensagens limpa
Muitos spammers enviam seu lixo para emails nome + @dominio, sendo que o nome é baseado em dicionário (de amanda a walace!). Esses e-mails enchem a fila (queue) e devoram o processador. Aprenda como evitar isso com um patch para qmail: chkuser.
Introdução
A vida de quem mantém um servidor de e-mail é uma constante luta contra o SPAM.
Um dos problemas são as mensagens enviadas para destinatários inexistentes, que ocupam desnecessariamente tempo de CPU e enchem a fila de mensagens.
Normalmente quem detecta que o destinatário não existe é o MDA (agente de entrega - vpopmail). Antes disso, a mensagem já passou pelo MTA (agente de envio/recebimento), pelo anti-spam, pelo anti-vírus, pela fila de mensagens (queue). Todo esse processo se torna em vão quando o destinatário não existe, além de tudo, a mensagem acaba na maioria das vezes se tornando um "failure notice", uma mensagem de falha que será retornada ao remetente.
O problema está no fato de que os spammers não usam remetentes válidos também, eles não estão interessados na resposta da mensagem, mas que o usuário leia a propaganda e visite o link enviado.
Isso causa mais desperdício de CPU, a fila ficará cheia de mensagens de falhas que tentarão ser enviadas (mais consumo de consultas ao DNS e tentativas de conexões TCP).
Uma forma simples de evitar isso é fazer com que o MTA rejeite a mensagem no processo de negociação (rcpt to:), assim a mensagem nem mesmo consumirá banda, CPU, etc...
Como o qmail é modular, ele não é anexado ao MDA (você pode usar, vpopmail, entre outros), ou seja, não há como verificar no recebimento se o destinatário é valido.
O chkuser faz justamente isso, ele altera os fontes do qmail e faz com que ao ser emitido o comando rcpt to: do SMTP, o destinatário seja validado.
Vamos a parte prática, mas um detalhe importante: a ordem de instalação é:
1. netqmail
2. vpopmail
3. chkuser - netqmail
4. netqmail corrigido
Um dos problemas são as mensagens enviadas para destinatários inexistentes, que ocupam desnecessariamente tempo de CPU e enchem a fila de mensagens.
Normalmente quem detecta que o destinatário não existe é o MDA (agente de entrega - vpopmail). Antes disso, a mensagem já passou pelo MTA (agente de envio/recebimento), pelo anti-spam, pelo anti-vírus, pela fila de mensagens (queue). Todo esse processo se torna em vão quando o destinatário não existe, além de tudo, a mensagem acaba na maioria das vezes se tornando um "failure notice", uma mensagem de falha que será retornada ao remetente.
O problema está no fato de que os spammers não usam remetentes válidos também, eles não estão interessados na resposta da mensagem, mas que o usuário leia a propaganda e visite o link enviado.
Isso causa mais desperdício de CPU, a fila ficará cheia de mensagens de falhas que tentarão ser enviadas (mais consumo de consultas ao DNS e tentativas de conexões TCP).
Uma forma simples de evitar isso é fazer com que o MTA rejeite a mensagem no processo de negociação (rcpt to:), assim a mensagem nem mesmo consumirá banda, CPU, etc...
Como o qmail é modular, ele não é anexado ao MDA (você pode usar, vpopmail, entre outros), ou seja, não há como verificar no recebimento se o destinatário é valido.
O chkuser faz justamente isso, ele altera os fontes do qmail e faz com que ao ser emitido o comando rcpt to: do SMTP, o destinatário seja validado.
Vamos a parte prática, mas um detalhe importante: a ordem de instalação é:
1. netqmail
2. vpopmail
3. chkuser - netqmail
4. netqmail corrigido
Muito Legal o seu artigo, eu tentei implementar isso um vae mas não deu certo, pois eu possuo servidores diferentes.
O esquema que eu uso é quase igual ao outro artigo que você publicou "Gateway de e-mails com Qmail", eu uso 2 servidores mas o primeiro aos invés de passar anti-spam e anti-vírus, realiza apenas a autenticação dos usuários SMTP através do Vpopmail+Mysql. O servidor 1 é SMTP e MX ao mesmo tempo e o segundo é anti-spam, anti-vírus e Vpopmail (Maildir).
Tem como utilizar o chkuser neste caso, com o MX em um server e o vpopmail em outro?
Desde já agradeço,
Sérgio Cioban Filho