Co to jest SPF i jak działa?

Spis treści

  • Co to jest SPF?
  • Do czego służy rekord SPF?
  • Jak działa SPF?
  • Gdzie znajduje się rekord SPF?
  • Jak wygląda rekord SPF?
  • Jak interpretować składnię rekordu SPF?
  • Mechanizmy SPF
  • Kwalifikatory SPF
  • Jak przebiega weryfikacja SPF?
  • SPF Pass, Fail, SoftFail i Neutral
  • Jak skonfigurować rekord SPF?
  • Jak sprawdzić rekord SPF?
  • Najczęstsze błędy konfiguracji SPF
  • Limit 10 zapytań DNS w SPF
  • Czy można mieć kilka rekordów SPF?
  • SPF a przekazywanie wiadomości
  • SPF a DKIM
  • SPF a DMARC
  • Czy SPF chroni przed spoofingiem?
  • Jak diagnozować problemy z SPF?
  • Narzędzia DNSCHECK.pl pomocne przy analizie SPF
  • Sprawdź SPF swojej domeny
  • FAQ

SPF jest jednym z podstawowych mechanizmów wykorzystywanych do ochrony poczty elektronicznej. Pozwala właścicielowi domeny określić, które serwery mogą wysyłać wiadomości w jej imieniu. Serwer odbierający pocztę może następnie sprawdzić tę informację i wykorzystać wynik podczas oceny wiarygodności wiadomości.

Poprawna konfiguracja SPF ma znaczenie zarówno dla bezpieczeństwa domeny, jak i dostarczalności legalnej poczty. Błędny rekord może natomiast powodować problemy z autoryzacją wiadomości, szczególnie gdy firma korzysta z kilku systemów wysyłających pocztę.

W tym poradniku wyjaśniamy, co to jest SPF, jak działa rekord SPF, jak wygląda jego składnia, jak go poprawnie skonfigurować oraz jak sprawdzić SPF swojej domeny.

Co to jest SPF?

SPF (Sender Policy Framework) to mechanizm uwierzytelniania poczty elektronicznej, dzięki któremu właściciel domeny może opublikować informację o serwerach uprawnionych do wysyłania wiadomości wykorzystujących tę domenę w SMTP.

Polityka SPF publikowana jest w systemie DNS jako rekord TXT.

Przykładowy rekord może wyglądać następująco:

v=spf1 ip4:203.0.113.10 -all

Taki wpis informuje systemy pocztowe, że wskazany adres IPv4 jest autoryzowany zgodnie z polityką SPF domeny.

SPF nie jest programem instalowanym na serwerze użytkownika ani certyfikatem. Jest zestawem reguł publikowanych w DNS i interpretowanych przez serwer odbierający wiadomość.

Do czego służy rekord SPF?

Podstawowym zadaniem SPF jest umożliwienie serwerowi odbierającemu pocztę sprawdzenia, czy serwer wysyłający wiadomość jest uprawniony do korzystania z danej domeny w kontekście sprawdzanym przez SPF.

Mechanizm pomaga między innymi:

  • ograniczać podszywanie się pod domenę,
  • identyfikować nieautoryzowane źródła poczty,
  • wspierać systemy antyspamowe,
  • zwiększać wiarygodność legalnych wiadomości,
  • dostarczać wynik uwierzytelnienia wykorzystywany przez DMARC.

SPF jest jednak tylko jednym z elementów ochrony poczty. W praktyce powinien współpracować z DKIM oraz DMARC.

Jak działa SPF?

Weryfikacja SPF rozpoczyna się, gdy serwer pocztowy otrzymuje wiadomość SMTP.

W uproszczeniu proces wygląda następująco:

  1. Serwer wysyłający nawiązuje połączenie z serwerem odbiorcy.
  2. W trakcie sesji SMTP przekazywana jest domena używana przez SPF.
  3. Serwer odbierający ustala adres IP serwera wysyłającego.
  4. Pobiera z DNS politykę SPF odpowiedniej domeny.
  5. Analizuje kolejne mechanizmy rekordu.
  6. Sprawdza, czy adres IP nadawcy spełnia określone warunki.
  7. Generuje wynik SPF.
  8. Wynik może zostać wykorzystany przez filtry antyspamowe oraz DMARC.

