Retirar os cabeçalhos do SpamAssassin antes do processamento

3

Eu tenho um servidor rodando o cPanel / WHM com o exim e o SpamAssassin. Tenho notado um problema em que os e-mails que entram com cabeçalhos de spamassassin falsificados ignoram alguns dos filtros. Eu quero remover todos os cabeçalhos do SpamAssassin antes que eles passem pelo spamassassin e depois filtrar para as pastas da caixa de entrada / spam.

Pesquisando na Internet, a única instância semelhante que encontrei foi de 2004 . No entanto, a configuração do exim por esse usuário e por mim é muito diferente. Não tenho certeza de como aplicá-lo. Eu posso executar o formato contra um arquivo contendo a mensagem para remover os cabeçalhos, mas não sei como fazer o exim fazer isso.

Apenas para fornecer um exemplo, uma mensagem virá com cabeçalhos como este:

X-Spam-Status: No, score=1.3
X-Spam-Score: 13
X-Spam-Bar: +
X-Ham-Report: Spam detection software, running on the system "serv02.example.com", has
        identified this incoming email as possible spam.  The original message *snip*
X-Spam-Flag: NO

Meu SpamAssassin adicionará esses cabeçalhos à mensagem:

X-Spam-Status: Yes, score=6.8
X-Spam-Score: 68
X-Spam-Bar: ++++++
X-Spam-Report: Spam detection software, running on the system "serv02.example.com", has
        identified this incoming email as possible spam.  The original message *snip*
X-Spam-Flag: YES

Mas como as regras do exim vfilter lêem os primeiros cabeçalhos de X-Spam, o e-mail é enviado para a caixa de entrada do usuário, e não na pasta de spam.

    
por ytjohn 15.01.2012 / 06:49

3 respostas

1

O Exim para cPanel usa vfilters armazenados em / etc / vfilters e conta com o cabeçalho X-Spam-Bar. Outros sistemas podem usar o X-Spam-Flag-Status ou o Score para determinar se deve salvar a mensagem na caixa de entrada, uma pasta de spam ou excluí-la. Infelizmente, o vfilter usará a primeira correspondência, que é o ponto crucial deste problema.

Solução desatualizada encontrada link

Adicionar ao ACL em algum lugar    advertir     spam = exiscan: true     set acl_m0 = ($ spam_bar) $ spam_score     defina acl_m1 = $ spam_report

Isso definirá as variáveis da ACL adequadamente para o seguinte processamento no filtro do sistema:

Adicionar ao filtro do sistema:

if first_delivery then
  # ...

  headers remove X-Spam-Score:X-Spam-Report:X-Spam-Checker-Version:X-Spam-Status:X-Spam-Level
  if $acl_m2 is not ""dd then
    headers add "X-Spam-Score: $acl_m0"
    headers add "X-Spam-Report: $acl_m1"
  endif
endif

No cPanel, o filtro do sistema é / etc / cpanel_exim_system_filter e as variáveis acl_mX são diferentes, então vamos descobrir isso. Adicione isto ao final de cpanel_exim_filters

# work out our acl variables!
if first_delivery then
    headers add "X-acl-m0: $acl_m0"
    headers add "X-acl-m1: $acl_m1"
    headers add "X-acl-m2: $acl_m2"
    headers add "X-acl-m3: $acl_m3"
    headers add "X-acl-m4: $acl_m4"
    headers add "X-acl-m5: $acl_m5"
    headers add "X-acl-m6: $acl_m6"
    headers add "X-acl-m7: $acl_m7"
end

--- fez isso e conseguiu:     X-acl-m1: user1     X-acl-m2: 1     X-acl-m3:     X-acl-m4:     X-acl-m5:     X-acl-m6:     X-acl-m7:

Então eu acho a seção do exim.conf que adiciona cabeçalhos e vê todas as variáveis $ spam. Eu me pergunto se eles carregam? Vamos descobrir.

