8.9.2016
www.openspf.org,
Syntax SPF záznamů – zmizelo z internetu
What SPF Resources Are Available Now That OpenSPF.org Is Gone?
Pokud se budete snažit posílat poštu na gmail z vlastního serveru s nastavenou IPv6 adresou, můžete narazit. Servery Google jsou nastavené poměrně restriktivně a vyžadují nastavit v DNS dva důležité záznamy:
Bez nastavení těchto záznamů se vám budou maily poslané na adresu gmail.com vracet jako nedoručitelné. Stejně tak se vám nepodaří doručit mail na jakoukoliv jinou doménu hostovanou na serverech google.
SPF je zkratka z anglického "Sender Policy Framework". Pomocí SPF můžete ostatním účastníkům poštovního provozu na internetu slíbit, že veškerá pošta odcházející z vaší domény půjde pouze ověřenými cestami a poštu, která dorazí z neověřeného zdroje, je možné považovat za podvrženou, nebo alespoň podezřelou.
Poštovní server na straně příjemce vaší pošty tak může při přijetí podvržené zprávy zareagovat několika různými způsoby:
SPF záznam se ukládá do DNS k informacím o vaší doméně do záznamu typu TXT. Server na straně příjemce zjištuje podle SPF záznamu dvě důležité informace:
Obě informace se zjištují v různém fázi komunikace pomocí SMTP protokolu a obě informace jsou uložené v rozdílných SPF záznamech.
V následujícím textu je odesilatel označený modře, příjemce červeně, poznámky nepatřící do SMTP protokolu černě.
Připojuji se k SMTP serveru příjemce z vlastního serveru z IPv6 adresy 2001:DB8::1, představuji se příkazem HELO:
HELO smtp.hobrasoft.cz
Server příjemce nyní hledá PTR záznam pro IPv6 adresu 2001:DB8::1, nalézá smtp.hobrasoft.cz. Odesílající server se představil jako smtp.hobrasoft.cz, podle DNS záznamů je tedy skutečně tím, kým říká, že je. Následuje kontrola SPF: Příjímající server zjistí například tento záznam:
smtp.hobrasoft.cz txt "v=spf1 a -all"
Server příjemce zjistí, že obě informace sedí. PTR ukazuje na správný server, SPF záznam říká, že tento počítač může odesílat poštu. Příjemce proto odpovídá:
250 ok
Může se samozřejmě stát, že SPF záznam vypadá jinak a server smtp.hobrasoft.cz má zakázáno poštu odesílat:
smtp.hobrasoft.cz txt "v=spf1 -all"
V takovém případě může přijímající server poštu odmítnout hned v tento okamžik, například:
521 Does not accept mail
Řekněme, že kontrola prošla a SMTP protokol pokračuje:
MAIL FROM: petr.bravenec@hobrasoft.cz
V tento moment se startuje další kontrola. Přijímající server vyhledá záznam SPF pro doménu hobrasoft.cz a nalézá například:
hobrasoft.cz txt "v=spv1 ip6:2001:DB8::1 -all"
V záznamu je uvedeno, že poštu z domény hobrasoft.cz může odesílat pouze IPv6 adresa 2001:DB8::1 a nikdo jiný (v praxi zde bude uvedená obvykle i IPv4 adresa). Protože vše sedí, je možné poštu přijmout:
250 ok
V případě, že kontrola ukázala některé nesrovnalosti, může v tento moment přijímající server poštu odmítnout.
V praxi může být nastavení SPF záznamů velmi jednoduché. Takto máme nastavenou například vlastní doménu hobrasoft.cz:
hobrasoft.cz. 1800 IN MX 10 potkan.hobrasoft.cz. potkan.hobrasoft.cz. 779 IN A 178.238.42.9 potkan.hobrasoft.cz. 779 IN AAAA 2a01:430:59:1:3::1 potkan.hobrasoft.cz. 1800 IN TXT "v=spf1 a -all" hobrasoft.cz. 1800 IN TXT "v=spf1 mx -all" *.hobrasoft.cz. 1800 IN TXT "v=spf1 -all"
Pojďme si jednotlivé řádky rozebrat:
hobrasoft.cz. 1800 IN MX 10 potkan.hobrasoft.cz. potkan.hobrasoft.cz. 779 IN A 178.238.42.9 potkan.hobrasoft.cz. 779 IN AAAA 2a01:430:59:1:3::1
Příchozí poštu pro doménu hobrasoft.cz vyřizuje počítač potkan.hobrasoft.cz. Ostatní servery by měly kontaktovat tento server při pokusu doručit poštu do domény hobrasoft.cz, nikdo jiný nedokáže poštu vyřídit. Záznamy A a AAAA říkají, jakou adresu má počítač potkan.hobrasoft.cz na IPv4 a IPv6.
Další záznam se uplatňuje při zpracování příkazu HELO:
potkan.hobrasoft.cz. 1800 IN TXT "v=spf1 a -all"
První kontrola při příkazu HELO zjišťuje existenci tohoto záznamu. Pravidlo "a" říká, že jako "potkan.hobrasoft.cz" se může představovat pouze počítač s odpovídajícím záznamem typu A nebo AAAA. Pokud se představí jako počítač "potkan.hobrasoft.cz" jakýkoliv jiný počítač s adresou jinou, než je uvedeno v A nebo AAAA (tj. 178.238.42.9 nebo 2a01:430:59:1:3::1), zabere pravidlo "-all", které říká, že taková pošta se má zahodit.
Další záznam se uplatňuje při zpracování příkazu MAIL FROM:
hobrasoft.cz. 1800 IN TXT "v=spf1 mx -all"
Zde se kontroluje, kdo může odesílat poštu z domény hobrasoft.cz: pravidlo "mx" v SPF záznamu říká, že poštu mohou odesílat pouze počítače, které jsou uvedené v MX záznamu, zde potkan.hobrasoft.cz. Pokud se pokusí odeslat poštu kdokoliv jiný, jde o podvrženou poštu a měla by se zahodit (pravidlo "-all").
Poslední záznam se uplatňuje pro poddomény:
*.hobrasoft.cz. 1800 IN TXT "v=spf1 -all"
Pokud se někdo pokusí odeslat poštu například z adresy petr.bravenec@potkan.hobrasoft.cz, měl by příjemce takovou poštu zahodit.
V tomto článku je všude uvedené pravidlo "-all", v praxi se však můžete častěji setkat s pravidlem "~all". Rozdíl mezi těmito pravidly může znamenat například toto (záleží na nastavení přijímajícího serveru):
Zavést SPF záznamy pro odesílanou poštu není složité a většinou si vystačíte se dvěmi či třemi TXT záznamy v DNS. Složitější může pak být nastavení celého poštovního systému: je třeba zajistit, aby skutečně veškerá pošta odcházející do světa pocházela pouze z počítačů nastavených v DNS. Obvyklá opatření mohou zahrnovat:
Zároveň je vhodné nastavit kontrolu SPF záznamů při příjmu pošty - získáte tak další doplňkový mechanismus pro rozeznávání spamu.
Pokud máte na svém SMTP serveru nastavenou IPv6 adresu, je pro vás nastavení SPF záznamů díky serverům Google pravděpodobně nutnost. V případě, že používáte pouze IPv4 a na nutnost používat SPF jste dosud nenarazili, dáváte nastavením SPF záznamů příjemcům vaší pošty vědět, že dbáte na správné nastavení poštovního serveru a vkládáte příjemci pošty účinný nástroj na odhalení podvržené pošty a případné odmítnutí spamu.