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:
- Serwer wysyłający nawiązuje połączenie z serwerem odbiorcy.
- W trakcie sesji SMTP przekazywana jest domena używana przez SPF.
- Serwer odbierający ustala adres IP serwera wysyłającego.
- Pobiera z DNS politykę SPF odpowiedniej domeny.
- Analizuje kolejne mechanizmy rekordu.
- Sprawdza, czy adres IP nadawcy spełnia określone warunki.
- Generuje wynik SPF.
- 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:
- Otwórz SPF Checker w DNSCHECK.pl.
- Wprowadź nazwę domeny.
- Uruchom analizę.
- Sprawdź wykrytą politykę SPF.
- Zweryfikuj autoryzowane źródła wysyłki.
- Sprawdź ewentualne błędy konfiguracji.
- 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?