Maak kennis met PostScale -- e-mail-API voor transactionele, inkomende en gemaskeerde adressen. PostScale

    E-mailbeveiliging met SPF, DKIM en DMARC

    Leer hoe je je domein beschermt tegen e-mailspoofing met SPF-, DKIM- en DMARC-records. Stapsgewijze handleiding voor dashboard- en API-configuratie op DNScale.

    E-mailspoofing stelt aanvallers in staat berichten te versturen die afkomstig lijken te zijn van jouw domein. Zonder goede authenticatie kan iedereen een e-mail sturen die beweert van ceo@jouwdomein.com te komen. SPF, DKIM en DMARC zijn DNS-gebaseerde standaarden die ontvangende mailservers helpen legitieme e-mails te verifiëren.

    Wat je leert

    • Hoe SPF geautoriseerde mailservers declareert
    • Hoe DKIM e-mails cryptografisch ondertekent
    • Hoe DMARC beleid definieert voor mislukte authenticatie
    • Het instellen van alle drie via het DNScale-dashboard en de API
    • Het testen en valideren van je configuratie

    SPF (Sender Policy Framework)

    Wat SPF doet

    SPF laat je specificeren welke IP-adressen en mailservers e-mail mogen versturen voor je domein. Ontvangende servers controleren je SPF-record om te verifiëren dat de afzender geautoriseerd is.

    SPF-recordsyntax

    Een SPF-record is een TXT-record op je domeinapex:

    v=spf1 [mechanisms] [qualifier]all
    ComponentBeschrijving
    v=spf1Versie-identifier (verplicht)
    include:domainSta servers toe die geautoriseerd zijn door het SPF van een ander domein
    aSta het IP van het A-record van het domein toe
    mxSta de MX-servers van het domein toe
    ip4:x.x.x.xSta een specifiek IPv4-adres of -bereik toe
    ip6:x::xSta een specifiek IPv6-adres of -bereik toe
    ~allSoft fail voor ongeautoriseerde afzenders
    -allHard fail voor ongeautoriseerde afzenders

    Veelvoorkomende SPF-voorbeelden

    Google Workspace:

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

    Microsoft 365:

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

    Meerdere providers:

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

    Eigen mailserver:

    v=spf1 ip4:203.0.113.5 mx ~all

    SPF best practices

    1. Begin met ~all (soft fail), ga over naar -all na testen
    2. Blijf onder 10 DNS-lookups (SPF-limiet)
    3. Neem alle verzendbronnen op: transactionele e-mail, marketingplatforms, enz.

    DKIM (DomainKeys Identified Mail)

    Wat DKIM doet

    DKIM voegt een digitale handtekening toe aan uitgaande e-mails. Je mailserver ondertekent elke e-mail met een privésleutel en je publiceert de bijbehorende publieke sleutel in DNS. Ontvangende servers gebruiken deze publieke sleutel om de handtekening te verifiëren, wat bewijst dat de e-mail niet is gewijzigd en van een geautoriseerde afzender komt.

    Hoe DKIM werkt

    1. Je mailserver genereert een cryptografische handtekening met een privésleutel
    2. De handtekening wordt toegevoegd aan de headers van de e-mail
    3. Ontvangende servers zoeken je DKIM-publieke sleutel op in DNS
    4. Ze verifiëren dat de handtekening overeenkomt met de e-mailinhoud
    5. Als geldig, slaagt de e-mail voor DKIM-authenticatie

    DKIM-recordsyntax

    Een DKIM-record is een TXT-record op selector._domainkey.jouwdomein.com:

    selector._domainkey.jouwdomein.com.  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCS..."
    TagBeschrijving
    v=DKIM1Versie-identifier
    k=rsaSleuteltype (meestal RSA)
    p=...Publieke sleutel (base64-gecodeerd)
    t=s(Optioneel) Strikte modus - exacte domeinovereenkomst vereist
    t=y(Optioneel) Testmodus

    DKIM-selectors

    De selector is een naam die identificeert welke sleutel moet worden gebruikt. Dit maakt het volgende mogelijk:

    • Sleutelrotatie zonder downtime
    • Verschillende sleutels voor verschillende maildiensten
    • Meerdere sleutels tegelijkertijd actief

    Veelvoorkomende selectorpatronen:

    • google voor Google Workspace
    • selector1, selector2 voor Microsoft 365
    • k1, k2, k3 voor aangepaste configuraties
    • mailjet, sendgrid voor diensten van derden

    Je DKIM-sleutels verkrijgen

    DKIM-sleutels worden gegenereerd door je e-mailprovider. Hier vind je ze:

    Google Workspace:

    1. Admin Console → Apps → Google Workspace → Gmail
    2. E-mail authenticeren → Nieuw record genereren
    3. Kopieer de TXT-recordwaarde

    Microsoft 365:

    1. Microsoft 365 Defender → E-mail & samenwerking → Beleidsregels
    2. DKIM → Selecteer domein → DKIM-sleutels aanmaken
    3. Kopieer beide selector1- en selector2-records

    Diensten van derden (SendGrid, Mailjet, enz.):

    • Controleer het dashboard van je provider voor DNS-instellingen
    • Ze leveren de selectornaam en publieke sleutel

    DKIM-recordvoorbeelden

    Google Workspace:

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

    Microsoft 365:

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

    Aangepast/derden:

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

    DKIM best practices

    1. Gebruik 2048-bit sleutels - 1024-bit sleutels zijn steeds kwetsbaarder
    2. Roteer sleutels periodiek - Minstens jaarlijks voor de veiligheid
    3. Houd privésleutels veilig - Stel ze nooit bloot in DNS of logs
    4. Gebruik unieke selectors - Verschillende selectors voor elke dienst
    5. Test voor het afdwingen van DMARC - Zorg dat DKIM slaagt voor p=reject

    DMARC (Domain-based Message Authentication)

    Wat DMARC doet

    DMARC bouwt voort op SPF (en DKIM) om het volgende te bieden:

    • Een beleid dat ontvangers vertelt wat te doen met mislukte e-mails
    • Rapportage zodat je authenticatieresultaten kunt monitoren

    DMARC-recordsyntax

    Een DMARC-record is een TXT-record op _dmarc.jouwdomein.com:

    v=DMARC1; p=policy; [optionele tags]

    Verplichte tags:

    TagBeschrijving
    v=DMARC1Versie-identifier
    p=none|quarantine|rejectBeleid voor mislukte e-mails

    Optionele tags:

    TagBeschrijving
    rua=mailto:adresBestemming voor samenvattende rapporten
    ruf=mailto:adresBestemming voor forensische rapporten
    pct=100Percentage waarop beleid wordt toegepast (standaard 100)
    sp=policySubdomeinbeleid

    DMARC-beleidsopties

    BeleidActieWanneer te gebruiken
    p=noneAlleen monitorenInitiële configuratie
    p=quarantineNaar spam sturenTussentijds
    p=rejectVolledig blokkerenVolledige bescherming

    DMARC-voorbeelden

    Monitormodus:

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

    Quarantainemodus:

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

    Afwijsmodus:

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

    Aanbevolen uitrol

    1. Week 1-2: p=none om te monitoren
    2. Week 3-4: Rapporten beoordelen, problemen oplossen
    3. Week 5-6: p=quarantine met pct=25
    4. Week 7-8: Verhoog naar pct=100
    5. Week 9+: Overgaan naar p=reject

    Configuratie via het DNScale-dashboard

    SPF-record aanmaken

    1. Log in op dnscale.eu
    2. Selecteer je domein
    3. Klik op Add Record
    4. Configureer:
      • Name: Laat leeg (apex)
      • Type: TXT
      • Content: v=spf1 include:_spf.google.com ~all
      • TTL: 3600
    5. Klik op Create Record

    DKIM-record aanmaken

    1. Haal je DKIM-publieke sleutel op bij je e-mailprovider (zie "Je DKIM-sleutels verkrijgen" hierboven)
    2. Klik op Add Record
    3. Configureer:
      • Name: google._domainkey (of de selector van je provider)
      • Type: TXT
      • Content: v=DKIM1; k=rsa; p=MIIBIjANBgkq... (je publieke sleutel)
      • TTL: 3600
    4. Klik op Create Record

    Opmerking: Voor Microsoft 365 moet je twee records aanmaken (selector1 en selector2).

    DMARC-record aanmaken

    1. Klik op Add Record
    2. Configureer:
      • Name: _dmarc
      • Type: TXT
      • Content: v=DMARC1; p=none; rua=mailto:dmarc@jouwdomein.com
      • TTL: 3600
    3. Klik op Create Record

    Configuratie via de DNScale API

    Authenticatie

    export DNSCALE_API_KEY="your-api-key"

    Zone-ID ophalen

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

    SPF-record aanmaken

    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
      }'

    DKIM-record aanmaken

    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
      }'

    Vervang google._domainkey door je selector en de publieke sleutel door je daadwerkelijke DKIM-sleutel.

    DMARC-record aanmaken

    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@jouwdomein.com",
        "ttl": 3600
      }'

    Records verifiëren

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

    Testen en validatie

    Online tools

    Opdrachtregel

    # SPF controleren
    dig TXT jouwdomein.com +short
     
    # DKIM controleren (vervang 'google' door je selector)
    dig TXT google._domainkey.jouwdomein.com +short
     
    # DMARC controleren
    dig TXT _dmarc.jouwdomein.com +short

    Een test-e-mail versturen

    De beste manier om alles te verifiëren is een test-e-mail te sturen en de headers te controleren:

    1. Stuur een e-mail naar een Gmail-account
    2. Open de e-mail → Klik op de drie puntjes → "Origineel weergeven"
    3. Zoek naar:
      • spf=pass
      • dkim=pass
      • dmarc=pass

    Samenvatting

    RecordNaamTypeVoorbeeld
    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

    Hoe ze samenwerken:

    • SPF verifieert dat de verzendende server geautoriseerd is
    • DKIM verifieert dat de e-mailinhoud niet is gewijzigd
    • DMARC vertelt ontvangers wat te doen wanneer SPF of DKIM mislukt

    Aanbevolen implementatievolgorde:

    1. Stel eerst SPF in (het eenvoudigst)
    2. Configureer DKIM met je e-mailprovider
    3. Voeg DMARC toe in monitormodus (p=none)
    4. Beoordeel rapporten, los problemen op
    5. Verscherp DMARC geleidelijk (p=quarantine → p=reject)