Di cosa si tratta
Domain-based Message Authentication, Reporting and Conformance, ovvero il meccanismo per identificare e prevenire l’email spoofing, per fare questo utilizza SPF e DKIM e permette ai destinatari l’invio di segnalazioni al fine di monitorare la protezione del dominio da mail fraudolente che hanno lo scopo di ingannare gli ignari destinatari.
Il DMARC è un record DNS di tipo TXT, si basa sull’ SPF e su DKIM
Per questo motivo, prima di tutto, è necessario implementare, utilizzando il pannello di gestione Hosting, nel nostro record DNS sia la firma DKIM sia il record SPF.
Come funziona
DMARC indica ai server di ricezione della posta che cosa fare quando arriva un messaggio che sembra provenire dalla tua organizzazione, ma che non supera i controlli di autenticazione o non soddisfa i requisiti di autenticazione nel record del criterio di DMARC. I messaggi non autenticati potrebbero aver rubato l’identità della tua organizzazione o provenire da server non autorizzati.
DMARC viene utilizzato sempre con questi due metodi o controlli di autenticazione delle email:
- SPF (Sender Policy Framework), che consente al proprietario del dominio di autorizzare gli indirizzi IP a cui è consentito inviare email per conto del dominio. I server di ricezione possono verificare che i messaggi che sembrano provenire da un dominio specifico siano inviati dai server autorizzati dal proprietario del dominio.
- DKIM (Domain Keys Identified Mail), che aggiunge una firma digitale a ogni messaggio inviato. I server di ricezione utilizzano la firma per verificare che i messaggi siano autentici e non siano stati falsificati o modificati durante il transito.

Allineamento:
DMARC autorizza o rifiuta un messaggio in base al livello di corrispondenza tra l’intestazione Da: e il dominio mittente rilevato dalla verifica del messaggio tramite SPF o DKIM. Questa operazione viene definita allineamento. Per questo motivo, prima di configurare DMARC per il tuo dominio, devi attivare SPF e DKIM.
Gestione dei messaggi che non superano l’autenticazione (criterio di ricezione)
Se un server di posta riceve dal tuo dominio un messaggio che non supera il controllo SPF o DKIM o entrambi, DMARC comunica al server come gestire il messaggio. Sono disponibili tre opzioni, definite tramite il criterio DMARC in uso:
- Se il criterio è impostato su none (nessuno), non viene eseguita alcuna azione sui messaggi, che saranno recapitati normalmente.
- Se il criterio è impostato su quarantine (quarantena), i messaggi vengono contrassegnati come spam e inviati alla cartella dello spam dei destinatari.
- Se il criterio è impostato su reject (rifiuta), i messaggi vengono rifiutati e non sono recapitati ai destinatari.
Configurazione manuale
Il DMARC si configura solo lato DNS, attraverso la generazione di un record TXT:
- Il nome del record dovrà essere _dmarc
- Il valore del record sarà generato a partire dalla tabella sottostante
Tag | Valore | Note |
---|---|---|
v= | DMARC1 | Valore obbligatorio, deve essere il primo tag del record DMARC, mentre gli altri tag non sono case sensitive, questo deve essere obbligatoriamente maiuscolo con il valore v=DMARC1. |
p= | Può assumere uno dei seguenti valori: none :Nessun avviso specifico sarà dato al server di posta di destinazione quarantine :Avvisa il server di posta di destinazione di trattare qualsiasi email che fallisce il test DKIM e/o SPF come sospetta ed esegue controlli aggiuntivi reject :Avvisa il server di posta di destinazione di rifiutare qualsiasi email che fallisce il test DKIM e/o SPF | Valore obbligatorio, deve essere il secondo tag del record DMARC. Definisce le regole con le quali i server di posta di destinazione tratteranno le email. |
sp= | Stessi valori di p= (reject, quarantine, none) | Valore opzionale, se il tag sp non è presente, il tag p coprirà il dominio principale e tutti i suoi sottodomini. Se il tag sp invece è presente indica le regole da applicare a tutti i sottodomini del dominio principale. In questo caso il dominio principale rimane sempre coperto dal tag p. |
adkim= | r (relaxed – default) oppure s (strict) | Valore opzionale, se il tag viene omesso il valore di default sarà adkim=r. Specifica la “modilità di allineamento” per la firma DKIM. |
aspf= | r (relaxed) oppure s (strict) | Valore opzionale, se il tag viene omesso il valore di default sarà aspf=r. Specifica la “modalità di allineamento” per il controllo SPF. |
pct= | Valore compreso tra 0 e 100 | Valore opzionale, definisce la percentuale di email alle quali le regole del DMARC sono applicate. Se il valore viene omesso il valore di default sarà pct=100, quindi tutte le email saranno sottoposte ai controlli DMARC. |
fo= | Può assumere uno dei seguenti valori: 0 : Genera il report al server di posta mittente se tutti i controlli falliscono. Se è utilizzata solo la DKIM come sistema di sicurezza ed il test DKIM fallisce, il report sarà inviato. Se è utilizzata solo l’SPF come sistema di sicurezza ed il test SPF fallisce, il report sarà inviato. Se sono utilizzati sia DKIM che SPF, e l’SPF fallisce ma il test DKIM passa il report non sarà inviato 1 : Genera il report al server di posta mittente se almeno 1 controllo fallisce. Se è utilizzata solo la DKIM come sistema di sicurezza ed il test DKIM fallisce, il report sarà inviato. Se è utilizzata solo l’SPF come sistema di sicurezza ed il test SPF fallisce, il report sarà inviato. Se sono utilizzati sia DKIM che SPF, e l’SPF fallisce ma il test DKIM passa il report sarà inviato d : Genera il report se il test DKIM fallisce s : Genera il report se il test SPF fallisce | Valore opzionale, se il valore viene omesso il valore di default sarà fo=0. Definisce le regole per quando deve essere generato il report DMARC. |
rf= | Può assumere uno dei seguenti valori: afrf : Il formato del messaggio per il report degli errori (Abuse Report Format) è definito dall’RFC 5965 iodef : Il formato del messaggio per il report degli errori (Incident Object Description Exchange Format) è definito dall’RFC 5070 | Valore opzionale, se il valore viene omesso il valore di default sarà rf=afrf. Definisce il formato del report DMARC. |
ri= | Definisce l’intervallo di tempo dei report in secondi | Valore opzionale, se il valore viene omesso il valore di default sarà ri=86400, cioè 1 giorno. Definisce l’intervallo di tempo in secondi tra l’invio di un report DMARC e l’altro. |
rua= | Definisce l’elenco delle email alle quali viene inviato il report aggregato | Valore opzionale, se il valore non è presente i report aggregati non saranno inviati. L’email deve avere il formato mailto:user@example.com |
ruf= | Definisce l’elenco delle email alle quali viene inviato il report forense | Valore opzionale, se il valore non è presente i report forensi non saranno inviati. L’email deve avere il formato mailto:user@example.com |
Esempio:
Nome record TXT: _dmarc
Valore: v=DMARC1; p=reject; sp=reject; adkim=r; aspf=r; pct=100; fo=1; rf=afrf; ri=86400; rua=mailto:indirizzo@tuodominio.tld; ruf=mailto:indirizzo@tuodominio.tld
Verifica
Dopo la configurazione possiamo verificare il DMARC utilizzando il tool MXtoolbox
Verifichiamo anche la deliverability della posta elettronica, verso un indirizzo del dominio con Mail Tester