Configurare un filtro DMARC in Spamassassin

2 settembre 2020 Roberto Puzzanghera0 commenti

E' possibile usare Spamassassin per applicare un filtro DMARC per mezzo del plugin AskDNS. E' sufficiente aggiungere quanto segue al proprio 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

In questo modo un DMARC reject (p=reject nel record DNS) causerà un punteggio aggiuntivo di +10 nello spam score, DMARC quarantine (p=quarantine) un +5 aggiuntivo mentre p=none determinerà un +0.1.

Ecco come potrebbe epoi essere impostato il proprio record DMARC nella zona bind:

_dmarc.yourdomain.tld. IN TXT "v=DMARC1;p=reject;sp=none;pct=100;rua=mailto:postmaster@yourdomain.tld"

Naturalmente ciò richiede che SPF e DKIM siano già settati e funzionanti come spiegato in precedenza.

Se si decide di impostare un analogo record DNS nella propria "DMZ view", è importante che si siano definite le proprie reti locali in spamassassin, ad esempio:

internal_networks 10.0.0/24

altrimenti i messaggi di sistema o anche alcuni messaggi generati da applicazioni web (per esempio) potrebbero essere rigettatio se non sono stati preventivamente firmati.

Aggiungi un commento