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.

       

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