Arquivos históricos do BR-Linux.org apresenta:

Linux in Brazil (Filtro de e-mail )

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!


O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.