Ważne jest to, że SPF nie sprawdza po prostu adresu widocznego przez użytkownika w polu From:. Standardowo ocenia domenę związaną z SMTP MAIL FROM, nazywaną również envelope-from lub Return-Path. W określonych sytuacjach SPF może również korzystać z tożsamości HELO/EHLO.

To rozróżnienie jest bardzo istotne przy diagnozowaniu sytuacji, w której wiadomość wygląda na wysłaną z konkretnej domeny, ale wynik SPF dotyczy innej domeny technicznej.

Gdzie znajduje się rekord SPF?

SPF publikowany jest w DNS jako rekord TXT.

Może wyglądać tak:

example.com. 3600 IN TXT "v=spf1 ip4:203.0.113.10 -all"

Poszczególne elementy oznaczają:

  • example.com – domenę,
  • 3600 – wartość TTL,
  • TXT – typ rekordu DNS,
  • v=spf1 – wersję SPF,
  • ip4:203.0.113.10 – dozwolone źródło,
  • -all – sposób traktowania pozostałych źródeł.

Więcej informacji o sposobie przechowywania takich danych w DNS znajdziesz w artykule Co to jest rekord TXT?

Jak wygląda rekord SPF?

Prosty rekord SPF może wyglądać następująco:

v=spf1 ip4:203.0.113.10 -all

W bardziej rozbudowanym środowisku:

v=spf1 ip4:203.0.113.10 include:_spf.example.net -all

Polityka rozpoczyna się od:

v=spf1

Następnie znajdują się mechanizmy określające dozwolone źródła wysyłki.

Na końcu często znajduje się:

-all

Nie należy jednak kopiować przykładowych rekordów bez dostosowania ich do własnej infrastruktury. Polityka SPF powinna uwzględniać wszystkie legalne systemy wysyłające pocztę dla danej domeny.

Jak interpretować składnię rekordu SPF?

SPF wykorzystuje określoną składnię składającą się z mechanizmów, kwalifikatorów i modyfikatorów.

Przykład:

v=spf1 a mx ip4:203.0.113.10 include:_spf.example.net -all

Każdy fragment ma określone znaczenie.

v=spf1

Informuje, że rekord zawiera politykę SPF w wersji 1.

a

Autoryzuje adresy IP wynikające z odpowiedniego rekordu A lub AAAA używanego przez mechanizm.

mx

Uwzględnia adresy IP serwerów wskazanych przez rekordy MX domeny.

ip4

Pozwala bezpośrednio autoryzować adres IPv4 lub zakres IPv4.

Przykład:

ip4:203.0.113.10

ip6

Odpowiednik ip4 dla IPv6.

include

Pozwala odwołać się do polityki SPF innej domeny.

Przykład:

include:_spf.example.net

Jest często wykorzystywany przez zewnętrznych dostawców poczty oraz platformy mailingowe.

all

Mechanizm pasujący do wszystkich pozostałych źródeł. Zwykle znajduje się na końcu polityki.

Mechanizmy SPF

SPF obsługuje kilka mechanizmów, które pozwalają budować politykę autoryzacji.

Mechanizm ip4

Autoryzuje adres lub sieć IPv4:

ip4:203.0.113.0/24

Mechanizm ip6

Autoryzuje adres lub sieć IPv6:

ip6:2001:db8::/32

Mechanizm a

Pozwala wykorzystać adresy powiązane z nazwą domenową.

Mechanizm mx

Odwołuje się do serwerów pocztowych określonych rekordami MX.

Jeżeli chcesz dokładniej poznać ich działanie, przeczytaj artykuł Co to jest rekord MX?

Mechanizm include

Pozwala włączyć politykę SPF innej domeny do procesu oceny.

Jest bardzo popularny w przypadku korzystania z usług zewnętrznych.

Mechanizm exists

Pozwala przeprowadzić test oparty na określonym zapytaniu DNS. Jest stosowany przede wszystkim w bardziej zaawansowanych konfiguracjach.

Mechanizm all

