Hogyan állítsam be az SPF és DKIM rekordot?

SPF

SPF vagyis Sender Policy Framework – Magyarul talán küldő szerver szabályozásnak mondhatnánk.
Célja, hogy előre kijelentsük saját domainünkről, melyik szerverről fogjuk elküldeni saját leveleinket. Így azok levelei akik más szerverről küldenek ami nevünkben(a mi domainünkkel) e-mailt, várhatóan a fogadó oldalon a spam mappában fognak landolni. Azt, hogy figyelembe veszi-e és milyen súllyal, a fogadó oldal dönti el.
Használata nem kötelező, csak ajánlott. A cikk 2015 -ös eredeti megjelenése óta 2022-re annyiban változott az e-mail elfogadási gyakorlat, hogy nagyobb szolgáltató már nem fogad el e-mailt legalább 1 féle hitelesítés nélkül.

DKIM

DKIM vagyis  Domain Key Identified Mail egy kriptográfiai aláírás, melyet a a biztonságosan levelezés érdekében fejlesztettek ki. Biztosítja, hogy a bejövő üzenetek módosítatlanok, és az általuk megjelenített feladótól származnak.
Működése: A publikus kulcsunkat megjelenítjük a dns rekordjaink között, a privát kulcsunkkal pedig aláírást készít levelünkhöz levelező szerverünk. A folyamat automatikus. A fogadó oldal megkísérli publikus kulcsunkkal visszakódolni az aláírást. Ha a visszakódolás sikeres, akkor a levélhez csatolt DKIM aláírás érvényes (valid), következésképpen a levelet megbízható küldő küldte.

SPF,DKIM engedélyezése

Az engedélyezésre Cpanelen az Email Deliverability menü pontban van lehetőség a domain melletti Kezelés gomb használatával.

Hogyan érdemes?

Az első és legfontosabb, hogy ne mondjanak ellent beállításaink egymásnak. Vagyis, ha feltüntettünk egy DKIM publikus kulcsot és nem használunk SPF-et, akkor levelező szervereink mindegyike írja alá a privát kulcsunkkal a leveleinket. Ha használunk SPF -et és -all -t, akkor minden DKIM hitelesen küldő szerver szerepeljen benne.
Ezt, ha mindössze egy cPaneles webtárhelyet használunk levél küldéshez, egyszerű megtenni.

Az Install The Suggested Record gombra kattintva a cpanel által javasolt SPF/DKIM rekord bekerül a domain zónájába.

Beállítás után mindent automatikusan intéz a cPanel. Azonban, ha több szerverről is küldünk e-mailt, mindegyiken a megfelelő beállításnak szükséges szerepelnie. Van arra mód, hogy több DKIM kulcsot használjunk több különböző küldőhöz, ekkor mindegyik publikus kulcsot szükséges a DNS rekordjaink között feltüntetni. Ilyen esetben a DKIM selector dönti el, melyik privát kulcshoz melyik publikus tartozik.
A DKIM hátránya az, hogy nem tudunk benne olyan levél küldő szervert meghatározni, amelyik nem képes aláírni a leveleit.

Az SPF rekordban azokat a küldő szerver az ip címeket és/vagy host neveket szükséges megadni, amiről a domainhez kapcsolódó leveleket kiküldjük. Vannak előre meghatározott rövidítések például:

  • a (a domain www vagy más előtag nélkül A rekordját jelenti), továbbá
  • mx (Mail eXchanger – a domain összes bejövő levelező szerverét vagyis MX rekordját jelenti), illetve
  • ptr (a domainre illeszkedő ReverseDNS bejegyzést jelöli).
  • ~all (mindig a rekord végén áll, jelentése az itt felsorolt ip címek és hostok és azon kívül bárki más is lehet engedélyezett küldő)
  • -all (mindig a rekord végén áll. Jelentése: csak az itt felsorolt host -ok küldhetnek e-mailt ezzel a domainnel)

A ptr használata nem ajánlott, mert a PTR rekordot nem a domain kezelője, hanem az ip cím szolgáltatója állítja be egy adott ip címhez. Tehát, ha például Mozambikban – elnézést kérünk a mozambiki szolgáltatóktól – az egyik szolgáltató úgy dönt, hogy Ügyfele kérésére a mi domain nevünket állítja be reverse dns bejegyzésnek az általa biztosított ip címhez, azt bármikor megteheti a domain tényleges használójának tudta nélkül. Ha ezzel együtt mi a ptr rövidítést is feltüntettük az spf rekordunkban, akkor hitelesítettük bárkinek a domain nevünkkel való levélküldését, akinek a szolgáltatója hajlandó a mi domainünket az általa biztosított ip címhez beállítani.

