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

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 (SPF vagy DKIM) nélkül.

DKIM

DKIM vagyis  Domain Key Identified Mail egy kriptográfiai aláírás, melyet 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.

Hogyan érdemes?

Amennyiben feltüntettünk egy DKIM publikus kulcsot és nem használunk SPF-et, akkor az adott domainnel levelező szervereink mindegyike írja alá a privát kulcsunkkal a leveleinket. Ellenkező esetben a valószínűbb az, hogy spamként fognak rá tekinteni a fogadó levelező szerverek.

Ha használunk SPF -et és -all -t, akkor tudjuk azt, hogy a bejövő levél esetén a fogadó oldal csak azt a szervert ellenőrzi, amelyiktől éppen kapja a levelet. Az előzményekben olvasható többi kiszolgáló mindössze szöveg a levélben, azok tartalmát a fogadó oldal nem dolgozza fel SPF kiértékeléskor.
Ennek következménye az, hogy az e-mail továbbítóként beállított e-mail címünkről nem fog továbbítódni olyan kiszolgálóhoz a levelünk, amely SPF Policy -t (spf megfelelés hiánya esetén eldobja a levelet) használ. Kivéve, ha leveleinket DKIM aláírással is aláírjuk! Ez esetben a DKIM egyezés miatt elfogadhatja.

Példa: saját domainemen az egyik e-mail címemet átirányítom egy @gmail.com e-mail címre. Az én e-mail címemre megérkezik a levél, a továbbított címre viszont már nem, mert az eredeti feladó -all spf rekordot használ és nincs dkim aláírva a továbbított levél. Ekkor a levél visszautasításra kerül a @gmail.com címzettől.

Ne használjunk ptr rövidítést SPF rekordban! Ennek okáról az SPF-hez használható rövidítésekben olvashat, miért nem célszerű.

SPF,DKIM engedélyezése cPanelen

Az engedélyezésre cPanelen az Email Deliverability menü pontban van lehetőség a domain melletti Kezelés gomb használatával. A beállításhoz be kell lépni a cPanelre: Belépés a cPanelre.


Az SPF és DKIM beállítását, 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.

SPF rekordban használt rövidítések

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

A DKIM hitelesítheti 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 lehet, mivel SPFben nem szereplő, de DKIM hiteles kiszolgálóról küldhetünk úgy e-mailt, hogy nem mondjuk meg előre honnan fogjuk küldeni, csak azt, hogy mivel lesz aláírva.

Amennyiben fel tudjuk sorolni az összes olyan kiszolgálót amivel domain nevünkkel levelet küldünk, használjuk a -all -t SPF rekordunkban és tüntessük fel abban minden levél küldő kiszolgálónkat.

Egy e-mail érkezése esetén a fogadó oldalon vizsgálni szükséges azt, hogy SPF listán szerepel-e, és azt is, hogy 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.

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