Pasuje zawsze, dlatego zazwyczaj umieszcza się go jako ostatni mechanizm rekordu.

Kwalifikatory SPF

Przed mechanizmem SPF może występować kwalifikator określający wynik dopasowania.

+ Pass

Przykład:

+all

Znak + oznacza Pass i jest domyślnym kwalifikatorem.

W praktyce +all oznaczałoby akceptowanie każdego źródła w ramach SPF, dlatego zwykle nie powinno być stosowane jako polityka końcowa.

– Fail

Przykład:

-all

Oznacza, że źródła niedopasowane wcześniej do dozwolonych mechanizmów powinny otrzymać wynik SPF Fail.

~ SoftFail

Przykład:

~all

Wskazuje, że dane źródło nie jest autoryzowane zgodnie z polityką, ale wynik ma charakter SoftFail.

? Neutral

Przykład:

?all

Oznacza neutralny rezultat – polityka nie wskazuje jednoznacznie, czy źródło powinno być uznane za autoryzowane.

Jak przebiega weryfikacja SPF?

Załóżmy, że domena posiada rekord:

v=spf1 ip4:203.0.113.10 -all

Serwer o adresie:

203.0.113.10

wysyła wiadomość.

Serwer odbiorcy sprawdza SPF i stwierdza dopasowanie do mechanizmu ip4. Wynikiem będzie SPF Pass.

Jeżeli wiadomość zostanie wysłana z adresu:

198.51.100.20

który nie został autoryzowany, analiza dojdzie do -all. Wynikiem będzie SPF Fail.

To pokazuje, dlaczego aktualność polityki SPF jest tak ważna. Jeżeli organizacja uruchomi nowy system mailingowy, ale nie doda go do SPF, legalna poczta może nie przejść poprawnie weryfikacji.

SPF Pass, Fail, SoftFail i Neutral

Wynik SPF nie ogranicza się do prostego „poprawny” lub „błędny”.

SPF Pass

Serwer wysyłający jest zgodny z opublikowaną polityką.

SPF Fail

Serwer nie jest autoryzowany, a polityka wskazuje jednoznaczne odrzucenie tego źródła.

SPF SoftFail

Źródło nie jest uznane za autoryzowane, ale polityka używa mniej stanowczego kwalifikatora.

SPF Neutral

Domena nie określa jednoznacznego stanowiska wobec danego źródła.

Podczas diagnostyki można spotkać również inne rezultaty, między innymi None, TempError oraz PermError.

Jak skonfigurować rekord SPF?

Konfigurację należy rozpocząć od identyfikacji wszystkich systemów, które legalnie wysyłają wiadomości dla domeny.

Mogą to być:

  • własny serwer pocztowy,
  • hosting poczty,
  • Microsoft 365,
  • Google Workspace,
  • system CRM,
  • platforma newsletterowa,
  • system fakturowania,
  • aplikacja internetowa,
  • system helpdesk,
  • zewnętrzne narzędzia marketingowe.

Następnie należy ustalić wymagane przez te systemy adresy IP lub mechanizmy include.

Przykładowa konstrukcja:

v=spf1 ip4:203.0.113.10 include:_spf.example.net -all

Po utworzeniu polityki należy opublikować ją jako rekord TXT w strefie DNS domeny.

Po zmianie warto pamiętać o TTL i propagacji DNS. Szczegóły tych mechanizmów opisujemy w artykułach Co to jest TTL DNS? oraz DNS Propagation – dlaczego zmiany DNS nie są widoczne od razu?

Jak sprawdzić rekord SPF?

Rekord SPF można sprawdzić poprzez standardowe zapytanie o rekord TXT domeny.

W systemie Linux można wykorzystać:

dig TXT example.com

W systemie Windows:

nslookup -type=TXT example.com

Wynik może zawierać kilka rekordów TXT. Należy odnaleźć wpis rozpoczynający się od:

v=spf1

Wygodniejszym rozwiązaniem jest wykorzystanie dedykowanego narzędzia SPF Checker, które może dodatkowo przeanalizować strukturę polityki.

Jeżeli chcesz poznać inne sposoby analizy DNS, przeczytaj również Jak sprawdzić rekordy DNS domeny?

