Passa al contenuto principale

Appendix A. Extended Examples (Esempi estesi)

Appendix A. Extended Examples (Esempi estesi)

Questa appendice fornisce esempi estesi di record SPF, dimostrando vari scenari di configurazione e migliori pratiche.

A.1 Simple Examples (Esempi semplici)

A.1.1 Consentire solo un singolo indirizzo IP

example.com. IN TXT "v=spf1 ip4:192.0.2.1 -all"

Spiegazione: Solo l'indirizzo IP 192.0.2.1 è autorizzato a inviare e-mail per conto di example.com. Tutti gli altri indirizzi IP porteranno a un risultato "fail".

A.1.2 Utilizzo dei record MX

example.com. IN TXT "v=spf1 mx -all"

Spiegazione: Consente ai server di posta elencati nei record MX di example.com di inviare e-mail. Questa è una configurazione comune perché si adatta automaticamente alle modifiche dei record MX.

A.1.3 Utilizzo dei record A

example.com. IN TXT "v=spf1 a -all"

Spiegazione: Consente agli indirizzi IP nel record A (o AAAA per IPv6) di example.com di inviare e-mail.

A.1.4 Combinazione di più meccanismi

example.com. IN TXT "v=spf1 mx a:mail.example.com ip4:192.0.2.0/24 -all"

Spiegazione: Consente e-mail dalle seguenti fonti:

  • Server MX di example.com
  • Record A di mail.example.com
  • Qualsiasi IP nella rete 192.0.2.0/24

A.1.5 Politica di soft-fail

example.com. IN TXT "v=spf1 mx a ~all"

Spiegazione: Utilizza soft-fail (~all) invece di hard-fail (-all). Questo è utile durante la fase di test o migrazione. I destinatari possono accettare le e-mail ma contrassegnarle come sospette.

A.2 Multiple Domain Example (Esempio multi-dominio)

Per le organizzazioni con più domini che utilizzano la stessa infrastruttura di posta:

example.com.     IN TXT "v=spf1 mx -all"
example.org. IN TXT "v=spf1 redirect=_spf.example.com"
example.net. IN TXT "v=spf1 redirect=_spf.example.com"
_spf.example.com. IN TXT "v=spf1 mx:example.com -all"

Spiegazione:

  • example.com ha il proprio record SPF
  • example.org ed example.net reindirizzano al record SPF condiviso
  • _spf.example.com contiene la politica effettiva

Vantaggi:

  • Gestione centralizzata della configurazione dei server di posta
  • Un singolo aggiornamento influenza più domini
  • Manutenzione DNS ridotta

A.3 DNS Blacklist (DNSBL) Style Example (Esempio di stile blacklist DNS)

Utilizzo del meccanismo exists per implementare funzionalità simili a DNSBL:

example.com. IN TXT "v=spf1 exists:%\{ir}.%\{l1r+-}._spf.%\{d} -all"

Spiegazione:

  • %\{ir}: Indirizzo IP invertito (ad esempio, 192.0.2.1 diventa 1.2.0.192)
  • %\{l1r+-}: Prima parte del local-part del mittente, invertita, "." e "+" sostituiti da "-"
  • %\{d}: Nome di dominio

Esempio di espansione:

Se il mittente è [email protected] che invia da 192.0.2.1:

  • La macro si espande a: 1.2.0.192.user._spf.example.com

Quindi questo nome di dominio viene interrogato per i record A. Se esiste, la verifica SPF ha successo.

Casi d'uso:

  • Controllo granulare basato sull'utente
  • Integrazione con database o sistemi personalizzati
  • Decisioni di autorizzazione dinamiche

A.4 Multiple Requirements Example (Esempio di requisiti multipli)

Configurazione complessa che combina più meccanismi e modificatori:

example.com. IN TXT "v=spf1 ip4:192.0.2.0/24 ip4:198.51.100.0/24 include:_spf-servers.example.com include:_spf.google.com a:outbound.example.com mx ~all"

Spiegazione:

  • ip4:192.0.2.0/24: Rete server di posta interni
  • ip4:198.51.100.0/24: Rete data center di backup
  • include:_spf-servers.example.com: Includere lista server aggiuntivi
  • include:_spf.google.com: Utilizzare Google Workspace
  • a:outbound.example.com: Server in uscita specifico
  • mx: Includere server dei record MX
  • ~all: Soft-fail per tutti gli altri casi

Progettazione gerarchica:

_spf-servers.example.com. IN TXT "v=spf1 ip4:203.0.113.0/24 ip4:198.51.100.128/25 -all"

