Configurare un filtro DMARC in Spamassassin

18 settembre 2019 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