Najczęstsze błędy konfiguracji SPF

Brak rekordu SPF

Domena nie publikuje polityki informującej, jakie źródła są uprawnione do wysyłania poczty.

Nieaktualny adres IP

Serwer pocztowy został przeniesiony na nowy adres, ale rekord SPF nadal zawiera poprzedni.

Brak zewnętrznej usługi

Organizacja rozpoczyna wysyłkę przez nową platformę, ale zapomina uwzględnić ją w SPF.

Błędna składnia

Literówka lub niepoprawny mechanizm może spowodować problemy z interpretacją polityki.

Zbyt wiele zapytań DNS

Rozbudowane rekordy z wieloma mechanizmami zależnymi od DNS mogą przekroczyć limit przewidziany przez SPF.

Kilka rekordów SPF

Publikowanie kilku niezależnych rekordów TXT rozpoczynających się od v=spf1 dla tej samej nazwy nie jest prawidłowym sposobem rozszerzania polityki SPF.

Limit 10 zapytań DNS w SPF

Jednym z najważniejszych ograniczeń SPF jest limit operacji powodujących zapytania DNS podczas sprawdzania polityki.

SPF przewiduje limit 10 takich wyszukiwań.

Problem często pojawia się w organizacjach korzystających jednocześnie z wielu usług:

v=spf1 include:provider1.example include:provider2.example include:provider3.example -all

Każdy include może prowadzić do kolejnych odwołań, a te mogą generować następne zapytania DNS.

Przekroczenie limitu może prowadzić do wyniku PermError.

Dlatego liczba wpisów widocznych bezpośrednio w rekordzie nie zawsze odpowiada faktycznej liczbie operacji DNS wykonywanych podczas weryfikacji.

Czy można mieć kilka rekordów SPF?

Dla jednej nazwy domenowej nie należy publikować kilku oddzielnych polityk SPF rozpoczynających się od v=spf1.

Przykładowo konfiguracja:

v=spf1 include:provider1.example -all

oraz osobny rekord:

v=spf1 include:provider2.example -all

nie jest prawidłowym sposobem autoryzowania dwóch usług.

Informacje powinny zostać połączone w jedną politykę:

v=spf1 include:provider1.example include:provider2.example -all

Oczywiście połączenie rekordów wymaga wcześniejszego sprawdzenia limitów oraz zaleceń dostawców.

SPF a przekazywanie wiadomości

Forwarding jest jednym z istotnych ograniczeń SPF.

Wyobraźmy sobie, że wiadomość przechodzi przez dodatkowy serwer przekazujący ją dalej do końcowego odbiorcy.

Końcowy serwer może zobaczyć adres IP systemu przekazującego zamiast pierwotnego serwera nadawcy.

Jeżeli ten adres nie znajduje się w polityce SPF odpowiedniej domeny, sprawdzenie może zakończyć się niepowodzeniem.

Dlatego SPF nie powinien być traktowany jako samodzielny i kompletny system ochrony poczty.

SPF a DKIM

SPF i DKIM rozwiązują różne problemy.

SPF sprawdza, czy źródło wysyłki jest zgodne z polityką domeny.

DKIM wykorzystuje podpis kryptograficzny dodawany do wiadomości. Serwer odbiorcy może pobrać odpowiedni klucz publiczny z DNS i zweryfikować podpis.

W praktyce oznacza to, że SPF skupia się przede wszystkim na autoryzacji źródła wysyłki, natomiast DKIM pozwala uwierzytelnić podpis wiadomości i zweryfikować integralność podpisanych elementów.

Najlepsze rezultaty uzyskuje się, stosując oba mechanizmy.

SPF a DMARC

DMARC wykorzystuje wyniki SPF i DKIM, ale dodaje bardzo istotny element – alignment, czyli zgodność domen.

Dla SPF DMARC sprawdza, czy domena uwierzytelniona przez SPF jest odpowiednio zgodna z domeną widoczną w nagłówku From:.

DMARC pozwala również właścicielowi domeny opublikować politykę dotyczącą wiadomości, które nie spełniają wymagań uwierzytelnienia i alignmentu.