SPF+DKIM együtt a gyakorlatban

Az eredeti elképzelés szerint, a DKIM hitelesíti azokat a hostokat, amelyek tudnak DKIM aláírást készíteni, az SPF rekord pedig tartalmazza azokat a hostokat (vagy azokat is), amelyek esetleg nem, de nyitva hagyhatja a küldő levelező szerverek listáját a ~all használatával azért, hogy ne legyen szükséges minden DKIM hiteles küldő levelező szervert feltüntetni a küldő levelező szerverek közül. Ez biztonsági szempontból hasznos, mivel küldhetünk úgy e-mailt, hogy nem mondjuk meg előre honnan fogjuk küldeni, csak azt, hogy mivel lesz aláírva. Azonban az e-mail hitelesség vizsgálatát bonyolultabbá teszi, hiszen egy e-mail érkezése esetén a fogadó oldalon vizsgálni szükséges azt, hogy SPF listán szerepel-e, ha nem, akkor DKIM aláírása van-e és az hiteles-e. Ha egyik sem, akkor az e-mail visszautasítható vagy spamnek jelölhető a fogadó oldalon.
Ha azonban az SPF rekordban ptr -t szerepeltetünk, akkor bárki küldhet a domain nevünkkel e-mailt, egyformán hiteles lesz az általunk küldött DKIM aláírás nélküli e-maillel.

Ezek miatt a jelenlegi gyakorlat az, hogy a ptr rövidítést tartalmazó spf rekordot nem tekintik hitelesnek, lévén nem korlátoz és nem hitelesít semmit. A ~all -t tartalmazó spf rekordot nem tekintik hitelesnek, ha nincs legalább egy DKIM rekord a domainhez. Van olyan szolgáltató, amely akkor sem, ha van.

Így a javasolt SPF+DKIM beállítás: használjuk a -all -t és adjunk meg minden küldőt az SPFben továbbá DKIM hitelesítsünk minden levélküldő szerveren megfelelően, ha használunk DKIM-et.

A fogadó oldal dönthet úgy is, hogy egyik megléte vagy hiánya sem befolyásolja a kapott e-mailt, csak tartalom alapján dönti el az e-mail osztályozását. Ezt a működést tekinthetjük a tradicionális e-mail kezelésnek, ami az SPF+DKIM rekordok megjelenése előtt volt használatban. Ez manapság módosul annyiban, hogy spam pontszámot kap az érvénytelen DKIM vagy az érvénytelen SPF rekord vagy az SPF rekord hiánya.

Példa SPF rekordra

Példa SPF beállításra:
127.0.0.1 a bejövő levelek kiszolgálója és az irodai levelek kiküldése is erről az ip című szerverről történik.
127.0.0.2 az a szerver, amely a hírleveleket küldi ki ugyanehhez a domainhez kapcsolódó e-mail címmel.
Ebben esetben például így nézhet ki az spf rekord:
v=spf1 +a +mx +ip4:127.0.0.1 +ip4:127.0.0.2 -all
Ami a zóna fájlban már így szerepel:
azondomaineve.hu IN TXT “v=spf1 +a +mx +ip4:127.0.0.1 +ip4:127.0.0.2 -all”

Egyetlen oka van annak, hogy a példában az mx rekordot és a 127.0.0.1 -et is feltüntettük: ha másik szerverre például 127.0.0.3 -ra módosul az mx rekordunk, akkor az spf hitelesítés továbbra is érvényes marad, hiszen a régi (127.0.0.1) és az új (+mx) is szerepel az SPF-ben, tehát mindkettő megfelelően hitelesített. A 127.0.0.1 és 127.0.0.2 helyére mindig a valós, küldő szerver ip címeinket szükséges feltüntetni az SPF rekordban.

SPF készítés és validációs linkek

Az SFP bejegyzés szintaktikai helyességét ellenőrizheti például ennek az oldalnak (SPF Record Testing Tools) segítségével.

Angol nyelvű szintaktikai leírás az SPF-ről.

Összeállíthatjuk igényeink szerinti SPF rekordunkat a cPanelen vagy az nki.gov,hu spf eszköztárával vagy ezzel az eszközzel (angol nyelvű): SPFWizard.net