Configurare un filtro DMARC in Spamassassin

19 giugno 2024 by Roberto Puzzanghera 0 commenti

DMARC (Domain-based Message Authentication, Reporting, and Conformance) è un metodo standard per l'autenticazione delle email, che aiuta gli amministratori della posta a impedire che hacker e altri malintenzionati eseguano lo spoofing dell'organizzazione e del dominio Lo spoofing è un tipo di attacco che falsifica l'indirizzo nell'intestazione Da: di un messaggio email. Un messaggio contraffatto mediante lo spoofing sembra provenire dall'organizzazione o dal dominio la cui identità è stata rubata.

DMARC ti permette anche di richiedere rapporti dai server email che ricevono i messaggi dalla tua organizzazione o dal tuo dominio. I rapporti contengono informazioni utili per identificare possibili problemi di autenticazione e attività dannose nei messaggi inviati dal tuo dominio.

Changelog

  • June 19, 2024
    - DKIM_VALID_AU changed to DKIM_VALID. I got some rejections of legit domains such as dmarc.yahoo.com
  • Dec 30, 2023
    - now DMARC_REJECT is not hit if SPF_HELO_PASS is true

Configurazione

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 || SPF_PASS || SPF_HELO_PASS) && __DMARC_POLICY_REJECT
score DMARC_REJECT 5
meta DMARC_QUAR   !(DKIM_VALID || SPF_PASS || SPF_HELO_PASS) && __DMARC_POLICY_QUAR
score DMARC_QUAR 2.5
meta DMARC_NONE   !(DKIM_VALID || SPF_PASS || SPF_HELO_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 +5 nello spam score, DMARC quarantine (p=quarantine) un +2.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

Ultimi commenti
Articoli recenti

RSS feeds