Przykładowe polityki DMARC mogą wykorzystywać:

p=none
p=quarantine

lub:

p=reject

SPF, DKIM i DMARC powinny więc być traktowane jako współpracujące elementy zabezpieczenia domeny pocztowej.

Czy SPF chroni przed spoofingiem?

SPF pomaga ograniczać możliwość skutecznego wykorzystania nieautoryzowanych serwerów do podszywania się pod domenę, ale sam nie zapewnia pełnej ochrony przed spoofingiem.

Jednym z powodów jest różnica pomiędzy domeną sprawdzaną przez SPF a adresem widocznym dla użytkownika w nagłówku From:.

Dlatego domena, która ma być dobrze chroniona przed podszywaniem, powinna wykorzystywać:

  • SPF,
  • DKIM,
  • DMARC.

DMARC łączy wyniki uwierzytelniania z domeną widoczną dla odbiorcy i pozwala określić politykę postępowania z wiadomościami niespełniającymi wymagań.

Jak diagnozować problemy z SPF?

Jeżeli wiadomości otrzymują błędy SPF, warto przeprowadzić diagnostykę krok po kroku.

1. Sprawdź rekord TXT

Zweryfikuj, czy domena publikuje właściwy rekord rozpoczynający się od v=spf1.

2. Sprawdź źródło wysyłki

Ustal rzeczywisty adres IP systemu wysyłającego wiadomość.

3. Sprawdź mechanizmy include

Jeżeli korzystasz z usług zewnętrznych, sprawdź, czy wymagane wpisy znajdują się w polityce.

4. Sprawdź limit zapytań DNS

Rozbudowana konfiguracja może przekroczyć limit SPF.

5. Sprawdź wynik uwierzytelnienia

W nagłówkach otrzymanej wiadomości można znaleźć informacje dotyczące SPF, DKIM i DMARC.

Przykładowo nagłówek Authentication-Results może zawierać rezultat przeprowadzonych kontroli.

6. Sprawdź propagację DNS

Jeżeli rekord został właśnie zmieniony, część resolverów może nadal przechowywać poprzednią wartość.

Narzędzia DNSCHECK.pl pomocne przy analizie SPF

Podczas konfiguracji oraz diagnostyki SPF warto wykorzystać kilka narzędzi DNSCHECK.pl.

SPF Checker

Pozwala sprawdzić opublikowaną politykę SPF domeny i przeanalizować jej konfigurację.

DNS Lookup

Umożliwia odczyt rekordów TXT zawierających politykę SPF oraz innych rekordów związanych z konfiguracją domeny.

DNS Propagation Check

Przydatny po zmianie rekordu SPF. Pozwala sprawdzić, czy nowa wartość jest już widoczna w różnych resolverach DNS.

MX Lookup

Umożliwia analizę serwerów pocztowych domeny i stanowi uzupełnienie diagnostyki konfiguracji e-mail.

DKIM Checker

Pozwala zweryfikować drugi z podstawowych mechanizmów uwierzytelniania poczty.

DMARC Checker

Umożliwia analizę polityki DMARC i sprawdzenie konfiguracji współpracującej z SPF oraz DKIM.

Sprawdź SPF swojej domeny

Jeżeli chcesz zweryfikować konfigurację SPF:

  1. Otwórz SPF Checker w DNSCHECK.pl.
  2. Wprowadź nazwę domeny.
  3. Uruchom analizę.
  4. Sprawdź wykrytą politykę SPF.
  5. Zweryfikuj autoryzowane źródła wysyłki.
  6. Sprawdź ewentualne błędy konfiguracji.
  7. Po zmianach zweryfikuj propagację rekordu DNS.

Szczególną uwagę zwróć na wszystkie systemy zewnętrzne wysyłające wiadomości w imieniu Twojej domeny. Pominięcie jednego z nich może powodować problemy z uwierzytelnieniem legalnej poczty.

FAQ

Co oznacza skrót SPF?

SPF oznacza Sender Policy Framework.

Co to jest rekord SPF?

Jest to polityka publikowana w rekordzie TXT DNS, która określa źródła uprawnione do wysyłania poczty dla domeny w zakresie sprawdzanym przez SPF.

