Checagem de reverso no qmail

setembro 20, 2007 às 11:04 am | Publicado em Qmail, Spam | 1 Comentário

Aqui na empresa estávamos com problema sério com spams, depois de horas com configurações afinadas do spamassassin, qmailtrap, etc… Resolvi tomar uma atitude mais drástica, bloquear qualquer email vindo de um host que não possuía o reverso devidamente configurado, pesquisando na internet encontrei varias ferramentas que fazem isto juntamente com o qmail, mas pesquisando mais um pouco descobri que o próprio tcpserver faz isto facilmente, bastou adicionar os seguintes parâmetros ao mesmo:

-h: Verifica o dns do sender para ajudar a variável $TCPREMOTEHOST.

    -p: Paranoid. Após a verificação do parâmetro –h, ele verifica se o nome corresponde ao endereço ip do sender, ou seja, se não bater ele remove a variável $TCPREMOTEHOST .

      Antigamente a linha do meu tcpserver estava assim:

      /usr/local/bin/tcpserver -v -R -l “$LOCAL” -x /etc/tcp.smtp.cdb -c “$MAXSMTPD” \

      Após a mudança:

      /usr/local/bin/tcpserver -v -h -p -R -l “$LOCAL” -x /etc/tcp.smtp.cdb -c “$MAXSMTPD” \

      Agora vem o pulo do gato, no arquivo /etc/tcp.smpt vamos adicionar a seguinte linha que será a responsável por bloquear o e-mail do sender:

      allow,RBLSMTPD=”Reverse Dns not allowed!”

      Veja abaixo meu tcp.smtp:

      
      127.:allow,RELAYCLIENT=""
      
      :allow,RBLSMTPD="Reverse Dns Record denied!"
      
      

      * Não esqueça de parar o qmail (qmailctl stop), em seguinda (qmailctl cdb) e restartar (qmailctl start).

      Abaixo segue o exemplo do meu /service/qmail-smtpd/run

      
      #!/bin/sh
      QMAILQUEUE="/var/qmail/bin/qmail-scanner-queue.pl" ; export QMAILQUEUE
      QMAILDUID=`id -u vpopmail`
      NOFILESGID=`id -g vpopmail`
      MAXSMTPD=`cat /var/qmail/control/concurrencyincoming`
      LOCAL=`head -1 /var/qmail/control/me`
      if [ -z "$QMAILDUID" -o -z "$NOFILESGID" -o -z "$MAXSMTPD" -o -z "$LOCAL" ]; then
      echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
      echo /var/qmail/supervise/qmail-smtpd/run
      exit 1
      fi
      if [ ! -f /var/qmail/control/rcpthosts ]; then
      echo "No /var/qmail/control/rcpthosts!"
      echo "Refusing to start SMTP listener because it'll create an open relay"
      exit 1
      fi
      exec /usr/local/bin/softlimit -m 40000000 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
      
      /usr/local/bin/tcpserver -v -h -p -R -l "$LOCAL" -x /etc/tcp.smtp.cdb -c "$MAXSMTPD" \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
      
      -u "$QMAILDUID" -g "$NOFILESGID" 0 smtp \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
      
      /usr/local/bin/rblsmtpd -rsbl-xbl.spamhaus.org -r combined.njabl.org -r cbl.abuseat.org \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ /var/qmail/bin/qmail-smtpd mail.dominio.com.br \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
      
      /var/vpopmail/bin/vchkpw /usr/bin/true 2>&1
      
      

      Muitos podem falar que isto ira bloquear muitos e-mails que não são spams, mas foi uma das únicas formas que encontrei de finalmente dar cabo de muita porcaria que atravessava o antispam. Quanto ao e-mails negados o remédio é ir tentando convencer aos admins destes servidores a deixarem o dns funcionando legal.

       

      1 Comentário »

      RSS feed for comments on this post. TrackBack URI

      1. Utilizei esta formula em um servidor de e-mail e notei que alguns bloqueios efetuados por esta configuração estavam sendo incorretos. Pesqusei um pouco a respeito e isto provavelmente é um comportamento do proprio tcpserver. Encontrei um codigo bastante simples chamado rhost-check disponivel para download em http://www.zentus.com/rhost-check.html . Basta seguir as instruçoes e configura-lo no seu /service/qmail-smtpd/run. Deve-se manter os argumentos -v -h -p -R -l que alterados neste artigo. Os testes para saber se os ips bloqueados realmente estao com reverso incorretos podem ser feitos no endereço http://www.terra.com.br/postmaster . Outra dica para servidores muito ocupados é criar uma instalação do djbdns na propria maquina e configura-lo como cache workstation. Não esqueça de adicionar a linha nameserver 127.0.0.1 no seu /etc/resolv.conf (http://cr.yp.to/djbdns.html). Fica ai a dica para quem se interessar. Ate mais.


      Deixe um comentário

      Blog no WordPress.com.
      Entries e comentários feeds.