Filtro de e-mail

Linux in Brazil

Documentação original
e de qualidade
em bom português

O texto abaixo foi publicado no BR-Linux antes de 2005, e está mantido aqui por razões históricas. Veja o material atualizado diariamente do BR-Linux em http://br-linux.org
Dúvidas comuns | Perguntar no Fórum | Notícias | Mais documentos | Contato
 
Destaques de hoje:
  • Resultado da promoção da camiseta "Nerdômetro" da Red Bug - brinde pra todo mundo!
  • Último dia para enviar sua foto e concorrer às camisetas "Nerdômetro"
  • Base de usuários brasileiros do Firefox dobra em 2008
  • Screenshots: mais um possível visual do próximo Ubuntu
  • Filtro de e-mail executável

    Augusto C. Campos (brain@matrix.com.br)

    Objetivo

    Apresentar o procmail-sanitizer, uma configuração para servidores de e-mail baseados no sendmail e no procmail capaz de renomear as extensões de TODOS os attachments executáveis (incluindo os menos óbvios, como .pif, .doc e .scr) que chegarem ao seu servidor, para que eles não possam ser rodados diretamente do programa cliente de e-mail dos usuários (baseados em Windows), e ainda tornar ilegíveis os arquivos reconhecidos como vírus ou cavalos de tróia.

    Atenção: Este artigo trata sobre filtragem de e-mail no servidor. Se você deseja filtrar e-mails no cliente (por exemplo, separar e-mails de listas de distribuição), leia o artigo sobre o tema.

    Alertas

    1 - Atenção: As instruções a seguir são uma adaptação local do texto disponível em ftp://ftp.rubyriver.com/pub/jhardin/antispam/procmail-security.html. Não assumimos nenhuma responsabilidade pelo que acontecer em seu sistema se você seguir estas instruções resumidas sem verificar antes o original; este resumo em português está aqui apenas como complemento!

    2 - Nota: A partir do momento em que você alterar o /etc/sendmail.cf ou o /etc/procmailrc, o seu serviço de e-mail passa a estar em risco. Se você não puder testar os procedimentos a seguir em uma máquina alternativa, seus usuários poderão estar expostos a interrupções de serviço. Lembre-se de fazer backup de todos os arquivos de configuração, e se possível altere a configuração do seu servidor apenas em horários de baixo tráfego.

    Requisitos

    Estas instruções assumem que você tem o sendmail e o procmail corretamente instalados e em funcionamento no seu servidor de e-mail; caso você ainda não os tenha, procure informações adicionais antes de prosseguir.

    O sendmail deve estar configurado para utilizar o procmail como agente de entrega local. Esta configuração é padrão em diversas distribuições de Linux, e no nosso caso se reflete na seguinte linha do arquivo /etc/sendmail.cf:

    Mlocal,		P=/usr/bin/procmail, F=lsDFMAw5:/|@qSPfhn9, S=10/30, R=20/40,
    		A=procmail -Y -a $h -d $u
    

    (note que a maneira de implementar esta linha pode variar; cito a nossa configuração apenas como exemplo para você saber o que procurar, mas não copie a linha acima sem saber o que está fazendo - caso ela não esteja implementada, refira-se à documentação do sendmail, do procmail e de sua distribuição de Linux).

    Além disso, você deve ter o perl instalado em seu sistema, e dispor também do utilitário mimeencode (integrante do pacote metamail). Ambos são padrão de grande parte das distribuições de Linux, e podem ser encontrados também para outras variantes de Unix.

    Instalação

    Nota: (repetindo!) A partir do momento em que você alterar o /etc/sendmail.cf ou o /etc/procmailrc, o seu serviço de e-mail passa a estar em risco. Se você não puder testar os procedimentos a seguir em uma máquina alternativa, seus usuários poderão estar expostos a interrupções de serviço. Lembre-se de fazer backup de todos os arquivos de configuração, e se possível altere a configuração do seu servidor apenas em horários de baixo tráfego.

    Este procedimento de instalação considera que o sendmail já está em operação, e utiliza o procmail como agente de entrega. Note que não será necessário reiniciar o servidor de e-mail (ou a máquina em si): a partir do momento em que você gravar o arquivo /etc/procmailrc, os filtros entram em operação.

    Passo 1 - Download e instalação dos filtros

    Obtenha uma cópia recente do procmail-sanitizer em ftp://ftp.rubyriver.com/pub/jhardin/antispam/procmail-security.html.

    Crie um diretório chamado /etc/procmail e copie para ele o procmail-sanitizer.tar.gz; vá para este diretório, e descompacte o arquivo (tar zxvf procmail-sanitizer.tar.gz). Exemplo:

      mkdir /etc/procmail
      cp /home/fulano/procmail-sanitizer.tar.gz /etc/procmail
      cd /etc/procmail
      tar zxvf procmail-sanitizer.tar.gz
    

    Na versão que eu instalei, são extraídos na descompactação os seguintes arquivos (que devem residir em /etc/procmail):

      html-trap.procmail
      poisoned-files
      procmail-security.html
      procmail-on-gateway.txt
    

    sendo que apenas os dois primeiros são relevantes para a configuração. Altere o poisoned-files se desejar incluir ou excluir determinadas extensões ou nomes de arquivos da lista de vírus. Aproveite para criar o arquivo /etc/procmail/to_sender.txt, contendo o texto da mensagem que será enviada ao remetente dos arquivos identificados como possíveis vírus.

    Passo 2 - Configuração do procmail

    Crie um arquivo /etc/procmailrc contendo as seguintes linhas:

    # inicializacao
    DROPPRIVS=YES
    LOGFILE=/tmp/procmail.log
    PATH="/usr/bin:$PATH"
    SHELL=/bin/sh
    
    

    # arquivo contendo descricoes de NOMES de virus conhecidos POISONED_EXECUTABLES=/etc/procmail/poisoned-files

    # usuario local que deve receber AVISO de virus SECURITY_NOTIFY="suporte"

    # usuario local que deve receber COPIA de virus SECURITY_NOTIFY_VERBOSE="root"

    # nome do arquivo para enviar ao remetente - nao esqueca # de cria-lo SECURITY_NOTIFY_SENDER="/etc/procmail/to_sender.txt"

    SECURITY_QUARANTINE_OPTIONAL=foo POISONED_SCORE=25 SCORE_HISTORY=/var/log/macro-scanner-scores SECRET="mudemudemude"

    # roda o filtro INCLUDERC=/etc/procmail/html-trap.procmail

    # limpa variaveis antes de terminar POISONED_EXECUTABLES= SECURITY_NOTIFY= SECURITY_NOTIFY_VERBOSE= SECURITY_NOTIFY_SENDER= SECURITY_QUARANTINE= SECRET=

    Se precisar de maiores informações sobre este arquivo, visite ftp://ftp.rubyriver.com/pub/jhardin/antispam/procmail-security.html.

    As regras acima irão renomear as extensões de TODOS os attachments executáveis (incluindo os menos óbvios, como .pif, .doc e .scr) que chegarem ao seu servidor, para que eles não possam ser rodados diretamente do programa cliente de e-mail, e irão tornar ilegíveis os arquivos reconhecidos como vírus ou cavalos de tróia (conforme definições no arquivo /etc/procmail/poisoned-files). Você pode alterar a abrangência do filtro (liberar, por exemplo, os attachs em formato .doc); as instruções estão em ftp://ftp.rubyriver.com/pub/jhardin/antispam/procmail-security.html. Se necessário, consulte a documentação do procmail - você verá que é possível fazer regras flexíveis de acordo com o remetente, o subject, o destinatário, o horário, e até combinações destas (e outras) condições.

    Boa sorte!