Rekord SPF (Sender Policy Framework) to opublikowana w DNS polityka, która określa, jakie serwery mogą wysyłać pocztę z użyciem danej domeny w adresie envelope-from, nazywanym także Return-Path. SPF pomaga ocenić, czy serwer wysyłający wiadomość jest uprawniony do użycia tej domeny.
Spis treści
Gdzie publikuje się rekord SPF
Rekord SPF publikuje się w DNS jako rekord typu TXT. Dla jednej domeny i danego zakresu należy używać najwyżej jednego rekordu zaczynającego się od v=spf1. Kilka rekordów SPF może powodować błąd oceny polityki. Dawny osobny typ DNS SPF nie jest współczesnym zalecanym rozwiązaniem.
Podstawowa składnia rekordu SPF
v=spf1 mechanizm modyfikator mechanizm kwalifikator... v=spf1 wskazuje wersję SPF. Pozostałe elementy są sprawdzane w kolejności od lewej do prawej. Rekord może zawierać mechanizmy, kwalifikatory i modyfikatory.
Kwalifikatory i wynik dopasowania
| Kwalifikator | Wynik | Znaczenie |
|---|---|---|
+ | pass | Serwer jest dozwolony. To wartość domyślna. |
- | fail | Serwer nie jest dozwolony. |
~ | softfail | Serwer prawdopodobnie nie jest dozwolony, ale wynik jest mniej stanowczy. |
? | neutral | Polityka nie wskazuje jednoznacznej oceny. |
Brak kwalifikatora oznacza +. Kwalifikator zmienia wynik tylko wtedy, gdy poprzedzający go mechanizm dopasuje się do sprawdzanego serwera.
Mechanizmy SPF
all
Składnia: all. Mechanizm dopasowuje każdy adres. Zwykle umieszcza się go na końcu, na przykład -all, aby określić działanie dla serwerów, które nie pasują do wcześniejszych elementów.
ip4 i ip6
Składnia: ip4:adres-lub-zakres albo ip6:adres-lub-zakres. Elementy wskazują dozwolone adresy IPv4 lub IPv6, na przykład:
v=spf1 ip4:192.0.2.10 ip6:2001:db8::10 -all To właściwy wybór, gdy znasz adresy serwerów wysyłających pocztę. Ryzykiem jest pozostawienie starego adresu po zmianie infrastruktury.
a
Składnia: a lub a:domena. Mechanizm dopasowuje adresy z rekordów A i AAAA wskazanej domeny. Bez nazwy po dwukropku używana jest domena ocenianego rekordu. Mechanizm może być przydatny, gdy serwer pocztowy działa pod adresem powiązanym z domeną, ale zmiana rekordów DNS zmienia także wynik SPF.
mx
Składnia: mx lub mx:domena. Mechanizm dopasowuje adresy serwerów wskazanych przez rekordy MX danej domeny. Należy go stosować tylko wtedy, gdy serwery z rekordów MX rzeczywiście wysyłają pocztę, ponieważ ich adresy są uwzględniane podczas sprawdzania.
include
Składnia: include:domena. Mechanizm odwołuje się do polityki SPF innej domeny. Dopasowanie include występuje tylko wtedy, gdy zewnętrzna polityka zwróci wynik pass. To praktyczne rozwiązanie przy korzystaniu z zewnętrznej usługi pocztowej, ale każde odwołanie może wymagać dodatkowych zapytań DNS.
v=spf1 ip4:192.0.2.10 include:_mail.dhosting.pl -all exists
Składnia: exists:domena. Mechanizm dopasowuje się, gdy wskazana nazwa domenowa zwróci wynik DNS. Jego zastosowanie wymaga świadomego przygotowania zależności DNS, a dodatkowe sprawdzenie może zwiększyć liczbę zapytań.
ptr
Składnia: ptr lub ptr:domena. Jest to mechanizm historyczny i niezalecany. Może powodować problemy z wydajnością i wiarygodnością oceny oraz zużywać limity zapytań SPF. Przy projektowaniu nowego rekordu użyj jawnych adresów ip4 lub ip6, jeśli są dostępne.
Modyfikatory SPF
redirect
Składnia: redirect=domena. Modyfikator przekazuje ocenę do innej polityki SPF, gdy żaden mechanizm w bieżącym rekordzie nie dopasuje się. Pozwala współdzielić politykę, ale utrudnia analizę, jeśli domena docelowa jest nieoczywista.
exp
Składnia: exp=domena. Modyfikator wskazuje domenę z tekstem objaśniającym przy wyniku fail. Ma ograniczone praktyczne zastosowanie i nie zmienia samego faktu, czy serwer został dozwolony.
Kolejność oceny i limity DNS
Elementy SPF są oceniane od lewej do prawej. Pierwszy mechanizm, który dopasuje się do serwera, ustala wynik zgodnie z kwalifikatorem. Jeśli żaden mechanizm się nie dopasuje, używany jest redirect, jeżeli został zdefiniowany. W przeciwnym razie ocena kończy się bez dopasowania.
Mechanizmy a, mx, include, exists i ptr mogą wykonywać zapytania DNS. SPF ma limit takich zapytań, dlatego rozbudowany rekord może przestać działać poprawnie. Do typowych przyczyn problemów należą liczne odwołania include, zagnieżdżone polityki oraz używanie a lub mx bez potrzeby.
Przykłady rekordów SPF
v=spf1 ip4:192.0.2.10 -all Ten rekord zezwala na wysyłkę z adresu 192.0.2.10. Pozostałe adresy otrzymują wynik fail.
v=spf1 a mx include:_mail.dhosting.pl ~all Ten zapis dopuszcza adresy domeny, adresy serwerów MX oraz serwery wskazane przez zewnętrzną politykę. Pozostałe adresy otrzymują wynik softfail.
SPF, DKIM i DMARC
SPF sprawdza uprawnienie serwera do wysyłki na podstawie domeny envelope-from lub Return-Path. DKIM wykorzystuje podpis wiadomości, a DMARC określa zasady postępowania z wiadomościami oraz wiąże kontrolę domeny z widocznym polem From:. SPF samodzielnie nie weryfikuje bezpośrednio tego pola i nie gwarantuje dostarczenia wiadomości.
Lista kontrolna poprawności
- Rekord jest typu
TXTi zaczyna się odv=spf1. - Domena ma najwyżej jeden rekord SPF.
- Każdy używany nadawca ma odpowiedni mechanizm.
- Reguła
allznajduje się na końcu. - Nie używasz mechanizmu
ptrw nowym rekordzie. - Liczba odwołań DNS, szczególnie przez
include, nie jest niepotrzebnie rozbudowana.
