Co je SPF
SPF (Sender Policy Framework) je vedle DKIM a DMARC dalším z řešení pro zajištění validace e-mailové zprávy, které napomáhá při odhalování spamu. Jeho princip spočívá v ověření zdroje odeslané zprávy (tedy odesílajícího serveru) oproti definovaným serverům, které jsou oprávněny odesílat zprávy z dané domény. Oprávněné servery (jejich doménová jména či IP adresy) jsou uvedeny v SPF záznamu v DNS zóně dané domény (SPF záznam je jedním z typů TXT záznamů). V případě, že zdrojem zprávy není žádný z oprávněných zdrojů, přijímací SMTP server se zprávou naloží podle definice v záznamu a svých pravidel (například zprávu odmítne přijmout, nebo ji bude filtrovat jako spam).
Kontrolu SPF neprovádějí všechny přijímací servery v Internetu, těch co tak činí, je menšina. Nicméně se dá předpokládat, že jejich počet se bude postupně zvyšovat. Naše přijímací SMTP servery aktuálně kontrolu SPF neprovádějí, nicméně SPF zohledňujeme při vyhodnocování zpráv antispamem.
Nastavení SPF
Pro využívání SPF stačí Vaší doméně nastavit příslušný záznam do DNS. V něm je potřeba specifikovat všechny možné zdroje odesílaných zpráv z dané domény a chování v případě, že odesílající zdroj nevyhověl validačním podmínkám.
V rámci našich hostingových služeb mohou být zprávy z dané domény odesílány z pěti různých zdrojů:
- webserver, na němž běží webové aplikace na dané doméně (odesílání zpráv PHP funkcí mail())
- odesílací SMTP server pro poštovní klienty (smtp.cesky-hosting.cz)
- webmail
- poštovní úložiště - v případě posílání kopií či přesměrování příchozích zpráv (tuto funkci ale právě kvůli SPF nedoporučujeme používat)
- WebSTMP server
Potřebný záznam si můžete nastavit v klientské sekci, ve správě příslušné domény, v záložce DNS (přidat TXT záznam). Využít můžete i tam umístěný generátor, který Vám podle zadaných parametrů navrhne možné znění záznamu.
SPF záznam
SPF (TXT) záznam se skládá ze třech částí: z vyznačení, že se jedná o SPF (v=spf1
), dále jsou vyjmenovány povolené zdroje odchozích zpráv a na závěr je specifikováno chování v případě nevalidovaného zdroje. Jednotlivé části záznamu jsou odděleny mezerou.
Pro definici povolených zdrojů, resp. validačních podmínek, je možné použít celou řadu přepínačů (tzv. mechanismů), nejpoužívanější jsou tyto:
a (A nebo AAAA záznam domény)
mx (MX záznam domény)
ip4 (IPv4 adresa či rozsah adres)
ip6 (IPv6 adresa či rozsah adres)
include (převezme jiný SPF záznam)
Každá validační podmínka, která přímo neobsahuje IP adresy (tedy jiná než ip4
a ip6
), vyžaduje pro své vyhodnocení DNS resolvování. Standard SPF definuje, že těchto resolvování může být v platném záznamu maximálně 10. Podmínky převzaté pomocí mechanismu include
v sobě mohou obsahovat i další vložené podmínky. Vyhodnocení takové podmínky proto může "spotřebovat" více resolvování.
Chování v případě, že zdroj nevyhoví při validaci, je možné specifikovat jedním ze čtyřech způsobů (tzv. kvalifikací):
+ (pass)
- (fail)
~ (softfail)
? (neutral)
Příklady hodnot SPF záznamu
v=spf1 ip4:1.2.3.4 ?all
- jediným povoleným zdrojem je IP adresa 1.2.3.4; chování neutrální
v=spf1 a mx ~all
- povolenými zdroji jsou IP adresy/servery, které jsou A, AAAA a MX záznamy dané domény; chování softfail = zdroj neprošel testem, ale výsledek není definitivní
v=spf1 ip6:2606:2800:220:1:248:1893:25c8:1946 a -all
- povolenými zdroji je IP adresa 2606:2800:220:1:248:1893:25c8:1946 a pak A a AAAA záznamy dané domény; chování fail = zdroj neprošel testem, zpráva bude odmítnuta
v=spf1 a:example.com ?all
- povoleným zdrojem je pouze A záznam domény example.com; chování neutrální
v=spf1 a include:spf.cesky-hosting.cz -all
- povolenými zdroji je webserver, na němž běží web na dané doméně, a pak všechny naše poštovní servery; chování fail
v=spf1 a:replikant7531.thinline.cz include:spf.spolehlive-servery.cz include:spf.cesky-hosting.cz -all
- příklad pro doménu běžící z virtuálního serveru replikant7531.thinline.cz, který nemá vyhrazenou IPv4 adresu; povolenými zdroji je daný webserver (zprávy z PHP přes IPv6), sdílené odesílací SMTP servery pro zprávy z PHP (přes IPv4, viz. níže), a pak všechny naše poštovní servery; chování fail
Speciální SPF záznamy pro naše služby, použitelné pro mechanismus include (příklad použití je výše):
spf.cesky-hosting.cz - SPF záznam obsahující všechny IP adresy našich poštovních serverů odesílajících e-maily (tj. smtp.cesky-hosting.cz, webmail, poštovní úložiště a přijímací SMTP servery)
spf.spolehlive-servery.cz - SPF záznam obsahující všechny IP adresy odesílacích serverů pro zprávy zaslané z PHP na virtuálních managed serverech bez vyhrazené IPv4 adresy (pošta přes IPv6 se posílá z IPv6 adresy serveru)
websmtp.cesky-hosting.cz - SPF záznam pro WebSMTP
Další informace o SPF získáte například ve Wikipedii. Pro kontrolu platnosti nastaveného SPF záznamu můžete využít například tento nástroj, nebo tento nástroj.