SPF, Postfix a rspamd: běžné problémy s doručováním
SPF selhává častěji kvůli drobnostem v záznamu nebo v nastavení příjemce než kvůli skutečnému podvržení odesílatele. Přehled toho, na co se narazí nejčastěji.
- Jen jeden SPF záznam na doménu. Dva TXT záznamy začínající
v=spf1znamenajípermerrora kontrola selže pro veškerou poštu. - Limit deseti DNS dotazů. Mechanismy
include,a,mx,ptr,existsa modifikátorredirectse počítají do limitu deseti dotazů; dlouhé řetězyincludeod poskytovatelů ho snadno překročí. Výsledkem je opětpermerror. - Prázdné odpovědi. Norma omezuje i počet dotazů, které nevrátí žádný záznam (void lookups);
includena doménu bez SPF je častý zdroj chyby. -
ptrnepoužívat – je pomalý, nespolehlivý a norma ho nedoporučuje. -
~allversus-all: softfail pošta obvykle projde s penalizací, fail ji odmítne. Přechod na-allaž ve chvíli, kdy jsou známé všechny odesílající servery. - Makra (
%{i},%{s}a další) jednotlivé implementace podporují různě. Záznam s makry ověřovat proti skutečnému příjemci, ne jen syntaktickým validátorem, a makra používat jen tam, kde jsou opravdu nutná.
SPF ověřuje obálkovou adresu (MAIL FROM) a HELO, ne hlavičku From, kterou vidí uživatel. Soulad mezi nimi řeší až DMARC.
Přeposlaná pošta přichází z adresy přeposílajícího serveru, kterou SPF původní domény nezná, a kontrola selže. Řešením je SRS (Sender Rewriting Scheme) na přeposílajícím serveru, v Postfixu například přes postsrsd.
- Kontrola přes
check_policy_servicepatří dosmtpd_recipient_restrictionsaž zareject_unauth_destination, aby výsledek SPF nemohl otevřít relay. - Autentizovaní uživatelé (
permit_sasl_authenticated) mají projít dřív, jinak se kontroluje i vlastní odchozí pošta odesílaná přes submission. - Démon politiky se spouští přes
spawnvmaster.cf; jeho časový limit (policyd-spf_time_limit) je potřeba nastavit vmain.cf, jinak ho Postfix ukončí dřív, než odpoví.
- Výsledek SPF nesou symboly
R_SPF_ALLOW,R_SPF_FAIL,R_SPF_SOFTFAIL,R_SPF_NA,R_SPF_PERMFAILaR_SPF_DNSFAIL– v historii zprávy je hned vidět, proč kontrola dopadla, jak dopadla. - Pošta přicházející přes vlastní relé nebo filtr se musí vyhodnocovat proti poslední vnější adrese; vlastní relé a sítě proto patří mezi lokální, jinak se SPF kontroluje proti adrese relé.
-
R_SPF_DNSFAILvětšinou neznamená chybu odesílatele, ale nespolehlivý resolver na straně příjemce. - Když SPF kontroluje rspamd i policyd-spf, výsledky se mohou rozejít. Kontrola má mít jedno místo.
Záznam ověřit posláním skutečné zprávy na testovací adresu (např. mail-tester) a přečtením výsledku v hlavičkách a v historii rspamd, ne jen syntaktickým validátorem.