Modul 4 · 4.3
SPF: kdo smí odesílat poštu jménem Vaší domény?
Modul 4: Záznamy pro e-mail · Doba čtení: 10 min
Cíl lekce: Po této lekci dokážete přečíst SPF záznam, správně do něj přidat novou službu a vyhnout se třem nejznámějším chybám u SPF: dvěma záznamům, +all a více než deseti vyhledáváním.
Klíčové pojmy: SPF, v=spf1, mechanismus (a, mx, ip4, ip6, include), kvalifikátor (+ - ~ ?), all, jeden SPF záznam, limit 10 DNS vyhledávání, obálkový odesílatel (Return-Path)
Problém: Vaše jméno může použít kdokoli
E-mail byl vymyšlen v osmdesátých letech pro malý, přátelský internet. Každý poštovní server může odeslat e-mail s odesílatelem info@example.com, i když s doménou example.com nemá vůbec nic společného. Podvodníci toho rádi využívají.
SPF (Sender Policy Framework, RFC 7208) je prvním krokem, jak tomu zabránit. V SPF záznamu uvedete, které servery smí odesílat poštu jménem Vaší domény. Přijímající poštovní server u každé příchozí zprávy zkontroluje: přišla tato zpráva ze serveru, který je na seznamu?
Představte si to jako seznam hostů u dveří. Vrátný (přijímající poštovní server) si u Vaší domény vyžádá seznam a zkontroluje, zda je návštěvník (odesílající server) na něm uveden.
Jak vypadá SPF záznam?
SPF záznam je TXT záznam u Vašeho doménového jména, který začíná v=spf1:
example.com. 3600 IN TXT "v=spf1 mx ip4:192.0.2.25 include:spf.mailer.example ~all"Čtete ho zleva doprava. Příjemce prochází jednotlivé části jednu po druhé a zastaví se u první, která odpovídá.
| Část | Význam |
|---|---|
v=spf1 | Toto je SPF záznam. Musí být na začátku. |
a | Server(y), na které ukazuje záznam A/AAAA Vaší domény, smí odesílat poštu. |
mx | Servery z Vašich MX záznamů smí odesílat poštu. |
ip4:192.0.2.25 | Tato adresa IPv4 smí odesílat poštu. Lze uvést i rozsah: ip4:192.0.2.0/24. |
ip6:2001:db8::25 | Totéž pro IPv6. |
include:spf.mailer.example | Všechny servery uvedené v SPF záznamu domény spf.mailer.example smí také odesílat poštu. Takto přidáte externí službu. |
~all | Všechny ostatní servery: podezřelé. Musí být vždy na konci. |
Konec záznamu: ~all, -all, ?all nebo +all
Před každou částí může stát znak, který určuje, co se stane, pokud daná část odpovídá. U all (co odpovídá vždy) dělá tento znak zásadní rozdíl:
| Konec | Název | Význam |
|---|---|---|
-all | fail | Ostatní servery nejsou povoleny. Příjemci smí poštu odmítnout. |
~all | softfail | Ostatní servery jsou podezřelé. Pošta je většinou přijata, ale častěji považována za spam. |
?all | neutral | Žádné vyjádření. Téměř k ničemu. |
+all | pass | Jakýkoli server na světě smí posílat poštu jménem Vaší domény. Nikdy nepoužívat. |
Pokud není uveden žádný znak, platí +. mx tedy znamená +mx.
Který vybrat? ~all je bezpečná výchozí volba. -all je přísnější a vhodné, pokud máte jistotu, že všichni Vaši odesílatelé jsou v záznamu uvedeni. Používáte-li DMARC (lekce 4.5), o tom, co se nakonec stane, nakonec rozhoduje zásada DMARC; mnoho správců proto volí ~all.
Chyba 1: dva SPF záznamy
Na doménu smí být pouze jeden SPF záznam. Pokud příjemce najde dva, výsledkem je chyba (permerror) a Vaše SPF se vůbec nepočítá. To je horší než žádné SPF.
V praxi se to často pokazí. Služba pro rozesílání newsletterů nebo Microsoft 365 řekne „přidejte tento SPF záznam“ a najednou vedle starého existuje druhý záznam v=spf1. Řešení: novou službu přidejte do existujícího záznamu.
Chybně:
"v=spf1 mx include:spf.oldhost.example ~all"
"v=spf1 include:spf.protection.outlook.com -all"Správně:
"v=spf1 mx include:spf.oldhost.example include:spf.protection.outlook.com ~all"Pozor: při slučování neodstraňujte servery, které stále používáte. Pokud Váš web odesílá poštu přes server Vašeho hostingového poskytovatele, musí v záznamu zůstat, i když běžná pošta jde přes Microsoft 365. Hostingový balíček má často již výchozí SPF se zahrnutím (include) hostingové společnosti (u WebOké je to například include:webawere.nl); ponechte ho tam, dokud Váš web nebo formuláře odesílají poštu přes tento server.
Chyba 2: +all nebo příliš široký záznam
+all na konci, nebo obrovský rozsah jako ip4:0.0.0.0/0, znamená, že poštu smí odesílat kdokoli. SPF pak už nic nechrání a spamové filtry to považují za špatné znamení.
Chyba 3: více než deset vyhledávání
Ke kontrole SPF záznamu musí příjemce někdy položit další DNS dotazy. Každý include, a, mx, exists, ptr a redirect stojí jedno vyhledávání a include navíc počítá i všechna vyhledávání v záznamu, na který odkazuje. Podle RFC 7208 nesmí celkový počet přesáhnout deset. Pokud se tak stane, výsledkem je permerror a SPF selže.
ip4 a ip6 žádné vyhledávání nestojí. all také ne.
Kromě toho smí nejvýše dvě vyhledávání vrátit „prázdný“ výsledek (jméno, které neexistuje, nebo bez odpovědi). Problém tedy může způsobit i include na službu, kterou už dávno nepoužíváte a která svůj záznam odstranila.
Používáte-li hodně služeb, spočítejte si to pomocí nástroje pro kontrolu SPF (lekce 8.3) a odstraňte služby, které už nepoužíváte.
Co SPF nedělá
SPF kontroluje obálkového odesílatele: technickou adresu odesílatele (Return-Path), kterou si poštovní servery vyměňují mezi sebou. Nejedná se vždy o stejnou adresu jako adresa „Od:“, kterou vidíte ve svém poštovním programu. Služba pro rozesílání newsletterů často odesílá s vlastním Return-Path. Samotné SPF tedy nezastaví každého falešného odesílatele. Od toho jsou tu DKIM (lekce 4.4) a DMARC (lekce 4.5).
SPF se také láme při přesměrování: pokud poštu automaticky přesměrujete na jinou adresu, dorazí ke konečnému příjemci ze serveru, který ve Vašem SPF není uveden.
Proč na tom záleží
Velcí poskytovatelé e-mailu jsou přísnější. Od února 2024 Gmail a Yahoo vyžadují, aby každý, kdo posílá poštu, měl alespoň SPF nebo DKIM, a kdo odesílá velké množství pošty (přibližně více než 5 000 denně), musí mít SPF, DKIM i DMARC. Microsoft stanovil stejný požadavek od května 2025 pro Outlook.com, Hotmail a Live.com. I když posíláte málo pošty, dobře nastavený SPF záznam pomáhá proti zařazení do spamu.
V praxi: jak to vypadá v panelu
V tomto příkladu používáme DirectAdmin. V sekci DNS klikněte na tužku vedle TXT záznamu, který začíná v=spf1. DirectAdmin otevře pomocníka pro SPF: u pole Zahrnout doménu zadejte doménu dané služby (bez include:), u pole Režim vyberte SoftFail (~all) nebo Selhání (-all). Dole uvidíte celý záznam. Můj WebOké má podobného pomocníka pro SPF na záložce DNS.
Jiné panely takového pomocníka nemusí mít. Pak TXT záznam upravíte jako obyčejný text; obsah je naprosto stejný.
Shrnutí
- SPF je TXT záznam s
v=spf1, který určuje, které servery smí odesílat poštu jménem Vaší domény. - Přesně jeden SPF záznam na doménu. Nová služba? Doplňte existující záznam.
- Ukončete pomocí
~allnebo-all, nikdy pomocí+all. - Nejvýše deset DNS vyhledávání (
include,a,mx,exists,ptr,redirect),ip4/ip6se nepočítají. - SPF kontroluje obálkového odesílatele; pro opravdovou ochranu potřebujete i DKIM a DMARC.
Kvíz
Úkol
Úkol Z4.3: Vyhledání SPF. Vyhledejte SPF záznam domény google.com (nebo Vaší vlastní domény). Vložte celý záznam a uveďte, čím končí (~all, -all, ?all nebo +all). U Vaší vlastní domény úkol také zkontroluje, zda máte přesně jeden SPF záznam.
Úkol O4.3: Vlastní nastavení ve Vaší cvičné zóně. Ve cvičné zóně používáte fiktivní službu; u Vaší skutečné domény použijete skutečné zahrnutí (include), které udává Váš poskytovatel pošty (například include:_spf.google.com). Ve Vaší cvičné zóně vytvořte SPF záznam, který povoluje: MX servery zóny (<code>.dnspractice.eumx), adresu 192.0.2.25 a cvičnou službu _spf.mailsuite-demo.dnspractice.eu. Ostatní servery jsou podezřelé nebo nepovolené, takže záznam končí na ~all nebo -all.
Úkol O4.3
Tento úkol vypracujete ve své vlastní cvičné zóně: skutečné DNS zóně na jmenných serverech WebOké, určené pouze pro Vás. Přihlaste se svou e-mailovou adresou. Odkaz pro přihlášení obdržíte e-mailem a poté se vrátíte zpět na tuto lekci. Vaši adresu používáme pouze pro potřeby kurzu.
Doporučené další čtení
Kroky v těchto článcích platí pro panely WebOké; v jiných panelech to funguje obdobně.
- Příručka k DirectAdmin 5.7: Nastavení a doplnění SPF
- Jak funguje záznam SPF v DNS?
- Přidání nebo změna záznamu SPF v DirectAdmin
- Příručka WebOké 5.5: DNS pomocníci: MX, SPF, DMARC, CAA a SRV
- RFC 7208 (SPF), zejména odstavec 4.6.4 (limit deseti vyhledávání a dvou prázdných vyhledávání)