Questo consente di dividere i grandi record SPF in parti più gestibili.

A.5 Esempi di configurazione sottodomini

A.5.1 Sottodomini con politiche diverse

example.com.       IN TXT "v=spf1 mx -all"
mail.example.com. IN TXT "v=spf1 a -all"
shop.example.com. IN TXT "v=spf1 include:shopify.com -all"

Spiegazione:

  • Il dominio principale utilizza i record MX
  • Il sottodominio mail utilizza solo il suo record A
  • Il sottodominio shop utilizza un servizio di terze parti (Shopify)

A.5.2 Sottodomini che non inviano e-mail

noreply.example.com. IN TXT "v=spf1 -all"
static.example.com. IN TXT "v=spf1 -all"

Spiegazione: Dichiara esplicitamente che questi sottodomini non inviano e-mail, per prevenire la contraffazione.

A.6 Esempi di integrazione servizi di terze parti

A.6.1 Utilizzo di più fornitori di servizi di posta elettronica

example.com. IN TXT "v=spf1 include:_spf.google.com include:spf.protection.outlook.com include:sendgrid.net -all"

Spiegazione:

  • Google Workspace per e-mail dei dipendenti
  • Microsoft 365 per i partner
  • SendGrid per e-mail di marketing

A.6.2 Verifica dei limiti delle query DNS

L'esempio sopra utilizza 3 include, ognuno dei quali può attivare query aggiuntive. È necessario assicurarsi che il numero totale di query non superi 10.

Metodo di verifica:

# Verificare SPF di Google
dig _spf.google.com TXT

# Verificare SPF di Microsoft
dig spf.protection.outlook.com TXT

# Verificare SPF di SendGrid
dig sendgrid.net TXT

Calcolare il numero di meccanismi in ogni include, assicurandosi che il totale ≤ 10.

A.7 Esempi di configurazione errata (da evitare)

A.7.1 ❌ Record SPF multipli (errore)

example.com. IN TXT "v=spf1 mx -all"
example.com. IN TXT "v=spf1 a -all"

Problema: Questo porterà a "permerror". Un dominio può avere solo un record SPF.

Metodo corretto:

example.com. IN TXT "v=spf1 mx a -all"

A.7.2 ❌ -all mancante (non sicuro)

example.com. IN TXT "v=spf1 mx"

Problema: Nessuna politica predefinita esplicita, equivale a ?all (neutrale), nessun IP fallirà.

Metodo corretto:

example.com. IN TXT "v=spf1 mx -all"

A.7.3 ❌ Superamento del limite di query DNS

example.com. IN TXT "v=spf1 include:a include:b include:c include:d include:e include:f include:g include:h include:i include:j include:k -all"

Problema: 11 include superano il limite di 10 query, portando a "permerror".

Soluzione: Utilizzare l'appiattimento SPF o utilizzare direttamente i meccanismi ip4.

A.8 Esempio di configurazione IPv6

example.com. IN TXT "v=spf1 ip6:2001:db8::/32 ip4:192.0.2.0/24 mx -all"

Spiegazione: Supporta sia reti IPv6 che IPv4.

A.9 Esempio di stringa di spiegazione

example.com.         IN TXT "v=spf1 mx -all exp=explain._spf.%\{d}"
explain._spf.example.com. IN TXT "E-mail da %\{i}, ma questo IP non è autorizzato da %\{d}. Contattare postmaster@%\{d}."

Spiegazione: Quando la verifica SPF fallisce, il destinatario può interrogare la stringa di spiegazione e mostrarla all'utente.

Dopo l'espansione macro (supponendo invio da 192.0.2.99):

"E-mail da 192.0.2.99, ma questo IP non è autorizzato da example.com. Contattare [email protected]."

A.10 Strategia di test e transizione

Fase 1: Modalità monitoraggio (2-4 settimane)

example.com. IN TXT "v=spf1 ?all"

Fase 2: Registrare fonti di invio effettive (2-4 settimane)

example.com. IN TXT "v=spf1 ip4:192.0.2.0/24 include:provider.com ?all"

Fase 3: Soft-fail (4-8 settimane)

example.com. IN TXT "v=spf1 ip4:192.0.2.0/24 include:provider.com ~all"

Fase 4: Modalità rigorosa (ambiente di produzione)

example.com. IN TXT "v=spf1 ip4:192.0.2.0/24 include:provider.com -all"

Raccomandazione: Monitorare i risultati della verifica SPF in ogni fase per assicurarsi che nessuna e-mail legittima venga bloccata.