Manuel Roccon

ICT & Cyber Security Specialist

Come configurare SPF, DKIM e DMARC per la posta del tuo dominio

Che cos’è l’e-mail spoofing ?

L’ E-Mail spoofing è una tecnica di attacco informatico che consiste nella creazione di mail con indirizzo del mittente contraffatto. Viene comunemente usata per Email di spam e phishing al fine di ingannare il destinatario circa l’origine del messaggio.

Al contrario di quanto si possa pensare, è molto facile utilizzare questa tecnica d’attacco.

L’utilizzo corretto della sicurezza DNS assicura inoltre una deliverability molto più alta delle email.

Quali sono gli strumenti che abbiamo a disposizione per mettere in sicurezza la posta elettronica?

  • RDNS
  • SPF
  • DKIM
  • DMARC

rDNS (PTR Record)

Che cos’è l’rDNS?

L’RDNS è il Reverse DNS Lookup dell’indirizzo IP con il quale spediamo le mail.

Questa configurazione è fondamentale per la deliverability delle nostre email perché molte liste blacklist sono basate sul controllo dell’rDNS, se questo non viene configurato nel modo corretto le email del vostro server di posta verranno contrassegnate come spam.

Come si configura l’RDNS?

Step 1

Per configurare correttamente l’RDNS bisogna avere già configurato un record A che punta verso il nostro server di posta.

Step 2

Possiamo passare quindi alla configurazione dell’RDNS, se abbiamo il server di posta on premise questa operazione deve essere effettuata obbligatoriamente dal provider della nostra connettività, se invece il server di posta si trova in cloud, è possibile che il CSP (Cloud Service Provider) permetta la configurazione autonomamente.

Come verificare la corretta configurazione dell’rDNS?

Dopo la configurazione possiamo verificare l’RDNS del server di posta facendo l’nslookup del nostro IP pubblico, come risposta avremo il nome di dominio:

Note: Questa configurazione viene effettuata una sola volta per tutto il server di posta, invece la configurazione dell’ SPF, DKIM e DMARC devono essere effettuate per ogni dominio presente sul server di posta.

SPF

Che cos’è l’SPF?

SPF significa Sender Policy Framework e si occupa di identificare quali sono gli indirizzi IP abilitati a spedire per il nostro dominio.

Il record SPF prevede la pubblicazione nei record del DNS di un determinato dominio, una lista degli host autorizzati ad inviare mail. L’autenticazione di una mail viene effettuata confrontando l’indirizzo ricevuto come mittente con la lista degli host autorizzati per quel dominio.

L’SPF è un record DNS di tipo TXT.

Come si configura l’SPF?

L’SPF si configura solo lato DNS, attraverso la generazione di un record TXT:

  • Il nome del record dovrà essere il nome del proprio dominio oppure @ in base al provider DNS
  • Il valore del record sarà generato a partire dalla tabella sottostante ed il seguente esempio:

v=spf1 ip4:<ip> -all

ValoreAzioneNote
+allPassValore opzionale, il controllo spf verrà sempre superato.
-allFailSe il controllo SPF fallisce, l’email non sarà consegnata al server di destinazione.
~allSoftFailSe il controllo SPF fallisce, l’email sarà consegnata al server di destinazione ma verrà contrassegnata come spam.
?allNeutralIl controllo SPF sarà ignorato.

Esempio

Ecco come risulta configurato l’SPF su Cloudflare

Nome:

Valore:  v=spf1 include:spf.mtaroutes.com include:servers.mcsv.net -all

Note:

Il record SPF è configurabile sia con indirizzi ip (esempio: v=spf1 ip4: -all) che con nomi di dominio (esempio: v=spf1 include: -all)

Se il server di posta per spedire utilizza diversi indirizzi ip (esempio: due linee internet dove una viene utilizzata come backup), oppure se viene utilizzato un altro server di posta che spedisce a nome del vostro dominio (esempio: servizio di hosting presso un provider), è possibile configurare più indirizzi ip nello stesso record SPF, non bisogna creare multipli record SPF.

E’ possibile inoltre configurare il record SPF includendo altri record A, in questo modo se cambieranno gli indirizzi ip non dovremo aggiornare ogni volta i record SPF. (esempio: v=spf1 include:spf.mtaroutes.com -all)

Come verificare la corretta configurazione dell’SPF?

Dopo la configurazione possiamo verificare l’ SPF utilizzando il tool MX Toolbox al seguente indirizzo:

https://mxtoolbox.com/SuperTool.aspx?action=spf

Note:

La configurazione mostrata volutamente non include tutte i possibili parametri per la configurazione, perché nella maggior parte dei casi non è necessario utilizzarli.

Nel caso fosse necessaria una configurazione avanzata, potrete trovare tutte le informazioni necessarie QUI.

DKIM

Che cos’è la DKIM?

DKIM significa DomainKeys Identified Mail, una chiave pubblica che certifica la mail.

