Envie um email de spam para uma pasta especial usando o postfix

8

Eu tenho um servidor de postfix executando o amavis e o SpamAssassin para ajudar a filtrar o spam. Mensagens que são detectadas como spam são assim quando entregues no Maildir do usuário:

From tom@tom-mint Fri Mar 15 01:46:20 2013
Return-Path: <tom@tom-mint>
X-Original-To: [email protected]
Delivered-To: [email protected]
X-Virus-Scanned: Debian amavisd-new at my-server.com
X-Spam-Flag: YES
X-Spam-Score: 6.463
X-Spam-Level: ******
X-Spam-Status: Yes, score=6.463 tagged_above=2 required=6.31
    tests=[DRUGS_ERECTILE=2.221, FH_FROMEML_NOTLD=0.18,
    FSL_HELO_NON_FQDN_1=0.001, HELO_NO_DOMAIN=0.001, RCVD_IN_PBL=3.558,
    RDNS_DYNAMIC=0.363, TO_NO_BRKTS_DYNIP=0.139] autolearn=no
Date: Fri, 15 Mar 2013 01:46:19 -0400
To: [email protected]
Subject: ***SPAM*** hello
User-Agent: Heirloom mailx 12.5 6/20/10
Content-Type: text/plain; charset=us-ascii
From: tom@tom-mint (Tom)
Status: RO

buy some viagra!

Observe especificamente o assunto, que é precedido por ***SPAM*** e o X-Spam-Flag: YES header.

Qual é a melhor maneira de configurar postfix para armazenar essas mensagens em uma pasta especial de lixo eletrônico?

Da minha pesquisa, parece que vou precisar usar uma ferramenta de entrega de mensagens diferente do postfix para fazer isso, mas não tenho certeza de qual abordagem é a melhor. Parece haver muita informação datada, e eu estou querendo saber se o postfix é capaz de colocar mensagens em uma pasta ou não.

Os diretórios de e-mail são todos do Maildir.

    
por Tom Marthenal 15.03.2013 / 06:56

3 respostas

7

A leitura do cursor da página man local do agente de entrega local do postfix (8) não mostra nenhuma sugestão desse tipo de capacidade - como esperado. Geralmente, esse tipo de tarefa é descarregada para o procmail (provavelmente por meio da diretiva mailbox_command), que pode manipular a tarefa descrita ao gerenciar a área de trabalho da sua pia da cozinha. A desvantagem do procmail é o formato de arquivo de configuração, a flexibilidade e os muitos exemplos que são facilmente encontrados. Se algo melhor do que o procmail surgiu recentemente, eu não sei.

Para o meu dinheiro, porém, mesmo que eu achasse o jeito de calçar a MTA fazendo o que você quer, eu não seguiria esse caminho, porque esse tipo de correspondência separando as coisas tem um jeito de fazer bala e nada de MTA saiba de: talvez a troca, quem sabe) possa fazer um bom trabalho ao também ser um manipulador de mensagens / agente de entrega flexível.

Esta é uma receita do procmail que deve fazer o que você quer com base no conteúdo do cabeçalho único (onde DEFAULT é o diretório de entrega, geralmente algo como $ HOME / Mail /):

:0
* ^X-Spam-Flag: YES
$DEFAULT/.Spam/
    
por 15.03.2013 / 08:42
4

Como o Alien Life Form disse, este é um trabalho para o procmail. Isso não é um substituto para o agente de entrega local do servidor de email; é um processo separado que será chamado após o MDA ter feito seu trabalho.

Cada usuário que quiser que o procmail classifique seus e-mails precisará criar um arquivo chamado .forward em seu diretório pessoal. Esse arquivo deve conter o seguinte:

"|exec /usr/local/bin/procmail || exit 75"

complete com o sinal " e todos.

O ALF já postou um arquivo básico .procmail que classificará o e-mail marcado com spam em uma pasta separada.

    
por 15.03.2013 / 08:53
4

Qual é o seu agente de entrega de mensagens (veja main.cf mailbox_command)? Se o MDA for dovecot, ele suportará o padrão Sieve IETF (rfc5228), que pode fazer muito mais do que o procmail sem expor possíveis falhas de segurança. NÃO aparafuse o procmail no postfix / dovecot, a peneira está totalmente integrada. Se você estiver usando Courier, o procmail é uma solução bem. No entanto, você encontrará os programas sieve / sievec do Pigeonhole para ser mais rápido e mais limpo.

O seguinte é um script de peneira simples para reconhecer seu cabeçalho de spam e colocar a mensagem no arquivo da Lixeira.

require "fileinto";

if header :comparator "i;ascii-casemap" :contains "Subject" "**SPAM**"  
{
  fileinto "Trash";
  stop;
}
    
por 13.05.2013 / 22:50