headers add "X-Test-Spam-Subject: ***SPAM*** $h_subject"
headers add "X-Test-Spam-Score:$spam_score"
headers add "X-Test-Spam-Score-Int: $spam_score_int"
headers add "X-Test-Spam-Bar: $spam_bar"
headers add "X-Test-Spam-Report: $spam_report"

Então, $ spam_score_int é transportado junto com $ h_subject, mas não spam_bar, o que é vital

X-Test-Spam-Subject: ***SPAM*** test
X-Test-Spam-Status: 
X-Test-Spam-Score: 33
X-Test-Spam-Bar:
X-Test-Spam-Report:

Mas .. eu percebi que cabeçalhos carregam, o que pode funcionar

headers add "X-Test-Spam-Bar: $h_X-Spam-Bar"

resulta em:

X-Test-Spam-Bar: +
+++

Assim, os cabeçalhos $ h têm os cabeçalhos recebidos e os cabeçalhos adicionados.

Solução?

Adicione filtros de spam personalizados no exim.conf e troque-os em cpanel_exim_filter

log_message = "SpamAssassin as ${acl_m1} detected message as spam ($spam_score)"
add_header = X-989Spam-Subject: ***SPAM*** $h_subject
add_header = X-989Spam-Status: Yes, score=$spam_score
add_header = X-989Spam-Score: $spam_score_int
add_header = X-989Spam-Bar: $spam_bar
add_header = X-Spam-Report: $spam_report
add_header = X-989Spam-Flag: YES

add_header = X-989Spam-Status: No, score=$spam_score
add_header = X-989Spam-Score: $spam_score_int
add_header = X-989Spam-Bar: $spam_bar
add_header = X-Ham-Report: $spam_report
add_header = X-989Spam-Flag: NO
log_message = "SpamAssassin as ${acl_m1} detected message as NOT spam ($spam_score)"

Ok, agora para tornar isso mais persistente. Primeiro, copie seu filtro cpanel_exim_system:

cp /etc/cpanel_exim_system_filter /etc/custom_exim_system_filter

Faça login no WHM Main > > Configuração de serviços > > Exim Configuration Editor e clique em Advanced Editor

Desloque-se para baixo e altere a secção do cabeçalho de spam para se parecer abaixo. Observe que você está apenas alterando os cabeçalhos X-Spam para os cabeçalhos X-989Spam (obviamente, você pode usar qualquer nome personalizado que desejar, desde que os filtros personalizados do sistema exim correspondam. Como o arquivo de configuração pode mudar com o tempo, Certifique-se de modificar apenas as linhas add_header.

add_header = X-989Spam-Subject: ***SPAM*** $h_subject
add_header = X-989Spam-Status: Yes, score=$spam_score
add_header = X-989Spam-Score: $spam_score_int
add_header = X-989Spam-Bar: $spam_bar
add_header = X-Spam-Report: $spam_report
add_header = X-989Spam-Flag: YES

- e -

add_header = X-989Spam-Status: No, score=$spam_score
add_header = X-989Spam-Score: $spam_score_int
add_header = X-989Spam-Bar: $spam_bar
add_header = X-Ham-Report: $spam_report
add_header = X-989Spam-Flag: NO

Salve sua configuração e aguarde a atualização do WHM.

Volte para Main > > Configuração de serviços > > Editor de configuração do Exim > > Filtros

Altere o arquivo de filtro do sistema para apontar para / etc / custom_exim_system_filter

    
por 27.01.2012 / 22:38
1

Confira se as opções do arquivo de configuração do SpamAssassins remove_header ou clear_headers configuração faça o que quiser.

    
por 15.01.2012 / 22:22
0

A resposta aceita pode ter sido a melhor que você poderia fazer em 2012, ou com as versões exim geralmente disponíveis em 2012, mas atualmente o exim tem uma diretiva remove_header que pode ser usada em ACLs. Foi adicionado com a versão 4.82 :

  1. New ACL modifier "remove_header" can remove headers before message gets handled by routers/transports.
    
por 05.08.2016 / 12:22