Czy SPF jest rekordem DNS?

SPF jest publikowany obecnie jako rekord TXT DNS zawierający politykę rozpoczynającą się od v=spf1.

Jak sprawdzić SPF domeny?

Można odczytać rekord TXT domeny za pomocą DNS Lookup, polecenia dig, nslookup lub dedykowanego SPF Checker.

Jak wygląda poprawny rekord SPF?

Nie istnieje jeden uniwersalny rekord dla wszystkich domen. Przykładowa prosta polityka może wyglądać tak:

v=spf1 ip4:203.0.113.10 -all

Musi jednak odpowiadać rzeczywistej infrastrukturze wysyłającej pocztę.

Co oznacza v=spf1?

Informuje, że dany ciąg TXT zawiera politykę SPF w wersji 1.

Co oznacza -all w SPF?

Oznacza SPF Fail dla źródeł, które nie zostały wcześniej dopasowane do dozwolonych mechanizmów.

Co oznacza ~all w SPF?

Oznacza SoftFail dla źródeł niedopasowanych do wcześniejszych mechanizmów.

Co oznacza include w SPF?

Pozwala wykorzystać politykę SPF wskazanej domeny podczas oceny źródła wysyłki.

Czy można mieć kilka rekordów SPF?

Nie należy publikować kilku oddzielnych rekordów v=spf1 dla tej samej nazwy. Autoryzowane źródła powinny zostać prawidłowo uwzględnione w jednej polityce.

Ile zapytań DNS może wykonać SPF?

SPF określa limit 10 operacji powodujących wyszukiwania DNS podczas oceny polityki.

Czy SPF chroni przed spamem?

SPF może być jednym z sygnałów wykorzystywanych przez systemy antyspamowe, ale sam nie jest kompletnym filtrem antyspamowym.

Czy SPF chroni przed spoofingiem?

Pomaga ograniczać spoofing wykorzystujący nieautoryzowane źródła, ale pełniejsza ochrona domeny wymaga również DKIM i DMARC.

Czy SPF i DKIM to to samo?

Nie. SPF weryfikuje źródło wysyłki względem polityki domeny, natomiast DKIM wykorzystuje podpis kryptograficzny wiadomości.

Czy SPF jest wymagany przez DMARC?

DMARC może uzyskać pozytywny wynik dzięki odpowiednio wyrównanemu SPF albo DKIM. W praktyce zaleca się poprawne wdrożenie obu mechanizmów.

Czy SPF wpływa na dostarczalność poczty?

Tak. Wynik SPF może być jednym z sygnałów wykorzystywanych przez systemy pocztowe podczas oceny wiadomości.

Czy zmiana SPF podlega propagacji DNS?

Tak. Ponieważ polityka SPF znajduje się w DNS, jej zmiany podlegają mechanizmom TTL i cache DNS.

Dlaczego SPF zwraca PermError?

Jedną z możliwych przyczyn jest nieprawidłowa składnia lub przekroczenie ograniczeń SPF, w tym limitu wyszukiwań DNS.

Czy SPF działa przy przekazywaniu poczty?

Forwarding może powodować problemy z SPF, ponieważ końcowy serwer odbierający może zobaczyć adres IP systemu przekazującego zamiast pierwotnego źródła wiadomości.

Czy subdomena może mieć własny SPF?

Tak. Subdomena może publikować własną politykę SPF niezależnie od domeny nadrzędnej.

Czy rekord SPF może zawierać adres IPv6?

Tak. Do autoryzowania adresów i sieci IPv6 służy mechanizm ip6.

Warto przeczytać również

  • Co to jest rekord TXT?
  • Co to jest rekord MX?
  • Jak sprawdzić rekordy DNS domeny?
  • Co to jest TTL DNS?
  • Co to jest DNS Cache?
  • Jak działa DNS Resolver?
  • DNS Propagation – dlaczego zmiany DNS nie są widoczne od razu?
  • Co to jest DKIM i jak działa?
  • Co to jest DMARC i jak działa?

Narzędzie DNSCheck

Sprawdź swoje rekordy DNS

DNS Lookup