Biztonság Szakszó

SPF (Sender Policy Framework)

Szerző: · 8 perc olvasás · Frissítve:
SPF (Sender Policy Framework) - Biztonság (szakszó) a tudástárban
SPF (Sender Policy Framework) - Biztonság | eClick GEO-audit tudástár

Az SPF (Sender Policy Framework) egy DNS-ben publikált szabálylista, amely megmondja a fogadó levelezőszervereknek, mely IP-címek küldhetnek e-mailt a domained nevében. Egyetlen TXT-rekord a domain gyökerén, ami a borítékfeladó (MAIL FROM) domainjét hitelesíti.

Hogyan működik

A fogadó szerver kiolvassa a levél boríték-feladóját. Ebből a domainből lekéri a v=spf1 kezdetű TXT-rekordot. Összeveti a küldő szerver IP-címét a rekordban felsorolt mechanizmusokkal. Ha nincs egyezés, a rekord végén álló kvalifikátor dönt a sorsáról.

A rekord végén négyféle zárás állhat:

  • -all (fail): szigorú, minden más feladó hamis
  • ~all (softfail): gyanús, de átengedhető
  • ?all (neutral): nincs állásfoglalás, gyakorlatilag hatástalan
  • +all: mindenki küldhet a nevedben, ez sosem helyes

Mit nem old meg

Az SPF a boríték-feladót nézi, nem a levélben látható From: fejlécet. Emiatt önmagában nem véd a klasszikus márkahamisítás ellen. A levéltovábbítás (forward) is megtöri: a továbbító szerver IP-je már nem szerepel a rekordodban. Ezért kell mellé a DKIM (DomainKeys Identified Mail) kriptográfiai aláírása és a DMARC igazítási szabálya. A három együtt alkot működő rendszert, erről szól az E-mail-hitelesítés: SPF, DKIM, DMARC.

Mikor számít igazán

Minden domainnél számít, ami levelet küld: rendelés-visszaigazolás, jelszó-emlékeztető, hírlevél, ajánlatkérés. Ha nincs SPF, ezek jó eséllyel spam mappába esnek. A riportokban azt látjuk, hogy a magyar KKV-oldalak nagyjából harmadán van SPF-rekord, de az rossz: elavult szolgáltatót sorol, vagy ?all-lal zár. A nem levelező domainekre is kell rekord, csak ott a v=spf1 -all a helyes érték.

Röviden: az SPF egy DNS TXT-rekord, ami felsorolja a domainedről levelet küldő szervereket, és a végén megmondja, mi legyen a többivel.

Miért fontos

Kézbesíthetőség

A nagy szolgáltatók az SPF-et alapelvárásnak tekintik. A Gmail és a Yahoo 2024 óta minden tömeges küldőtől megköveteli az SPF vagy DKIM meglétét. Hitelesítés nélkül a levél spam mappába kerül, vagy el sem jut a címzettig.

Ez közvetlen üzleti veszteség. A visszaigazolatlan rendelés ügyfélszolgálati hívás lesz. A meg nem érkezett jelszó-emlékeztető elvesztett bejelentkezés.

Márkavédelem

SPF nélkül bárki írhat levelet a domained nevében. Számlacsalás, adathalászat, hamis akciólevél: mind a te neved alatt fut. A kár nem a szervereden keletkezik, hanem a bizalomban.

AI és keresők

A generatív keresők és az ügynökök a domain megbízhatóságát is mérlegelik. Az e-mail-hitelesítés része annak a technikai képnek, amit a domainedről össze lehet rakni. Nem rangsorolási tényező, de ugyanabba a sorba tartozik, mint a HTTPS és TLS vagy a biztonsági HTTP-fejlécek: az alapos üzemeltetés jele. Lásd még: Weboldal-biztonság: a fejlécektől a feltörésig.

Kikre vonatkozik

  • Minden domain, ami levelet küld: webshop, szolgáltatóoldal, blog kapcsolati űrlappal. Ha a rendszered e-mailt generál, kell SPF.
  • Nem levelező domainek: a parkoltatott, átirányított vagy csak kampányra használt domainek is célpontok. Nekik v=spf1 -all rekord dukál.
  • Aldomainek: az SPF nem öröklődik. A mail.pelda.hu vagy hirlevel.pelda.hu saját rekordot igényel, ha onnan is megy levél.
  • Staging és teszt környezet: ha nem küld valódi levelet, nem sürgős. Ha küld, ugyanúgy kell.
  • Kikre nem vonatkozik: olyan domainre, ami nem létezik a DNS-ben. Minden más esetben van teendő.

