Modul 4 · 4.3
SPF: hvem må sende mail på vegne af dit domæne?
Modul 4: Records til e-mail · Læsetid: 10 minutter
Læringsmål: Efter denne lektion kan du læse en SPF-record, tilføje en tjeneste korrekt og undgå de tre mest kendte SPF-fejl: to records, +all og mere end ti opslag.
Centrale begreber: SPF, v=spf1, mekanisme (a, mx, ip4, ip6, include), kvalifikator (+ - ~ ?), all, én SPF-record, grænse på 10 DNS-opslag, envelope-afsender (Return-Path)
Problemet: alle kan bruge dit navn
E-mail blev opfundet i 1980'erne til et lille, venligt internet. Enhver mailserver kan sende en mail med info@example.com som afsender, også selvom den server slet ikke har noget med example.com at gøre. Det udnytter svindlere flittigt.
SPF (Sender Policy Framework, RFC 7208) er et første skridt til at forhindre det. I en SPF-record angiver du, hvilke servere der må sende mail på vegne af dit domæne. En modtagende mailserver tjekker ved hver indkommende mail: kommer denne mail fra en server, der står på listen?
Se det som en gæsteliste ved en dør. Dørmanden (den modtagende mailserver) henter listen hos dit domæne og tjekker, om gæsten (den afsendende server) står på den.
Hvordan ser en SPF-record ud?
En SPF-record er en TXT-record på dit domænenavn, der begynder med v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Du læser den fra venstre mod højre. Modtageren gennemgår delene en efter en og stopper ved den første, der passer.
| Del | Betydning |
|---|---|
v=spf1 | Dette er en SPF-record. Skal stå forrest. |
a | Den eller de servere, som dit domænes A/AAAA-record peger på, må sende mail. |
mx | Serverne fra dine MX-records må sende mail. |
ip4:192.0.2.25 | Denne IPv4-adresse må sende mail. Også et interval kan bruges: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Det samme for IPv6. |
include:spf.mailer.example | Alle servere, der står i SPF-recorden for spf.mailer.example, må også sende mail. Sådan tilføjer du en ekstern tjeneste. |
~all | Alle andre servere: mistænkelige. Står altid til sidst. |
Afslutningen: ~all, -all, ?all eller +all
Foran hver del kan der stå et tegn, der angiver, hvad der sker, hvis delen passer. Ved all (som altid passer) gør det tegn hele forskellen:
| Afslutning | Navn | Betydning |
|---|---|---|
-all | fail | Andre servere må ikke. Modtagere må afvise mailen. |
~all | softfail | Andre servere er mistænkelige. Mailen bliver som regel accepteret, men oftere vurderet som spam. |
?all | neutral | Ingen udtalelse. Næsten nytteløst. |
+all | pass | Enhver server i verden må sende mail på dine vegne. Brug det aldrig. |
Står der intet tegn, gælder +. mx betyder altså +mx.
Hvilken vælger du? ~all er en sikker standard. -all er strengere og god, hvis du er sikker på, at alle dine afsendere står i recorden. Bruger du DMARC (lektion 4.5), er det til sidst DMARC-politikken, der afgør, hvad der sker; mange administratorer vælger derfor ~all.
Fejl 1: to SPF-records
Der må kun være én SPF-record per domæne. Finder modtageren to, bliver resultatet en fejl (permerror), og din SPF tæller slet ikke. Det er værre end ingen SPF.
Det går ofte galt i praksis. En nyhedsbrevstjeneste eller Microsoft 365 siger "tilføj denne SPF-record", og pludselig står der en ekstra v=spf1-record ved siden af den gamle. Løsningen: tilføj den nye tjeneste til den eksisterende record.
Forkert:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Korrekt:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Vær opmærksom på, at du ikke fjerner servere, du stadig bruger, når du lægger dem sammen. Sender din hjemmeside mail via dit hostingselskabs server, skal den blive stående, selvom din almindelige mail går til Microsoft 365. En hostingpakke har ofte allerede en standard-SPF med en include fra hostingselskabet (hos WebOké er det for eksempel include:webawere.nl); lad den blive stående, så længe din hjemmeside eller formularer sender mail via den server.
Fejl 2: +all eller en for rummelig record
+all til sidst, eller et enormt interval som ip4:0.0.0.0/0, betyder, at alle må sende mail. Så beskytter din SPF ikke længere noget, og spamfiltre ser det som et dårligt tegn.
Fejl 3: mere end ti opslag
For at kontrollere en SPF-record skal modtageren nogle gange stille ekstra DNS-forespørgsler. Hver include, a, mx, exists, ptr og redirect koster et opslag, og en include tæller også alle opslag i den record, den peger på. Ifølge RFC 7208 må totalen ikke overstige ti. Sker det alligevel, bliver resultatet permerror, og SPF fejler.
ip4 og ip6 koster ikke et opslag. all heller ikke.
Derudover må højst to opslag komme "tomt" tilbage (et navn, der ikke findes, eller intet svar har). En include til en tjeneste, du ikke bruger længere, og som har fjernet sin record, kan altså også give problemer.
Bruger du mange tjenester, så tæl efter med et SPF-kontrolværktøj (lektion 8.3) og fjern tjenester, du ikke bruger længere.
Hvad SPF ikke gør
SPF kontrollerer envelope-afsenderen: den tekniske afsenderadresse (Return-Path), som mailservere bruger indbyrdes. Det er ikke altid den samme adresse som "Fra:"-adressen, du ser i dit mailprogram. En nyhedsbrevstjeneste sender ofte med sin egen Return-Path. SPF alene stopper derfor ikke enhver forfalsket afsender. Det er DKIM (lektion 4.4) og DMARC (lektion 4.5), der sørger for det.
SPF går også i stykker ved videresendelse: sender du mail automatisk videre til en anden adresse, kommer mailen frem hos slutmodtageren fra en server, der ikke står i din SPF.
Hvorfor det betyder noget
Store mailudbydere er blevet strengere. Siden februar 2024 kræver Gmail og Yahoo, at alle, der sender mail, mindst har SPF eller DKIM, og at den, der sender meget mail (mere end omkring 5.000 om dagen), har SPF, DKIM og DMARC. Microsoft stiller siden maj 2025 det samme krav for Outlook.com, Hotmail og Live.com. Selvom du sender lidt mail, hjælper en god SPF-record mod spammappen.
I praksis: sådan ser det ud i et panel
I dette eksempel bruger vi DirectAdmin. I DNS-administration klikker du på blyanten ud for den TXT-record, der begynder med v=spf1. DirectAdmin åbner en SPF-hjælper: ved Inkluder domæne indtaster du tjenestens domæne (uden include:), ved Tilstand vælger du Blød afvisning (~all) eller Fejl (-all). Nederst ser du hele recorden. Mit WebOké har en lignende SPF-hjælper under fanen DNS.
Andre paneler har ikke altid sådan en hjælper. Så redigerer du TXT-recorden som almindelig tekst; indholdet er præcis det samme.
Opsummering
- SPF er en TXT-record med
v=spf1, der angiver, hvilke servere der må sende mail på vegne af dit domæne. - Præcis én SPF-record per domæne. Ny tjeneste? Udvid den eksisterende record.
- Afslut med
~alleller-all, aldrig med+all. - Højst ti DNS-opslag (
include,a,mx,exists,ptr,redirect),ip4/ip6tæller ikke med. - SPF ser på envelope-afsenderen; for ægte beskyttelse har du også brug for DKIM og DMARC.
Quiz
Opgave
Opgave Z4.3: Slå SPF op. Find SPF-recorden for google.com (eller for dit eget domæne). Indsæt hele recorden, og angiv, hvad den slutter med (~all, -all, ?all eller +all). Bruger du dit eget domæne, tjekker opgaven også, om du har præcis én SPF-record.
Opgave O4.3: Indstil det selv i din øvelseszone. I øvelseszonen bruger du en fiktiv tjeneste; ved dit rigtige domæne bruger du den rigtige include, din mailudbyder angiver (for eksempel include:_spf.google.com). Lav i din øvelseszone en SPF-record, der tillader: zonens MX-servere (<code>.dnspractice.eumx), adressen 192.0.2.25 og øvelsestjenesten _spf.mailsuite-demo.dnspractice.eu. Andre servere er mistænkelige eller ikke tilladt, så recorden slutter med ~all eller -all.
Opgave O4.3
Denne opgave laver du i din egen øvelseszone: en rigtig DNS-zone på WebOkés navneservere, kun til dig. Tilmeld dig med din e-mailadresse. Du får et login-link på mail og kommer derefter tilbage til denne lektion. Vi bruger kun din adresse til kurset.
Læs mere
Trinnene i disse artikler gælder for WebOkés paneler; i andre paneler fungerer det på lignende vis.
- DirectAdmin vejledning 5.7: SPF opsætning og udvidelse
- Hvordan fungerer SPF-registreringen i DNS?
- Tilføj eller ret en SPF-record i DirectAdmin
- WebOké vejledning 5.5: DNS-hjælpere: MX, SPF, DMARC, CAA og SRV
- RFC 7208 (SPF), især afsnit 4.6.4 (grænsen på ti opslag og to tomme opslag)
