Modulo 4 · 4.3
SPF: chi può inviare email a nome del Suo dominio?
Modulo 4: Record per la posta elettronica · Tempo di lettura: 10 minuti
Obiettivo della lezione: Dopo questa lezione sarà in grado di leggere un record SPF, aggiungere correttamente un servizio ed evitare i tre errori SPF più noti: due record, +all e più di dieci interrogazioni.
Concetti chiave: SPF, v=spf1, meccanismo (a, mx, ip4, ip6, include), qualificatore (+ - ~ ?), all, un unico record SPF, limite di 10 interrogazioni DNS, mittente envelope (Return-Path)
Il problema: chiunque può usare il Suo nome
La posta elettronica è stata inventata negli anni ottanta per un internet piccolo e amichevole. Qualsiasi server di posta può inviare un'email con come mittente info@example.com, anche se quel server non ha assolutamente nulla a che fare con example.com. I truffatori ne approfittano volentieri.
SPF (Sender Policy Framework, RFC 7208) è un primo passo per prevenire questo problema. In un record SPF indica quali server possono inviare email a nome del Suo dominio. Un server di posta ricevente, per ogni email in arrivo, verifica: questa email proviene da un server presente nell'elenco?
Lo consideri come una lista ospiti a una porta. Il portiere (il server di posta ricevente) richiede l'elenco al Suo dominio e controlla se il visitatore (il server mittente) vi è presente.
Come si presenta un record SPF?
Un record SPF è un record TXT sul Suo dominio che inizia con v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Lo si legge da sinistra a destra. Il destinatario esamina i vari elementi uno per uno e si ferma al primo che corrisponde.
| Elemento | Significato |
|---|---|
v=spf1 | Questo è un record SPF. Deve stare all'inizio. |
a | Il server o i server a cui punta il record A/AAAA del Suo dominio possono inviare email. |
mx | I server indicati nei Suoi record MX possono inviare email. |
ip4:192.0.2.25 | Questo indirizzo IPv4 può inviare email. È possibile indicare anche un intervallo: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Lo stesso per IPv6. |
include:spf.mailer.example | Tutti i server presenti nel record SPF di spf.mailer.example sono autorizzati anch'essi. È così che si aggiunge un servizio esterno. |
~all | Tutti gli altri server: sospetti. Deve sempre stare alla fine. |
La fine: ~all, -all, ?all o +all
Davanti a ogni elemento può comparire un simbolo che indica cosa succede quando l'elemento corrisponde. Nel caso di all (che corrisponde sempre) questo simbolo fa la differenza:
| Finale | Nome | Significato |
|---|---|---|
-all | fail | Altri server non sono autorizzati. I destinatari possono rifiutare l'email. |
~all | softfail | Altri server sono sospetti. L'email viene solitamente accettata, ma più spesso considerata spam. |
?all | neutral | Nessuna indicazione. Praticamente inutile. |
+all | pass | Qualsiasi server al mondo può inviare email a Suo nome. Da non usare mai. |
Se non è presente alcun simbolo, vale +. mx significa quindi +mx.
Quale scegliere? ~all è un'impostazione predefinita sicura. -all è più severo ed è indicato se è sicuro che tutti i Suoi mittenti siano presenti nel record. Se utilizza DMARC (lezione 4.5), è la policy DMARC a determinare infine cosa succede; molti amministratori scelgono quindi ~all.
Errore 1: due record SPF
Per dominio può esistere soltanto un record SPF. Se il destinatario ne trova due, il risultato è un errore (permerror) e il Suo SPF non conta affatto. Questo è peggio che non avere SPF.
Nella pratica questo errore si verifica spesso. Un servizio di newsletter o Microsoft 365 indica di "aggiungere questo record SPF", e all'improvviso compare un secondo record v=spf1 accanto a quello esistente. La soluzione: aggiunga il nuovo servizio al record esistente.
Sbagliato:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Corretto:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Attenzione: unendo i record non rimuova i server che utilizza ancora. Se il Suo sito web invia email tramite il server del Suo provider di hosting, questo deve rimanere nel record, anche se la posta normale va verso Microsoft 365. Un pacchetto di hosting spesso ha già un SPF predefinito con un include del provider di hosting (presso WebOké, ad esempio, include:webawere.nl); lo lasci finché il Suo sito web o i Suoi moduli inviano email tramite quel server.
Errore 2: +all o un record troppo ampio
+all alla fine, o un intervallo enorme come ip4:0.0.0.0/0, significa che chiunque è autorizzato. In tal caso il Suo SPF non protegge più nulla, e i filtri antispam lo considerano un segnale negativo.
Errore 3: più di dieci interrogazioni
Per verificare un record SPF il destinatario a volte deve effettuare ulteriori interrogazioni DNS. Ogni include, a, mx, exists, ptr e redirect costa un'interrogazione, e un include conta anche tutte le interrogazioni contenute nel record a cui rimanda. Secondo RFC 7208 il totale non può superare dieci. Se viene superato, il risultato è permerror e SPF fallisce.
ip4 e ip6 non costano alcuna interrogazione. Nemmeno all.
Inoltre, al massimo due interrogazioni possono restituire risultato "vuoto" (un nome che non esiste o non ha risposta). Un include verso un servizio che non utilizza più da tempo e che ha rimosso il proprio record può quindi anch'esso causare problemi.
Se utilizza molti servizi, verifichi il conteggio con uno strumento di controllo SPF (lezione 8.3) ed elimini i servizi che non utilizza più.
Cosa non fa SPF
SPF controlla il mittente envelope: l'indirizzo mittente tecnico (Return-Path) utilizzato tra i server di posta. Questo non è sempre lo stesso indirizzo del campo "Da:" che Lei vede nel Suo programma di posta. Un servizio di newsletter spesso invia con un proprio Return-Path. SPF da solo non blocca quindi ogni mittente falsificato. Per questo esistono DKIM (lezione 4.4) e DMARC (lezione 4.5).
SPF si interrompe anche con il reindirizzamento: se inoltra automaticamente la posta a un altro indirizzo, l'email arriva al destinatario finale da un server che non è presente nel Suo SPF.
Perché è importante
I grandi provider di posta sono diventati più severi. Da febbraio 2024 Gmail e Yahoo richiedono che chiunque invii email abbia almeno SPF o DKIM, e che chi invia molte email (più di circa 5.000 al giorno) abbia SPF, DKIM e DMARC. Microsoft impone dallo stesso requisito da maggio 2025 per Outlook.com, Hotmail e Live.com. Anche se invia poca posta, un buon record SPF aiuta a evitare la cartella spam.
Nella pratica: come si presenta in un pannello
In questo esempio utilizziamo DirectAdmin. In Amministrazione DNS clicchi sulla matita accanto al record TXT che inizia con v=spf1. DirectAdmin apre una guida SPF: in Includi dominio inserisce il dominio del servizio (senza include:), in Modalità sceglie SoftFail (~all) o Fallimento (-all). In basso vede il record completo. Mio WebOké dispone di una guida SPF analoga nella scheda DNS.
Altri pannelli non sempre dispongono di una guida simile. In tal caso modifica il record TXT come testo semplice; il contenuto è esattamente lo stesso.
Riepilogo
- SPF è un record TXT con
v=spf1che indica quali server possono inviare email a nome del Suo dominio. - Esattamente un record SPF per dominio. Nuovo servizio? Integri il record esistente.
- Termini con
~allo-all, mai con+all. - Massimo dieci interrogazioni DNS (
include,a,mx,exists,ptr,redirect),ip4/ip6non contano. - SPF osserva il mittente envelope; per una protezione reale servono anche DKIM e DMARC.
Quiz
Esercizio
Esercizio Z4.3: Ricerca di un record SPF. Cerchi il record SPF di google.com (oppure del Suo stesso dominio). Incolli il record completo e indichi con cosa termina (~all, -all, ?all o +all). Per il Suo stesso dominio, l'esercizio verifica anche che abbia esattamente un record SPF.
Esercizio O4.3: Configurazione nella Sua zona di esercitazione. Nella zona di esercitazione utilizza un servizio fittizio; per il Suo dominio reale utilizza l'include effettivo indicato dal Suo provider di posta (ad esempio include:_spf.google.com). Nella Sua zona di esercitazione crei un record SPF che autorizzi: i server MX della zona (<code>.dnspractice.eumx), l'indirizzo 192.0.2.25 e il servizio di esercitazione _spf.mailsuite-demo.dnspractice.eu. Gli altri server sono sospetti o non autorizzati, quindi il record termina con ~all o -all.
Esercizio O4.3
Questo esercizio lo svolge nella Sua zona di esercitazione: una vera zona DNS sui nameserver di WebOké, solo per Lei. Si registri con il Suo indirizzo email. Riceverà un link di accesso via email e tornerà poi a questa lezione. Usiamo il Suo indirizzo solo per il corso.
Per saperne di più
I passaggi descritti in questi articoli valgono per i pannelli di WebOké; in altri pannelli il funzionamento è simile.
- Guida DirectAdmin 5.7: Impostare e integrare l'SPF
- Come funziona il record SPF nel DNS?
- Aggiungere o modificare un record SPF in DirectAdmin
- Guida WebOké 5.5: Assistenti DNS: MX, SPF, DMARC, CAA e SRV
- RFC 7208 (SPF), in particolare il paragrafo 4.6.4 (limite di dieci interrogazioni e due interrogazioni vuote)
