Passa al contenuto principale

Appendix E. Mail Services (Servizi di posta)

Appendix E. Mail Services (Servizi di posta)

Questa appendice discute le considerazioni di implementazione SPF per vari scenari di servizi di posta.

E.1 Web-Based Mail Services (Servizi di posta basati sul web)

E.1.1 Prospettiva del fornitore di servizi

Scenario: Fornire servizi di webmail (come Gmail, Yahoo Mail, Outlook.com)

Considerazioni SPF:

1. Gli utenti inviano e-mail da più domini
2. Tutte le e-mail vengono inviate tramite i server del fornitore di servizi
3. Record SPF appropriati richiesti

Esempio di configurazione:

# Dominio principale del fornitore di servizi
mailprovider.com IN TXT "v=spf1 ip4:203.0.113.0/24 ip4:198.51.100.0/24 -all"

# Supporto per domini personalizzati
# Gli utenti devono includere il fornitore di servizi nel loro dominio
user-domain.com IN TXT "v=spf1 include:_spf.mailprovider.com -all"
_spf.mailprovider.com IN TXT "v=spf1 ip4:203.0.113.0/24 ip4:198.51.100.0/24 -all"

E.1.2 Configurazione dei domini personalizzati

Requisito dell'utente: Utilizzare un dominio personalizzato per inviare e-mail tramite il servizio di webmail

Passaggi di configurazione:

  1. Verificare la proprietà del dominio
Il fornitore di servizi richiede l'aggiunta di un record di verifica:
_verification.user-domain.com IN TXT "provider-verification-code"
  1. Configurare SPF
user-domain.com IN TXT "v=spf1 include:_spf.mailprovider.com -all"
  1. Configurare DKIM
# Il fornitore di servizi fornisce la chiave pubblica DKIM
selector._domainkey.user-domain.com IN TXT "v=DKIM1; k=rsa; p=MIGfMA0..."
  1. Configurare DMARC
_dmarc.user-domain.com IN TXT "v=DMARC1; p=quarantine; rua=mailto:[email protected]"

E.2 Shared Hosting Services (Servizi di hosting condiviso)

E.2.1 Sfide

Problema: Più clienti condividono lo stesso indirizzo IP

hosting-provider.com: 203.0.113.10
customer1.com: Ospitato su 203.0.113.10
customer2.com: Ospitato su 203.0.113.10
customer3.com: Ospitato su 203.0.113.10

Requisito SPF: Ogni dominio cliente deve autorizzare l'IP condiviso

E.2.2 Soluzioni

Soluzione 1: Inclusione SPF unificata

# Il fornitore di hosting fornisce
_spf.hosting-provider.com IN TXT "v=spf1 ip4:203.0.113.0/24 -all"

# Configurazione del cliente
customer1.com IN TXT "v=spf1 include:_spf.hosting-provider.com -all"
customer2.com IN TXT "v=spf1 include:_spf.hosting-provider.com -all"
customer3.com IN TXT "v=spf1 include:_spf.hosting-provider.com -all"

Soluzione 2: Autorizzazione IP diretta

# Ogni cliente configura indipendentemente
customer1.com IN TXT "v=spf1 ip4:203.0.113.10 -all"
customer2.com IN TXT "v=spf1 ip4:203.0.113.10 -all"

Vantaggi: Semplice, nessuna dipendenza Svantaggi: In caso di cambio IP, tutti i clienti devono aggiornare

Soluzione 3: IP dedicato (consigliato per i grandi clienti)

# Assegnare IP dedicato ai clienti importanti
important-customer.com IN TXT "v=spf1 ip4:203.0.113.50 -all"

E.2.3 Best practice

I fornitori di hosting dovrebbero:

1. Fornire documentazione chiara sulla configurazione SPF
2. Generare automaticamente record SPF (tramite pannello di controllo)
3. Informare i clienti delle modifiche all'indirizzo IP
4. Fornire strumenti di validazione SPF

I clienti dovrebbero:

1. Utilizzare il metodo include per fare riferimento all'SPF del fornitore di hosting
2. Validare regolarmente i record SPF
3. Monitorare la consegnabilità delle e-mail

E.3 Enterprise Mail Systems (Sistemi di posta aziendali)