Hogyan ellenőrzöd

  1. Nyiss terminált, és kérdezd le a TXT-rekordot: dig +short TXT pelda.hu. Windows alatt: nslookup -type=TXT pelda.hu.
  2. Keresd a v=spf1 kezdetű sort. Ez az SPF-rekord.
  3. Olvasd végig a mechanizmusokat: include:, a, mx, ip4:, ip6:. Ezek engedélyezik a küldőket.
  4. Nézd meg a záró kvalifikátort a rekord végén.
  5. Ellenőrizd a DNS-lekérdezések számát. Minden include, a, mx, ptr, exists és redirect beleszámít, a limit 10.
  6. Egy kapott levélben nyisd meg a forrást (Gmail: „Eredeti megjelenítése”), és keresd az Authentication-Results fejlécet. Ott áll a spf=pass vagy spf=fail.

Jó jel

  • Pontosan egy v=spf1 rekord létezik a domainen
  • -all vagy ~all zárja a sort
  • Minden valódi küldőd szerepel benne (levelezőszerver, hírlevélrendszer, CRM, számlázó)
  • A DNS-lekérdezések száma 10 alatt van
  • A kapott leveleken spf=pass látszik

Rossz jel

  • Nincs v=spf1 rekord
  • Két vagy több SPF-rekord szerepel (ez permerror, az egész hitelesítés elbukik)
  • ?all vagy +all zárja a sort
  • permerror vagy too many DNS lookups hibaüzenet
  • Olyan szolgáltató include-ja, amit évek óta nem használsz

Hogyan javítod

WordPress

  1. Nézd meg, mivel küldesz levelet. Ha SMTP-plugin (WP Mail SMTP, FluentSMTP) fut, a beállított szolgáltató a küldőd.
  2. Ha a szerver saját mail() függvényét használod, a tárhelyszolgáltató levelezőszervere a küldő. Kérd el tőle a pontos include: értéket.
  3. A rekordot a DNS-kezelőben vedd fel, nem a WordPressben. A CMS-nek nincs köze a DNS-hez.
  4. Ha hírlevelet is küldesz (Mailchimp, Brevo, SendGrid), az ő include-jukat is vedd bele.

Shopify

  1. Shopify által küldött tranzakciós levelekhez a Shopify saját infrastruktúrája kell a rekordba.
  2. A Shopify admin Settings / Notifications részén ellenőrizd a küldő címet.
  3. Ha egyedi domaint állítottál be feladónak, a Shopify dokumentációjában megadott SPF-értéket vedd fel a DNS-be.
  4. Külön hírlevélrendszer esetén annak include-ját is add hozzá, ugyanabba az egy rekordba.

Unas

  1. Az Unas a saját szerverein keresztül küld rendelés-értesítőket.
  2. Az adminban a domain-beállításoknál találod a szükséges DNS-értékeket.
  3. A rekordot annál a szolgáltatónál vedd fel, ahol a domain névszerverei futnak.
  4. Ha saját levelezőszervered is van, annak MX-ét vagy IP-jét is engedélyezd.

Shoprenter

  1. A Shoprenter rendszerlevelei a platform szervereiről indulnak.
  2. Az adminban vagy a szolgáltatói dokumentációban nézd meg az aktuális include értéket.
  3. Vedd fel a meglévő rekordba, ne készíts másodikat.
  4. Küldj teszt-rendelést, és nézd meg a levél Authentication-Results fejlécét.

Egyedi fejlesztés

  1. Írd össze az összes küldési pontot: alkalmazásszerver, tranzakciós API (Postmark, Mailgun, Amazon SES), hírlevélrendszer, számlázóprogram.
  2. Építsd fel a rekordot egyetlen sorban, include: és ip4: mechanizmusokkal.
  3. Indulj ~all-lal. Figyeld a DMARC-jelentéseket két-három hétig.
  4. Ha tiszta a kép, szigoríts -all-ra.
  5. Ha közelíted a 10-es lekérdezési limitet, váltsd ki a felesleges include-okat fix ip4: értékekkel, vagy használj SPF-lapítást.
  6. Állítsd be mellé a DKIM (DomainKeys Identified Mail) aláírást és a DMARC rekordot.

