Woordenlijst - SPF
Wat is SPF - Sender Policy Framework?
Het Sender Policy Framework, kortweg, SPF, is een techniek om spam en e-mail spoofing te bestrijden. In een SPF-record kan je omschrijven welke servers namens een domeinnaam e-mails mogen verzenden.
Via het SPF wordt voor een domein aangegeven van waaruit e-mail legitiem mag worden verstuurd. Mail servers die een e-mail ontvangen kunnen de SPF informatie opvragen, opgeslagen in het TXT-record of het spf-record. Als de e-mail niet afkomstig is van een mailserver die gedefinieerd is in het SPF-record, dan wordt de mail gestopt. Via SPF kan een domeinnaamhouder tegengaan dat zijn domeinnaam misbruikt wordt voor het verzenden van spam-mail met zijn domeinnaam, het zogenaamde spoofing.
Voorbeeld
Een SPF record wordt opgeslagen in een txt-record en ziet er als volgt uit:
nomeo.be. IN TXT "v=spf1 a mx -all"
Hier wordt gedefinieerd dat voor het domein nomeo.be e-mail mag worden geaccepteerd van alle hostnamen gedefinieerd in de A-records en MX-records.
Werking van SPF
Bij ontvangst van een e-mail zal de ontvangende mailserver controleren of er een SPF-record bestaat op de domeinnaam die het bericht verstuurt. Is de e-mail afkomstig van bijvoorbeeld van 'test@nomeo.be', dan zal de mailserver het SPF-record van nomeo.be opvragen in de nameservers.
Indien een SPF-record wordt gevonden, dan worden de parameters die erin gedefinieerd zijn gecontroleerd met de informatie van de verzendende mailserver. Stemmen die overeen, dan weet de ontvangende mailserver dat de afzender van de e-mail gemachtigd is het bericht in kwestie te versturen. Wanneer uit die controle blijkt dat de e-mail (mogelijk) verstuurd werd vanuit een andere locatie, dan zal de mailserver het bericht markeren als spam of weigeren.
De interactie tussen de mailserver en het SPF-record kan een van de volgende resultaten hebben:
Resultaat | Verklaring | Actie |
Pass | Het SPF-record geeft aan dat de host de toestemming heeft om e-mails te verzenden | Accepteren |
Fail | Het SPF-record geeft aan dat de host geen toestemming heeft om e-mails te verzenden | Weigeren |
SoftFail | Het SPF-record geeft aan dat de host geen toestemming heeft om e-mails te verzenden | Accepteren en markeren als spam |
Neutral | Het SPF-record geeft aan dat er niets kan worden gezegd over de validiteit | Accepteren |
None | Er is geen SPF-record geconfigureerd, of het SPF-record leidt tot geen enkel resultaat | Accepteren |
PermError | Er treedt een permanente fout op. De oorzaak kan een foutief geconfigureerd SPF-record zijn | Niet nader gespecificeerd |
TempError | Er treedt een tijdelijke fout op in het overdragen van de parameters van het SPF-record | Accepteren of weigeren |
Ontleding
Het SPF-record bestaat uit verschillende onderdelen. Aan het begin staat altijd welke versie van het protocol wordt gebruikt:
v=spf1
Dan volgen één of meerdere mechanismen. Een mechanisme kan worden gevolgd door een dubbelpunt en bijhorende waarde. Die waarde kan bijvoorbeeld een IP-adres, MX-record of domeinnaam zijn.
Mechanismen | Verklaring |
all | Geeft alle uitgaande mailservers aan en wordt doorgaans aan het einde van het SPF-record geplaatst |
a | E-mails worden toegelaten wanneer het IP-adres waarvan de e-mail verzonden wordt gelijk is aan het A- of AAAA-record van de domeinnaam |
mx | E-mails worden toegelaten wanneer de e-mails verzonden worden vanuit het MX-record van de domeinnaam |
ptr | E-mails worden toegelaten wanneer het PTR-record correspondeert met het PTR-record van het domein |
ip4 | Geeft de IPv4 range aan van waaruit e-mails mogen worden verzonden. E-mails worden toegelaten wanneer het IP-adres van de verzender zich binnen die range bevindt |
ip6 | Geeft de IPv6 range aan van waaruit e-mails mogen worden verzonden. E-mails worden toegelaten wanneer het IP-adres van de verzender zich binnen die range bevindt |
exists | Is de domeinnaam gekoppeld aan een IP-adres, dan worden e-mails toegelaten. Het exists mechanisme wordt zelden gebruikt |
include | Verwijst naar de voorwaarden van een ander domein. Wordt aan die voorwaarden voldaan, dan worden de e-mails toegelaten |
Hoewel in theorie aan elk mechanisme vervolgens een zogenaamde qualifier kan worden toegevoegd, gebeurt dat in de praktijk bijna nooit. Doorgaans wordt er aan het einde van een SPF-record een qualifier toegevoegd. Een qualifier bepaalt hoe kritisch een mailserver moet omgaan met een verdachte e-mail.
Qualifier | Betekenis | Verklaring |
+ | Pass | De e-mails worden toegelaten |
- | Fail | De e-mails worden geweigerd |
~ | SoftFail | De e-mails worden toegelaten maar gemarkeerd als spam |
? | Neutral | Er wordt geen policy gedefinieerd |
De combinatie van die mechanismen en qualifiers vormt het SPF-record en bepaalt welke IP-adressen en mailservers e-mails mogen versturen namens een bepaalde domeinnaam.
Voorbeelden
Het meest eenvoudige SPF-record is:
v=spf1 mx ~all
en betekent dat alle mailservers die voor de domeinnaam zijn opgegeven als MX-record, e-mails mogen verzenden namens het domein. Alle andere servers hebben geen toestemming om e-mails te versturen.
Een complexer SPF-record:
v=spf1 a:domeinnaam.tips ~all
Het geeft aan dat e-mails mogen worden verzonden vanuit de mailservers op domeinnaam.tips. Alle andere mailservers hebben geen toestemming.
Een laatste voorbeeld:
v=spf1 ipv4:83.96.159.44/31 ~all
In dit SPF-record wordt de range van IP-adressen opgegeven van de mailservers die e-mails mogen verzenden. Mailservers met een ander IP-adres hebben geen toestemming om e-mails te verzenden.
Een SPF-record toevoegen
Via het controlepaneel van Nomeo kan je op je domeinnaam een handige wizard een SPF-record samenstellen en toevoegen. Ben je geen klant bij Nomeo dan kan je via mailcheck.be kan je zelf een record genereren. Nadien moet het manueel worden toegevoegd aan een domeinnaam.
Hierop moet je letten
Het is belangrijk om een SPF-record correct in te stellen. Een foutief ingesteld record ervoor zorgen dat geen enkele e-mail nog kan worden afgeleverd.
Bovendien mag een SPF-record niet meer dan 10 mechanismen bevatten. Wanneer dat aantal toch wordt overschreden, dan loopt de controle van het record mis, wat op zijn beurt leidt tot een permanente fout.
Tot slot is een SPF-record niet waterdicht. Een goed ingesteld record voorkomt dat kwaadwillige berichten worden verstuurd in jouw naam en markeert of weigert valse berichten. Het Sender Policy Framework is echter geen manier om àlle spam- en phishingmails te vermijden.
Alternatieve technologieën
DKIM : DomainKeys Identified Mail
SenderID : Soortgelijke technologie als SPF, met enkele toevoegingen.
SPF is de meest gebruikte techniek en wordt ook door de meeste spamfilters en mailservers ondersteund.
SPF bij nomeo
Via de nomeo-controlepanelen kunnen SPF-records ingesteld worden aan de hand van een handige wizard.