E.3.1 Ambiente complesso

Scenario aziendale tipico:

- Più data center
- Più server di posta in uscita
- Servizi di posta di terze parti (marketing, notifiche, ecc.)
- Server di uffici locali
- Integrazione di servizi cloud

Sfide di configurazione SPF:

1. Limite di query DNS (10 volte)
2. Limite di dimensione del record (512 byte)
3. Più dipartimenti/unità aziendali
4. Frequenti modifiche all'infrastruttura

E.3.2 Architettura SPF aziendale

Progettazione gerarchica:

# Dominio principale
company.com IN TXT "v=spf1 include:_spf-internal.company.com include:_spf-external.company.com -all"

# Server interni
_spf-internal.company.com IN TXT "v=spf1 ip4:10.0.0.0/8 ip4:203.0.113.0/24 -all"

# Servizi esterni
_spf-external.company.com IN TXT "v=spf1 include:_spf.salesforce.com include:sendgrid.net include:mailchimp.com -all"

# Sottodomini dipartimentali
marketing.company.com IN TXT "v=spf1 include:_spf-marketing.company.com -all"
_spf-marketing.company.com IN TXT "v=spf1 include:sendgrid.net include:mailchimp.com -all"

Gestione degli intervalli IP:

# Data center A
_spf-dc-a.company.com IN TXT "v=spf1 ip4:203.0.113.0/25 -all"

# Data center B
_spf-dc-b.company.com IN TXT "v=spf1 ip4:198.51.100.0/25 -all"

# Aggregazione
_spf-datacenters.company.com IN TXT "v=spf1 include:_spf-dc-a.company.com include:_spf-dc-b.company.com -all"

E.3.3 Strategia di appiattimento SPF

Problema: Superamento del limite di 10 query DNS

Soluzione: Appiattimento regolare

# Script di automazione
def flatten_spf_includes():
"""
Interrogare regolarmente tutti gli IP di dominio inclusi
Generare un record SPF appiattito
"""
includes = [
'_spf.salesforce.com',
'sendgrid.net',
'mailchimp.com'
]

ips = []
for domain in includes:
# Analizzare il record SPF ed estrarre gli IP
ips.extend(resolve_spf_ips(domain))

# Generare un nuovo record SPF
spf_record = f"v=spf1 {' '.join([f'ip4:{ip}' for ip in ips])} -all"

# Aggiornare DNS (tramite API)
update_dns_record('_spf-flattened.company.com', spf_record)

# Eseguire settimanalmente

Nota: Dopo l'appiattimento, aggiornare regolarmente poiché gli IP di terze parti possono cambiare

E.4 Email Marketing Services (Servizi di email marketing)

E.4.1 Configurazione del servizio

Servizi comuni:

  • SendGrid
  • Mailchimp
  • Amazon SES
  • Mailgun

Esempi di configurazione SPF:

SendGrid:

company.com IN TXT "v=spf1 include:sendgrid.net -all"

Mailchimp:

company.com IN TXT "v=spf1 include:servers.mcsv.net -all"

Amazon SES:

company.com IN TXT "v=spf1 include:amazonses.com -all"

Uso combinato:

company.com IN TXT "v=spf1 mx include:sendgrid.net include:servers.mcsv.net -all"

E.4.2 Strategia di sottodominio

Best practice: Utilizzare un sottodominio dedicato per le e-mail di marketing

# Dominio principale (per e-mail aziendali importanti)
company.com IN TXT "v=spf1 mx -all"

# Sottodominio marketing
marketing.company.com IN TXT "v=spf1 include:sendgrid.net -all"

# Sottodominio notifiche
notifications.company.com IN TXT "v=spf1 include:amazonses.com -all"

Vantaggi:

1. Separazione della reputazione (le e-mail di marketing non influenzano il dominio principale)
2. Gestione più facile dei record SPF
3. Migliore monitoraggio e reporting
4. Conforme alle best practice DMARC

E.4.3 Configurazione DKIM

Combinato con SPF:

# SPF
marketing.company.com IN TXT "v=spf1 include:sendgrid.net -all"

