SPF nie istnieje lub jest w niebezpiecznym trybie
Co to jest
SPF (Sender Policy Framework) to rekord TXT w Twoim DNS, który wymienia serwery uprawnione do wysyłania e-maili w Twoim imieniu. Gdy Gmail otrzyma wiadomość „od example.cz” z niewymienionego serwera, wie, że to spoof.
Problem bezpieczeństwa powstaje w dwóch sytuacjach:
- SPF w ogóle nie istnieje. Gmail nie ma na czym oprzeć decyzji.
- SPF kończy się
+alllub?all. To odpowiednik „dozwolone z czegokolwiek” i tym samym SPF całkowicie traci sens.
Dlaczego to problem
Bez działającego SPF przejdzie każdy spoof. DMARC sam w sobie nie wystarczy — DMARC buduje na SPF i DKIM.
Jak to naprawić
Mam tylko 1 serwer pocztowy
Przykład dla Microsoft 365:
Name: example.cz
Type: TXT
Value: v=spf1 include:spf.protection.outlook.com -allDla Google Workspace:
v=spf1 include:_spf.google.com -allMam wielu nadawców
Gdy wysyłasz z poczty firmowej + Mailchimp + transakcyjne przez Mailgun + e-sklep przez własny VPS:
v=spf1 include:_spf.google.com include:servers.mcsv.net include:mailgun.org ip4:198.51.100.5 -all~all vs -all
-all(hardfail) — serwer odbierający odrzuci wiadomość. Zalecamy.~all(softfail) — oznaczy jako spam, ale dostarczy. Wybierz przy wdrażaniu etapami.?alli+all— nigdy. Są odpowiednikiem „braku SPF”.
Uwaga na limit 10 zapytań
SPF ma sztywno ustawiony limit 10 zapytań DNS. Każdy include: oraz a: się liczy — łącznie z zagnieżdżonymi include: wewnątrz rekordów, które dołączasz (jedno include: dużego dostawcy może zużyć kilka). Gdy przekroczysz limit, SPF zwróci permerror i wiadomość nie zostanie dostarczona.
SPF flattening (jeśli limit nie wystarcza)
Albo skonsoliduj nadawców, albo spłaszcz rekord (flattening): zamiast include: wypisz bezpośrednio adresy IP nadawców (ip4:/ip6:), które nie liczą się do limitu. Uwaga — spłaszczone adresy IP musisz potem utrzymywać samodzielnie, gdy dostawca je zmieni.
Weryfikacja
dig TXT example.cz | grep spfAlbo uruchom nowy skan na vulscan.app — kontrola SPF jest częścią bezpłatnego skanu.