Para o SpamAssassin 3.4.2, adicionei o conjunto de regras de configuração abaixo local.cf
com a intenção de fornecer uma pontuação de spam para testes DMARC com falha.
Os cabeçalhos DMARC e SPF Authentication-Results são criados por opendmarc
e o cabeçalho DKIM Authentication-Results por opendkim
.
A saída esperada é uma pontuação para todos os três resultados de cabeçalho adicionados ao cabeçalho X-Spam-Report.
A saída real é apenas para um domínio que tem p=reject
ou p=none
com a pontuação apropriada adicionada ao cabeçalho X-Spam-Report, mas p=quarantine
nada é adicionado ao cabeçalho X-Spam-Report, mesmo que os cabeçalhos DMARC, DKIM e SPF Authentication-Results foram adicionados conforme o esperado.
Adicionado a /etc/spamassassin/local.cf
:
ifplugin Mail::SpamAssassin::Plugin::AskDNS
askdns __DMARC_POLICY_NONE _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=none;/
askdns __DMARC_POLICY_QUAR _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=quarantine;/
askdns __DMARC_POLICY_REJECT _dmarc._AUTHORDOMAIN_ TXT /^v=DMARC1;.*\bp=reject;/
meta DMARC_REJECT !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_REJECT
score DMARC_REJECT 10
meta DMARC_QUAR !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_QUAR
score DMARC_QUAR 5
meta DMARC_NONE !(DKIM_VALID_AU || SPF_PASS) && __DMARC_POLICY_NONE
score DMARC_NONE 0.1
endif # Mail::SpamAssassin::Plugin::AskDNS
O que há de errado com a configuração?
A configuração a que você se refere foi copiada do blog Random Thoughts no DMARC/Spamassassin/Qmail . Esta postagem de blog oferece o AskDNS como uma terceira opção se você não puder usar o OpenDMARC por algum motivo. Como você já está usando o OpenDMARC, você pode usar diretamente seu
Authentication-Results
cabeçalho no SpamAssassin. Modificado de David Jones :Se você implementou o OpenDMARC para rejeitar no estágio de conexão as mensagens que falham nas verificações do DMARC com
p=reject
, seu SpamAssassin nunca verá nenhuma mensagem que caia na quarta categoria, mas aqui está, apenas para completar:Como os
Authentication-Results
cabeçalhos também podem ser forjados , eu não daria uma pontuação negativa alta apenas com base neles. Portanto, a regra mais útil aqui é oDMARC_FAIL
, disparando emp=quarantine
. Na minha opinião, isso também poderia dar uma pontuação maior do que5.0
neste exemplo, pois a decisão já é feita pelo domínio remetente.Se a configuração de exemplo acima não for adequada, aqui está uma opção adicional de configuração e pontuação: