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.
- Grazie a Iulian per il suggerimento. Questo un link alla sua pagina
- Ulteriori soluzioni DMARC per
qmail
- MXtoolbox: per verificare il record DMARC
- RFC 4789 Domain-based Message Authentication, Reporting, and Conformance (DMARC)
- Spamassassin's SPF rules
- Spamassassin's DKIM rules
- MXtoolbox: DMARC report analyzer
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.