Gyakori hibák

  • Két SPF-rekord egy domainen: a szabvány szerint ez permerror, és az egész SPF-ellenőrzés elbukik, nem az egyik rekord nyer.
  • ?all vagy +all zárás: az előbbi semmit nem állít, az utóbbi kifejezetten engedélyt ad bárkinek a nevedben küldeni.
  • Túl sok DNS-lekérdezés: 10 fölött a fogadó szerver permerror-t ad, és minden leveled hitelesítetlen marad.
  • Elhagyott szolgáltatók bennragadt include-ja: régi hírlevélrendszer IP-tartományáról bárki küldhet a domainod nevében.
  • Aldomain kihagyása: az SPF nem öröklődik, a hirlevel.pelda.hu saját rekord nélkül védtelen.
  • Csak SPF, DKIM és DMARC nélkül: a látható From: fejléc továbbra is hamisítható, a védelem féloldalas marad.
  • Új küldő bevezetése rekordfrissítés nélkül: az új számlázó vagy CRM első levele azonnal spam mappába kerül.

Technikai példa

Egy tipikus rekord, saját levelezőszerverrel és két külső szolgáltatóval:

pelda.hu.  IN  TXT  "v=spf1 mx include:_spf.google.com include:spf.brevo.com ip4:91.82.10.5 ~all"

Jelentése sorban: a domain MX-rekordjaiban szereplő szerverek küldhetnek, a Google Workspace és a Brevo szerverei küldhetnek, a megadott IP küldhet, minden más softfail.

Nem levelező domainre ez a helyes érték:

parkolt-domain.hu.  IN  TXT  "v=spf1 -all"

Ellenőrzés parancssorból:

# SPF-rekord lekérdezése
dig +short TXT pelda.hu | grep spf1

# A kapcsolódó DMARC-rekord
dig +short TXT _dmarc.pelda.hu

Egy sikeres hitelesítés így néz ki a kapott levél fejlécében:

Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of info@pelda.hu designates 91.82.10.5 as permitted sender) smtp.mailfrom=info@pelda.hu;
       dkim=pass header.i=@pelda.hu;
       dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=pelda.hu

Mit néz ebből a riport

Az audit lekérdezi a domain TXT-rekordjait, és megnézi, van-e érvényes v=spf1 rekord. Jelzi, ha több rekord létezik egyszerre, vagy ha a zárás ?all illetve +all. A DKIM (DomainKeys Identified Mail) és a DMARC állapotát külön vizsgálja, mert a három együtt ad teljes képet.

Gyakori kérdések

Elég az SPF, vagy kell mellé DKIM és DMARC is?
Önmagában kevés. Az SPF a boríték-feladót hitelesíti, nem a levélben látható From: címet, így a márkahamisítás ellen nem véd. A DKIM kriptográfiai aláírást ad a levélhez, a DMARC pedig összeköti a kettőt a látható feladóval. Mindhármat érdemes beállítani.
Mi történik, ha nincs SPF-rekordom?
A leveleid hitelesítetlenül érkeznek meg. A Gmail, az Outlook és a Yahoo ilyenkor jóval szigorúbban szűr, sok levél a spam mappába kerül. Emellett bárki küldhet a domained nevében, mert nincs mit ellenőrizni.
-all vagy ~all legyen a végén?
Indulásnak a ~all a biztonságos, mert nem dob el azonnal semmit. Miután a DMARC-jelentésekből látod, hogy minden valódi küldőd szerepel a rekordban, válts -all-ra. A ?all és a +all sosem jó választás.
Miért kap a hírlevelem spf=fail jelzést?
Valószínűleg a hírlevélszolgáltató szerverei nincsenek a rekordodban. Nézd meg a szolgáltató dokumentációját, és vedd fel az ajánlott include: értéket. Ha továbbítás miatt bukik, az normális jelenség, ilyenkor a DKIM menti meg a levelet.
Mennyi idő, míg életbe lép a módosítás?
A DNS-gyorsítótár TTL-értékétől függ, jellemzően néhány perc és néhány óra között. Módosítás előtt érdemes lecsökkenteni a TTL-t. Ellenőrzésnél mindig friss lekérdezést nézz, ne a böngésző vagy az operációs rendszer gyorsítótárát.

Források

Kapcsolódó fogalmak

A te oldaladon hogy áll a(z) „SPF (Sender Policy Framework)”?

Futtass egy SEO-auditot: pontszám, fejlesztői ítélet, a leggyorsabb javítások, és minden tételhez bizonyíték.

Ingyenes SEO-audit indítása