Postifx header_checks não está funcionando

1

Eu tenho a configuração main.cf:

header_checks = regexp:/etc/postfix/header_checks

E o /etc/postfix/header_checks :

/^Subject:.*viagra.*/i DISCARD
/^Subject:.*pills.*/i DISCARD
/^Subject:.*f\*ckbuddy.*/i DISCARD
/^Subject:.*f\*ckfriend.*/i DISCARD
/^Subject:.*f\@ck.*/i DISCARD

/^From:.*viagra.*/i DISCARD

Observe que adicionei o /i para diferenciar maiúsculas de minúsculas. Não tem certeza se isso permite isso?

Eu tentei enviar e-mails de um hotmail para meu servidor com pílulas no assunto, mas ainda sem sorte! Também há um retorno ao método do remetente em vez de DISCARD ?

    
por maxmitch 01.10.2016 / 18:29

4 respostas

2

Se postmap -q "<put test header here>" regexp:/etc/postfix/header_checks estiver retornando corretamente o DISCARD (ou a ação apropriada para a correspondência), mas o postfix não estiver realmente realizando a ação, provavelmente há um receive_override_options=no_header_body_checks em algum lugar em main.cf ou master.cf que está desativando as verificações de cabeçalho. No arquivo master.cf , seria uma opção -o em uma das entradas de configuração de serviço.

Existem 4 opções para receive_override_options :

  • no_unknown_recipient_checks Do not try to reject unknown recipients (SMTP server only). This is typically specified AFTER an external content filter.
  • no_address_mappings Disable canonical address mapping, virtual alias map expansion, address masquerading, and automatic BCC (blind carbon-copy) recipients. This is typically specified BEFORE an external content filter.
  • no_header_body_checks Disable header/body_checks. This is typically specified AFTER an external content filter.
  • no_milters Disable Milter (mail filter) applications. This is typically specified AFTER an external content filter.

As opções no_address_mappings normalmente estarão localizadas em main.cf , enquanto as outras opções, em master.cf

The "-o receive_override_options" overrides main.cf settings to avoid duplicating work that was already done before the content filter. These options are complementary to the options that are specified in main.cf

Fonte: Filtro de conteúdo pós-fila do postfix

    
por 02.01.2017 / 23:17
0
  • Os padrões regex: e pcre: não diferenciam maiúsculas de minúsculas por padrão. No entanto, o sinalizador i deve funcionar.
  • Você pode usar REJECT em vez de DISCARD para informar o remetente.
  • Você usou postmap /etc/postfix/header_checks e recarregou o postfix?
  • Você pode testar regexes on-line em muitos sites. O link permite as expressões regulares POSIX.
  • Se disponível, usar pcre regexes geralmente é mais rápido do que usar a implementação Posix com regexp: . Use header_checks = pcre:/etc/postfix/header_checks

  • O que os arquivos de log estão dizendo?

por 01.10.2016 / 19:39
0

Como @HZC diz que pode ser um problema -o receive_override_options . Eu tive o mesmo problema aqui: Meu problema e solucionou-o após a postagem postfix header_checks usando regexp a configuração apropriada . Meu caso foi um REJECT ao invés de DISCAR . Você usa o DISCARD no caso de você querer enganar o spammer, o spammer não receberá nenhuma notificação. Para obter mais informações sobre isso, acesse este link e veja a seção REJECTS ACTIONS .

Estrutura de DISCARD:

              DISCARD optional text...
              Claim successful delivery and silently discard the message.  Log
              the optional text if specified, otherwise log a generic message.
    
por 17.03.2017 / 21:08
0

No header_checks (5) página de manual , há este parágrafo que diz que por um tempo agora o padrão para todas as expressões regulares é visualizá-las como não diferenciando maiúsculas de minúsculas:

COMPATIBILITY
      With Postfix version 2.2 and earlier specify "postmap -fq" to query a table that contains case sensitive patterns. By default, regexp: and pcre: patterns are case insensitive.

Portanto, adicionar um sinalizador à sua expressão regular não resolveria seu problema.

Como outros já mencionaram, o primeiro passo é verificar se funciona com:

postmap -q "<string to test--i.e. Subject: Viagra>" /etc/postfix/header_checks.re

A saída será a ação da linha. ( DISCARD no seu caso)

Se isso funcionar, pode estar faltando a linha para incluir o cabeçalho ou uma linha que impeça a inclusão, como outras pessoas mencionaram.

header_checks = regexp:/etc/postfix/header_checks.re

Desde que você diz que tem essa linha lá, o último problema é demais.

Observe que tenho uma extensão .re . Eu não acho que isso importe, mas pode ser uma boa ideia ter algum tipo de extensão para saber o que o arquivo contém.

    
por 19.11.2018 / 03:48