SPF

Wat is SPF

SPF (RFC 7208) is een whitelist dat je in DNS opneemt. In deze whitelist staan IP nummers of DNS records waarin een groep IP adres staan.

Je kunt het vergelijken het met een toegangspoort. Staat het nummer van het pasje op de goedgekeurde lijst (whitelist), dan gaat de poort open. Voor pasjes die niet op de whitelist staan blijft de poort gesloten.

In een e-mail is een administratie te vinden, zoals het IP adres waar de e-mail vandaan komt. De ontvangende mailserver zoekt hiernaar en tevens welk domein de e-mail claimt afkomstig te zijn (afzender).

De ontvangende mailserver zoekt vervolgens in de ‘SPF record’ van dat domein of het IP adres hier in staat. Zo ja, dan mag dat IP adres inderdaad namens dat domein de e-mail versturen.

Toegangspoortje met glazen poort en kaartlezer dat in een gebouw staat.

Wat gaat er mis zonder SPF

Zonder SPF is er voor de ontvangende mailserver niet vast te stellen of de mail ook echt van jouw domein afkomstig is. Hierdoor loop je het risico dat e-mails naar de spamfolder worden verplaatst of zelfs helemaal niet aankomen, want ieder mailsysteem kan namens jouw domein e-mail versturen als de e-mails toch worden doorgelaten.

Wat zou het betekenen voor jouw organisatie als jouw (potentiele) klanten e-mails uit jouw naam ontvangen met bestanden of links die schade tot hun systemen of zelfs netwerk veroorzaken? Wat zullen zij doen als ze zien dat je dit had kunnen voorkomen?

De persoonlijke en zakelijke GMail laat het heel duidelijk zien, als SPF bij een domein niet aanwezig is, door hier een grijs stopbord met een groot rood vraagteken te plaatsen bij de afzender. Zonder SPF kan niemand zien, ook Google niet, of de zender van de mail wel de echte eigenaar is.

Afbeelding van een e-mailbericht geopend in GMail. Het mist de regels "Verzonden door" (dit is SPF) en "Ondertekend door" (dit is DKIM).

Domein parkeren met SPF

Heb je een domein dat je wilt parkeren of denk je er over om een domein te kopen die je niet zult gebruiken, bijvoorbeeld omdat het veel op het domein van jouw bedrijf lijkt (met/zonder streepje, lidwoord, .com, etc.), dan is SPF ook nodig. Ook al gebruik je het niet voor een website of e-mail.

Door een geparkeerd domein toch van een ‘SPF record’ te voorzien stel je wie er namens het domein e-mail mag versturen. De whitelist maak je leeg, waardoor het ‘SPF record’ er als volgt uitziet:

"v=spf1 -all"

Meer is het niet. Er zijn geen IP adressen of namen, omdat niemand namens jouw domein een e-mail mag versturen. Besluit je later het domein te gebruiken, dan vul je de SPF met IP adressen en/of hostnamen.

Een fietser die een fiets in een vol fietsenrek parkeert. (bron: Ronan Kruithof, Unsplash)

Hoe werkt SPF?

De grote lijnen, hoe SPF werkt, staan in de “Introductie” hierboven. Dit deel beschrijft de technische werking in, hopelijk, begrijpelijke taal.

Jouw SPF wordt gecontroleerd

Maildiensten, als Outlook.com (voorheen Hotmail), GMail / Workspace, webhosting bedrijven, etc., controleren met SPF of een mailserver namens het domein van de afzender mag sturen.

Een e-mail bevat een stuk administratie (e-mail- of message ‘header’) dat je niet ziet, maar altijd aanwezig is en wordt meegestuurd. In de afbeelding hieronder een nieuwsbrief van ‘verkoop@routerkampioen.nl‘, die door een externe maildienst wordt verzorgt. Hiermee is het niet de maildienst, maar het domein dat de afzender is.

De ontvangende maildiensten, van de abonnees, kijken in deze e-mail ‘header’ welk IP adres (computer met mail software) deze e-mail heeft verstuurt (in de afbeelding aangeduid met C). Vervolgens kijkt het in het domein van de afzender, in dit geval routerkampioen.nl, of dit IP adres in de ‘SPF record’ van het domein van de afzender is opgenomen (in de afbeelding aangeduid met B). In dit voorbeeld is dat zo. GMail laat dit zien met een extra regel “Verzonden door”.

In de DNS is in (de afbeelding aangeduid met B) ‘SPF record’ van het domein (routerkampioen.nl) de naam”spf.eprov.eu” opgenomen. Deze DNS naam hoort bij de nieuwsbrieven maildienst en bevat deze IP adressen. In de e-mail van een abonnee staat bijvoorbeeld het IP adres 161.51.101.22. In SPF staat een verzameling IP adressen aangeduidt als “ip4:161.51.101.0/24” (zgn “CIDR notering“). Ontvangende mailservers controleren op soortgelijke manier. Dat is handig en onderhoudsvrij, maar hoe kom je aan die SPF gegevens?

Hoe stel je SPF in?

Het instellen van SPF doe je bij je hostingprovider in de DNS beheer. Als het goed is staat er al een SPF met daarin in ieder geval de mailservers van de hostingprovider. Een domein heeft slechts 1 ‘SPF record’.

Een ‘SPF record’ is een zogenaamd TXT record. Het heeft een begin en een eind. Het begint met “v=spf1”, gevolgd door de IP nummers / DNS namen, en eindigt met “-all”

Voorbereiding

Hoe kom je aan die SPF gegevens van de andere e-mail diensten? In de afbeelding staat als voorbeeld Laposta. Google op “SPF TXT record Laposta” (zonder ” tekens) en als het goed is staat deze url bovenaan de zoek resultaten.

Stel dat je liever overstap van de e-mail van de hosting provider naar Microsoft 365 (Office) of Google Workspace. Voor beide vind je de SPF instellingen in deze support pagina’s:

Met Googlen kom je aan die gegevens. Bijvoorbeeld “SPF TXT record Mailchimp”. Begin dus “SPF TXT record”, gevolgd door de maildienst. In de Google resultaten, kies dan altijd de officiële website van de maildienst.

Instellen

Het instellen is per hostingprovider verschillend, maar het kan er uit zien als onderstaand willekeurig voorbeeld:

v=spf1 a mx ip4:185.189.236.0/22 include:_spf.google.com ~all

Voor meer voorbeelden en meer mogelijkheden kun je terecht op Open SPF, deze Nederlandse Wikipedia of op de Engelse.


Controleer de nieuwe SPF

Is de SPF zoals je het zou verwachten? Gebruik dan de knop hieronder. Houdt er rekening mee dat

  • er niet meer dan 10 (dns) lookups in de SPF mogen zitten en dat SPF bij sommige maildiensten ook lookups bevat
  • wanneer je meer dan 255 karakters in het SPF wil onderbrengen je deze officiele techniek gebruikt.

Afsluiten met ~all of -all (technisch)

Het afsluiten van SPF (“all”) blijkt onder techneuten een onderwerp van discussie en ik ben altijd voorstander van de -all (hardfail). Want als je zeker bent van de whitelist, dan kies je toch automatisch voor de hardfail? Maar inmiddels denk ik dat softfail een goed idee is.


De volgende stap is het instellen van DKIM. >>