# DKIM (fornito da SendGrid)
s1._domainkey.marketing.company.com IN CNAME s1.domainkey.u12345.wl.sendgrid.net
s2._domainkey.marketing.company.com IN CNAME s2.domainkey.u12345.wl.sendgrid.net

# DMARC
_dmarc.marketing.company.com IN TXT "v=DMARC1; p=quarantine; pct=100; rua=mailto:[email protected]"

E.5 Transactional Email Services (Servizi di e-mail transazionali)

E.5.1 Scenario

E-mail transazionali:

  • Conferma di registrazione
  • Reimpostazione password
  • Notifiche ordini
  • Fatture e ricevute

Fornitori di servizi:

  • Amazon SES
  • SendGrid
  • Mailgun
  • Postmark

E.5.2 Configurazione

Utilizzare un sottodominio dedicato:

# Sottodominio e-mail transazionali
transactional.company.com IN TXT "v=spf1 include:_spf.mailgun.org -all"

# DKIM
smtp._domainkey.transactional.company.com IN TXT "v=DKIM1; k=rsa; p=..."

Configurazione dell'applicazione:

# Esempio Django
EMAIL_HOST = 'smtp.mailgun.org'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_FROM = '[email protected]'

# Inviare un'e-mail
send_mail(
subject='Password Reset',
message='Click here to reset...',
from_email='[email protected]',
recipient_list=['[email protected]']
)

E.5.3 Monitoraggio

Metriche chiave:

- Tasso di consegna e-mail
- Tasso di rimbalzo
- Tasso di successo SPF
- Tasso di successo DKIM
- Tasso di allineamento DMARC
- Tasso di reclami

Impostazioni di avviso:

if delivery_rate < 95%:
alert("Delivery rate dropped below 95%")

if spf_pass_rate < 98%:
alert("SPF configuration issue detected")

E.6 Mobile and IoT Devices (Dispositivi mobili e IoT)

E.6.1 Sfide

Dispositivi mobili:

- Indirizzi IP dinamici
- Invio tramite reti degli operatori
- Non possono essere elencati in SPF

Dispositivi IoT:

- Grande numero di dispositivi
- Distribuiti su reti diverse
- Invio di e-mail diretto

E.6.2 Soluzioni

Soluzione 1: Utilizzare un relay SMTP

Dispositivo → Relay SMTP → Destinatario

Configurazione:
- Il dispositivo si connette al relay tramite autenticazione
- Server relay autorizzato nel record SPF
- Il relay aggiunge una firma DKIM

Configurazione SPF:

iot-devices.company.com IN TXT "v=spf1 mx include:_spf-relay.company.com -all"
_spf-relay.company.com IN TXT "v=spf1 ip4:203.0.113.50 -all"

Soluzione 2: Invio tramite API

I dispositivi inviano e-mail tramite API HTTP:
- Utilizzare un servizio di terze parti (come API SendGrid)
- Coperto dal record SPF del fornitore di servizi
- Nessun invio SMTP diretto dal dispositivo richiesto

E.7 Best Practices Summary (Riepilogo delle best practice)

E.7.1 Raccomandazioni generali

1. Utilizzare sottodomini per separare diversi tipi di e-mail
2. Implementare la tripla protezione SPF + DKIM + DMARC
3. Verificare e aggiornare regolarmente i record SPF
4. Monitorare i limiti di query DNS
5. Utilizzare include invece di elencare direttamente tutti gli IP
6. Utilizzare IP dedicati per servizi critici
7. Implementare il monitoraggio dell'autenticazione e-mail
8. Stabilire un processo di risposta agli incidenti

E.7.2 Checklist di configurazione

Verificare prima della pubblicazione:

□ Sintassi del record SPF corretta
□ Numero di query DNS ≤ 10
□ Dimensione del record < 512 byte
□ Tutti i server di invio autorizzati
□ Utilizzare qualificatori appropriati (-all o ~all)
□ DKIM configurato
□ Politica DMARC pubblicata
□ E-mail di test inviate e verificate

Monitoraggio continuo:

□ Verificare i rapporti DMARC settimanalmente
□ Monitorare la consegnabilità delle e-mail
□ Tracciare gli errori SPF/DKIM
□ Verificare le nuove fonti di invio
□ Aggiornare le modifiche dei servizi di terze parti