Il record DKIM prevede che header e body del messaggio siano protetti da crittografia. In un dominio protetto con una tecnica di questo tipo vengono inseriti in un record all’interno dei DNS le chiavi pubbliche relative agli host autorizzati ad inviare messaggi. Coloro che ricevono un messaggio possono quindi utilizzare la chiave per verificarne l’autenticità.

La DKIM è un record DNS di tipo TXT.

Come si configura la DKIM?

La DKIM si configura:

  • Lato DNS attraverso la generazione di un record TXT, Il nome del record dovrà essere selettore._domainkey.domainname.com
  • Lato server attraverso la generazione della chiave DKIM. Il valore del record sarà generato dal server di posta (La generazione della chiave DKIM varia in base al server di posta utilizzato)

Esempio: Ecco come risulta configurata la DKIM su Cloudflare :

mail._domainkey

Valore: v=DKIM1;p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0Qb+
FDCF10yphcWHps6JzTf48koMSe/jpc67Aa1VkIDhrxFrj+ywlmrE8SsYvQ1ZBONOg70+
2kdHtd8lmKN2IYnxv3+GGJOtdaoi7jXX2UsDyMvR4CZp68JjCcfcg1iGJn2+sMEZXCjlsk
Uff2b/icM8RYluF2r/q0ZKe1tqZhNp38APMxsiwwk02yq0dgD9P0npNphtDVikC/2TUgW
Usqx2eRtRBoGoa4UCyHwwyGgBL1OS6QrX6pp1HGugoQGvPci7u8JoSBhelm+MuE0qU
PcUA1Txj393FSfdUHvS56BwfAowULRpkjuLI6X40npT2IHkCO51H0lurQ490FV7sQIDAQAB

Note:

Alcuni Provider richiedono l’utilizzo della chiave a 1024bit, perché la chiave DKIM a 2048bit risulterebbe troppo lunga, di conseguenza non si riuscirebbe ad inserirla tutta nel campo, generando quindi un errore in fase di validazione.

Per risolvere questo problema bisogna generare un chiave a 1024bit collegandosi al seguente sito:

Avremo come risultato la creazione di 2 chiavi:

  • Una chiave pubblica (da inserire all’interno del record DNS)
  • Una chiave privata (da sostituire alla chiave generata di default dal server, procedura che varia in base al server di posta utilizzato)

La chiave DKIM sarà la stessa per tutti i domini sullo stesso server di posta, mentre il nome del record DNS varierà in quanto andrà inserito per ogni dominio con il nome di dominio corretto.

Come verificare la corretta configurazione della DKIM?

Dopo la configurazione possiamo verificare la dkim utilizzando il tool MXtoolbox al seguente indirizzo:

https://mxtoolbox.com/SuperTool.aspx?action=dkim

Note:

Per verificare correttamente la chiave DKIM bisogna inserire il selettore dopo il nome di dominio, nel nostro caso è mail (esempio: domainname.ext:selettore)

DMARC

Che cos’è il DMARC?

Domain-based Message Authentication, Reporting and Conformance, ovvero un 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.

Il DMARC è un record DNS di tipo TXT, si basa sull’ SPF e sulla DKIM.

Questo significa che, prima di tutto, dobbiamo implementare nel nostro record DNS sia la firma DKIM sia il record SPF.

Come si configura il DMARC?

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
TagValoreNote
v=DMARC1Valore 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 destinazionequarantine :Avvisa il server di posta di destinazione di trattare qualsiasi email che fallisce il test DKIM e/o SPF come sospetta ed esegue controlli aggiuntivireject :Avvisa il server di posta di destinazione di rifiutare qualsiasi email che fallisce il test DKIM e/o SPFValore 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 100Valore 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à inviato1 : 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à inviatod : Genera il report se il test DKIM fallisces : 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 5965iodef : Il formato del messaggio per il report degli errori (Incident Object Description Exchange Format) è definito dall’RFC 5070Valore 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 secondiValore 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 aggregatoValore opzionale, se il valore non è presente i report aggregati non saranno inviati.
L’email deve avere il formato mailto:[email protected]
ruf=Definisce l’elenco delle email alle quali viene inviato il report forenseValore opzionale, se il valore non è presente i report forensi non saranno inviati.
L’email deve avere il formato mailto:[email protected]
.

Esempio

Ecco come risulta configurato il DMARC su Cloudflare:

Nome: _dmarc

Valore: v=DMARC1; p=reject; sp=reject; adkim=r; aspf=r; pct=100; fo=1; rf=afrf; ri=86400; rua=mailto:dmarc_rua@examplecom; ruf=mailto:dmarc_ruf@examplecom

Come verificare la corretta configurazione del DMARC?

Dopo la configurazione possiamo verificare il DMARC utilizzando il tool MXtoolbox al seguente indirizzo:

https://mxtoolbox.com/SuperTool.aspx?action=dmarc

TEST FINALE

Possiamo verificare la deliverability della posta elettronica al seguente indirizzo:

https://www.mail-tester.com/

Note: Se tutto è stato configurato correttamente otterremo un punteggio di 10 su 10

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *