Vi presentiamo PostScale -- API email per invii transazionali, ricezione e indirizzi mascherati. PostScale

    Sicurezza email con SPF, DKIM e DMARC

    Scopri come proteggere il tuo dominio dallo spoofing email usando i record SPF, DKIM e DMARC. Guida passo-passo per la configurazione tramite dashboard e API su DNScale.

    Lo spoofing email consente agli attaccanti di inviare messaggi che sembrano provenire dal tuo dominio. Senza un'autenticazione adeguata, chiunque può inviare un'email affermando di essere ceo@tuodominio.com. SPF, DKIM e DMARC sono standard basati su DNS che aiutano i server di posta riceventi a verificare le email legittime.

    Cosa imparerai

    • Come SPF dichiara i server di posta autorizzati
    • Come DKIM firma crittograficamente le email
    • Come DMARC definisce le policy per le autenticazioni fallite
    • Configurazione di tutti e tre tramite dashboard e API DNScale
    • Test e validazione della configurazione

    SPF (Sender Policy Framework)

    Cosa fa SPF

    SPF ti consente di specificare quali indirizzi IP e server di posta possono inviare email per il tuo dominio. I server riceventi controllano il tuo record SPF per verificare che il mittente sia autorizzato.

    Sintassi del record SPF

    Un record SPF è un record TXT all'apex del tuo dominio:

    v=spf1 [meccanismi] [qualificatore]all
    ComponenteDescrizione
    v=spf1Identificatore di versione (obbligatorio)
    include:dominioAutorizza i server autorizzati dal record SPF di un altro dominio
    aAutorizza l'IP del record A del dominio
    mxAutorizza i server MX del dominio
    ip4:x.x.x.xAutorizza un indirizzo IPv4 specifico o un intervallo
    ip6:x::xAutorizza un indirizzo IPv6 specifico o un intervallo
    ~allSoft fail per mittenti non autorizzati
    -allHard fail per mittenti non autorizzati

    Esempi comuni di SPF

    Google Workspace:

    v=spf1 include:_spf.google.com ~all

    Microsoft 365:

    v=spf1 include:spf.protection.outlook.com ~all

    Provider multipli:

    v=spf1 include:_spf.google.com include:spf.protection.outlook.com ~all

    Server di posta personalizzato:

    v=spf1 ip4:203.0.113.5 mx ~all

    Best practice SPF

    1. Inizia con ~all (soft fail), passa a -all dopo i test
    2. Mantieni sotto 10 lookup DNS (limite SPF)
    3. Includi tutte le fonti di invio: email transazionali, piattaforme di marketing, ecc.

    DKIM (DomainKeys Identified Mail)

    Cosa fa DKIM

    DKIM aggiunge una firma digitale alle email in uscita. Il tuo server di posta firma ogni email con una chiave privata e tu pubblichi la chiave pubblica corrispondente nel DNS. I server riceventi usano questa chiave pubblica per verificare la firma, dimostrando che l'email non è stata manomessa e proviene da un mittente autorizzato.

    Come funziona DKIM

    1. Il tuo server di posta genera una firma crittografica usando una chiave privata
    2. La firma viene aggiunta agli header dell'email
    3. I server riceventi cercano la tua chiave pubblica DKIM nel DNS
    4. Verificano che la firma corrisponda al contenuto dell'email
    5. Se valida, l'email supera l'autenticazione DKIM

    Sintassi del record DKIM

    Un record DKIM è un record TXT su selector._domainkey.tuodominio.com:

    selector._domainkey.tuodominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCS..."
    TagDescrizione
    v=DKIM1Identificatore di versione
    k=rsaTipo di chiave (solitamente RSA)
    p=...Chiave pubblica (codificata in base64)
    t=s(Opzionale) Modalità strict - richiesta corrispondenza esatta del dominio
    t=y(Opzionale) Modalità test

    Selector DKIM

    Il selector è un nome che identifica quale chiave utilizzare. Questo consente:

    • Rotazione delle chiavi senza downtime
    • Chiavi diverse per servizi di posta diversi
    • Chiavi multiple attive contemporaneamente

    Pattern di selector comuni:

    • google per Google Workspace
    • selector1, selector2 per Microsoft 365
    • k1, k2, k3 per configurazioni personalizzate
    • mailjet, sendgrid per servizi di terze parti

    Ottenere le chiavi DKIM

    Le chiavi DKIM sono generate dal tuo provider email. Ecco dove trovarle:

    Google Workspace:

    1. Console di amministrazione → App → Google Workspace → Gmail
    2. Autentica email → Genera nuovo record
    3. Copia il valore del record TXT

    Microsoft 365:

    1. Microsoft 365 Defender → Email e collaborazione → Criteri
    2. DKIM → Seleziona dominio → Crea chiavi DKIM
    3. Copia entrambi i record selector1 e selector2

    Servizi di terze parti (SendGrid, Mailjet, ecc.):

    • Controlla la dashboard del tuo provider per le impostazioni DNS
    • Ti forniranno il nome del selector e la chiave pubblica

    Esempi di record DKIM

    Google Workspace:

    google._domainkey.tuodominio.com.  TXT  "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA..."

    Microsoft 365:

    selector1._domainkey.tuodominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."
    selector2._domainkey.tuodominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNA..."

    Personalizzato/terze parti:

    mail._domainkey.tuodominio.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3..."

    Best practice DKIM

    1. Usa chiavi a 2048 bit - Le chiavi a 1024 bit sono sempre più vulnerabili
    2. Ruota le chiavi periodicamente - Almeno annualmente per sicurezza
    3. Mantieni le chiavi private al sicuro - Non esporle mai nel DNS o nei log
    4. Usa selector unici - Selector diversi per ogni servizio
    5. Testa prima di applicare DMARC - Assicurati che DKIM passi prima di p=reject

    DMARC (Domain-based Message Authentication)

    Cosa fa DMARC

    DMARC si basa su SPF (e DKIM) per fornire:

    • Una policy che indica ai riceventi cosa fare con le email che falliscono l'autenticazione
    • Report che permettono di monitorare i risultati dell'autenticazione

    Sintassi del record DMARC

    Un record DMARC è un record TXT su _dmarc.tuodominio.com:

    v=DMARC1; p=policy; [tag opzionali]

    Tag obbligatori:

    TagDescrizione
    v=DMARC1Identificatore di versione
    p=none|quarantine|rejectPolicy per le email che falliscono

    Tag opzionali:

    TagDescrizione
    rua=mailto:indirizzoDestinazione report aggregati
    ruf=mailto:indirizzoDestinazione report forensi
    pct=100Percentuale a cui applicare la policy (predefinito 100)
    sp=policyPolicy per i sottodomini

    Opzioni della policy DMARC

    PolicyAzioneQuando usarla
    p=noneSolo monitoraggioConfigurazione iniziale
    p=quarantineInvia allo spamIntermedia
    p=rejectBlocca completamenteProtezione completa

    Esempi DMARC

    Modalità monitoraggio:

    v=DMARC1; p=none; rua=mailto:dmarc-reports@tuodominio.com

    Modalità quarantena:

    v=DMARC1; p=quarantine; rua=mailto:dmarc-reports@tuodominio.com; pct=100

    Modalità rifiuto:

    v=DMARC1; p=reject; rua=mailto:dmarc-reports@tuodominio.com

    Rollout consigliato

    1. Settimane 1-2: p=none per monitorare
    2. Settimane 3-4: Analizza i report, risolvi i problemi
    3. Settimane 5-6: p=quarantine con pct=25
    4. Settimane 7-8: Aumenta a pct=100
    5. Settimana 9+: Passa a p=reject

    Configurazione tramite dashboard DNScale

    Crea il record SPF

    1. Accedi su dnscale.eu
    2. Seleziona il tuo dominio
    3. Clicca Add Record
    4. Configura:
      • Name: Lascia vuoto (apex)
      • Type: TXT
      • Content: v=spf1 include:_spf.google.com ~all
      • TTL: 3600
    5. Clicca Create Record

    Crea il record DKIM

    1. Ottieni la chiave pubblica DKIM dal tuo provider email (vedi "Ottenere le chiavi DKIM" sopra)
    2. Clicca Add Record
    3. Configura:
      • Name: google._domainkey (o il selector del tuo provider)
      • Type: TXT
      • Content: v=DKIM1; k=rsa; p=MIIBIjANBgkq... (la tua chiave pubblica)
      • TTL: 3600
    4. Clicca Create Record

    Nota: Per Microsoft 365, dovrai creare due record (selector1 e selector2).

    Crea il record DMARC

    1. Clicca Add Record
    2. Configura:
      • Name: _dmarc
      • Type: TXT
      • Content: v=DMARC1; p=none; rua=mailto:dmarc@tuodominio.com
      • TTL: 3600
    3. Clicca Create Record

    Configurazione tramite API DNScale

    Autenticazione

    export DNSCALE_API_KEY="your-api-key"

    Ottieni l'ID della zona

    curl -s "https://api.dnscale.eu/v1/zones" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" | jq '.data.zones[] | {id, name}'

    Crea il record SPF

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "@",
        "type": "TXT",
        "content": "v=spf1 include:_spf.google.com ~all",
        "ttl": 3600
      }'

    Crea il record DKIM

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "google._domainkey",
        "type": "TXT",
        "content": "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA...",
        "ttl": 3600
      }'

    Sostituisci google._domainkey con il tuo selector e la chiave pubblica con la tua chiave DKIM effettiva.

    Crea il record DMARC

    curl -X POST "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "name": "_dmarc",
        "type": "TXT",
        "content": "v=DMARC1; p=none; rua=mailto:dmarc@yourdomain.com",
        "ttl": 3600
      }'

    Verifica i record

    curl -s "https://api.dnscale.eu/v1/zones/{zone_id}/records" \
      -H "Authorization: Bearer $DNSCALE_API_KEY" | jq '.data.records[] | select(.type == "TXT")'

    Test e validazione

    Strumenti online

    Riga di comando

    # Controlla SPF
    dig TXT tuodominio.com +short
     
    # Controlla DKIM (sostituisci 'google' con il tuo selector)
    dig TXT google._domainkey.tuodominio.com +short
     
    # Controlla DMARC
    dig TXT _dmarc.tuodominio.com +short

    Invia un'email di test

    Il modo migliore per verificare che tutto funzioni è inviare un'email di test e controllare gli header:

    1. Invia un'email a un account Gmail
    2. Apri l'email → Clicca i tre puntini → "Mostra originale"
    3. Cerca:
      • spf=pass
      • dkim=pass
      • dmarc=pass

    RecordNomeTipoEsempio
    SPF@TXTv=spf1 include:_spf.google.com ~all
    DKIMselector._domainkeyTXTv=DKIM1; k=rsa; p=MIIBIjAN...
    DMARC_dmarcTXTv=DMARC1; p=none; rua=mailto:dmarc@example.com

    Come funzionano insieme:

    • SPF verifica che il server di invio sia autorizzato
    • DKIM verifica che il contenuto dell'email non sia stato modificato
    • DMARC indica ai riceventi cosa fare quando SPF o DKIM falliscono

    Ordine di implementazione consigliato:

    1. Configura SPF per primo (il più semplice)
    2. Configura DKIM con il tuo provider email
    3. Aggiungi DMARC in modalità monitoraggio (p=none)
    4. Analizza i report, risolvi i problemi
    5. Applica gradualmente DMARC (p=quarantinep=reject)