Přeskočit obsah

Princip SPF a jeho nastavení

Nastavení SPF (Sender Policy Framework) záznamu představuje jedno z opatření proti podvrženým e-mailům a tím i jednu z metod boje proti spamu.

Ve specifikaci protokolu SMTP není zahrnuto žádné ověření odesilatele, každý si může v odchozím e-mailu nastavit adresu odesilatele dle libosti. Útočník tak může zneužít jakoukoliv e-mailovou adresu, že jí dosadí do hlavičky jako odesilatele jím odesílaných e-mailů bez vědomí skutečného vlastníka adresy.

Tento DNS záznam typu TXT představuje seznam IP adres, ze kterých je pro danou doménu dovoleno odesílat poštu. Také obsahuje instrukci, jak by kontrolující protistrana (server na straně příjemce) měla naložit s e-mailem odeslaným z IP adresy nevyhovující záznamu.

SPF záznam může vypadat například takto:

v=spf1 mx -all

Záznam v tomto tvaru říká, že pro doménu, na které je nasazen, jsou oprávněny odesílat poštu pouze servery uvedené v MX záznamech a pošta odeslaná z jiných má být zahozena.

Toto restriktivní řešení má ale možné nevýhody. Některé uživatele nutí jejich ISP používat vlastní SMTP servery, řada lidí má také nastavené automatické přeposílání příchozích zpráv na jinou adresu. Ve všech těchto a dalších podobných případech by e-mail, který nevyhoví SPF záznamu, byl bez milosti ihned zahozen. Vhodnější je tedy použít záznam, kde je vlnovka (softfail) namísto mínusu (fail):

v=spf1 mx ~all

E-maily došlé z IP adresy neuvedené v SPF záznamu budou při vyhodnocení penalizovány, ale o jejich zahození či zařazení do spamu bude rozhodnuto ještě podle dalších kritérii dle nastavení antispamového řešení na straně serveru příjemce (odesílající IP adresa na blacklistu, výskyt klíčových slov, odkazů atd.).

Dalším typickým příkladem může být situace, kdy je potřeba povolit nejen poštovní servery uvedené v MX záznamech, ale zároveň s nimi i další IP adresu, například serveru, ze kterého odcházejí newslettery:

v=spf1 ip4:12.34.56.78 mx ~all

Tímto způsobem lze za sebou přidat IP adres několik, včetně IPv6, případně i celé rozsahy:

v=spf1 ip4:12.34.56.78 ip4:23.46.78.0/24 ip6:2001:db8:a0b:12f0::1 ~all

Uvedené zápisy je možné mezi sebou různě kombinovat.