Rekord DMARC: jak skonfigurować DMARC krok po kroku (p=none → quarantine → reject)
Rekord DMARC to jedna linijka w DNS, ale to on decyduje, co stanie się z wiadomością, która podaje się za Twoją domenę i nie przeszła weryfikacji. Skonfigurowany niedbale albo niczego nie chroni, albo blokuje Twoje własne faktury. Poniżej wszystkie znaczniki, gotowe przykłady i plan przejścia od p=none do p=reject.
Jeśli SPF, DKIM i dopasowanie to dla Ciebie nowe pojęcia, zacznij od artykułu SPF, DKIM i DMARC: uwierzytelnianie poczty — DMARC opiera się na obu.
Gdzie znajduje się rekord DMARC
DMARC to rekord TXT w subdomenie _dmarc domeny z adresu „Od”:
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:[email protected]"
Pod jedną nazwą może być tylko jeden rekord DMARC — jeśli odbiorca znajdzie dwa, zignoruje DMARC dla domeny. Subdomena bez własnego rekordu dziedziczy rekord domeny głównej (example.com).
Znaczniki DMARC
| Znacznik | Znaczenie | Wartości i domyślnie |
|---|---|---|
v | Wersja, zawsze jako pierwszy znacznik | tylko DMARC1 |
p | Polityka dla domeny, wymagany | none, quarantine, reject |
sp | Polityka dla subdomen | te same wartości; domyślnie jak p |
rua | Dokąd wysyłać raporty zbiorcze | adresy mailto: po przecinku |
ruf | Dokąd wysyłać raporty o błędach (forensic) | adresy mailto:; wielu dostawców ich nie wysyła |
pct | Odsetek wiadomości objętych polityką | 0–100, domyślnie 100 |
adkim | Tryb dopasowania DKIM | r łagodny (domyślnie) lub s ścisły |
aspf | Tryb dopasowania SPF | r łagodny (domyślnie) lub s ścisły |
fo | Kiedy generować raport o błędzie | 0 (domyślnie: obie weryfikacje nie przeszły), 1 (dowolna), d, s |
ri | Żądany interwał raportów zbiorczych w sekundach | domyślnie 86400 (doba) |
Dopasowanie łagodne i ścisłe. W łagodnym domeny muszą mieć tylko wspólną domenę organizacyjną: podpis z d=news.example.com pasuje do „Od” example.com. Ścisłe wymaga identycznej domeny. Dla niemal wszystkich właściwy jest tryb łagodny.
Przykładowe rekordy DMARC
Tylko monitorowanie — bezpieczny start:
v=DMARC1; p=none; rua=mailto:[email protected]
Kwarantanna dla jednej czwartej wiadomości, które nie przeszły:
v=DMARC1; p=quarantine; pct=25; rua=mailto:[email protected]
Pełna ochrona razem z subdomenami:
v=DMARC1; p=reject; sp=reject; rua=mailto:[email protected]
Domena, która w ogóle nie wysyła poczty (razem z v=spf1 -all):
v=DMARC1; p=reject; sp=reject
Po opublikowaniu sprawdź rekord w sprawdzeniu DMARC: pokaże błędy składni i to, jak odczytano każdy znacznik.
Jak skonfigurować DMARC krok po kroku
- Najpierw upewnij się, że działają SPF i DKIM. Sprawdź je w sprawdzeniu SPF i sprawdzeniu DKIM. Bez nich DMARC będzie zbierać wyłącznie raporty o błędach.
- Wybierz adres na raporty. Raporty zbiorcze to pliki XML, przy aktywnej domenie nawet dziesiątki dziennie. Użyj osobnej skrzynki lub serwisu analizy raportów, a nie prywatnej poczty.
- Opublikuj
p=nonezruaw panelu dostawcy DNS: nazwa_dmarc, typ TXT. - Zbieraj raporty przez 2–4 tygodnie, żeby ujawnili się nadawcy wysyłający raz w tygodniu lub miesiącu: faktury, listy płac, newslettery.
- Popraw każde prawdziwe źródło, które nie przechodzi: włącz w nim DKIM z Twoją domeną albo dodaj je do SPF z dopasowanym Return-Path.
- Przejdź na
p=quarantine, opcjonalnie zpct=25, potem 50 i 100, sprawdzając raporty po każdym kroku. - Przejdź na
p=reject, gdy kwarantanna działa bez niespodzianek przez kilka tygodni.
Jak czytać raporty zbiorcze
Każdy raport pochodzi od jednego dostawcy poczty i obejmuje jeden okres, zwykle dobę. W środku znajdziesz wiersze podobne do tych (w uproszczeniu):
| IP źródła | Liczba | SPF | DKIM | Decyzja |
|---|---|---|---|---|
| 203.0.113.10 | 1240 | pass, dopasowany | pass, dopasowany | none |
| 198.51.100.25 | 310 | pass, niedopasowany | fail | none |
| 192.0.2.77 | 12 | fail | fail | none |
- Oba dopasowane — Twój główny serwer, wszystko w porządku.
- SPF przechodzi, ale bez dopasowania, DKIM nie przechodzi — typowa usługa zewnętrzna z własnym Return-Path i bez Twojego klucza DKIM. Ustal, do kogo należy IP, i włącz tam DKIM z Twoją domeną. Przy
p=rejectta poczta zostałaby zablokowana. - Wszystko nie przechodzi z nieznanego IP — zapomniany system albo podszywanie się. Do wykrywania podszywania DMARC właśnie służy, ale najpierw upewnij się, że to nie Twój zapomniany serwer.
Oprócz wierszy każdy raport ma nagłówek: kto go wysłał (Google, Yahoo, Microsoft i inni), za jaki okres i jaką politykę dostawca zobaczył w Twoim DNS. To ostatnie przydaje się do kontroli: jeśli tydzień po opublikowaniu quarantine raport wciąż pokazuje p=none, odbiorca widzi stary lub zdublowany rekord. Raporty przychodzą jako skompresowane załączniki (zip lub gzip), jeden od dostawcy na dobę, więc przy aktywnej domenie szybko zbierają się setki plików.
Surowy XML w dużych ilościach czyta się trudno, dlatego większość zespołów używa serwisów do analizy. Nawet bez nich ręczne otwarcie kilku raportów w pierwszym tygodniu wystarczy, żeby zauważyć nieznanych nadawców.
Polityka dla subdomen
Znacznik sp ustala politykę dla subdomen bez własnego rekordu DMARC. Dwa typowe warianty:
p=reject; sp=reject— wszystko zamknięte, gdy masz pewność co do konfiguracji.p=reject; sp=none— domena główna chroniona, subdomeny jeszcze w testach. Nie zostawiaj tego na długo: podszywanie się podbilling.example.comdziała na oszustów równie dobrze.
Subdomena, która sama wysyła pocztę, np. news.example.com, może mieć własny rekord _dmarc.news.example.com — ma on pierwszeństwo przed sp.
Raporty na adres w innej domenie
Jeśli adres w rua należy do innej domeny — zwykle serwisu analizy raportów — ta domena musi potwierdzić, że zgadza się je przyjmować. W przeciwnym razie dostawcy poczty pominą ten adres. Zgoda to rekord TXT po stronie odbiorcy raportów:
example.com._report._dmarc.reports-provider.net. TXT "v=DMARC1"
Serwisy raportowe zwykle publikują go same albo ustawiają rekord z gwiazdką dla wszystkich klientów. Sprawdzenie DMARC weryfikuje ten rekord dla każdego zewnętrznego adresu w rua i ruf.
Najczęstsze błędy w rekordzie DMARC
- Zła nazwa. Rekord umieszcza się w
_dmarc, a nie w samej domenie. Jeśli panel DNS sam dopisuje domenę, wpisz tylko_dmarc, inaczej powstanie_dmarc.example.com.example.com. v=DMARC1nie jako pierwszy albo z literówką, np.v=DMARC 1ze spacją. Odbiorcy uznają, że rekordu nie ma.- Brak
mailto:wrua. Wartość musi być adresem URI:rua=mailto:[email protected], a nie samą skrzynką. - Dwa rekordy DMARC pozostałe po zmianie serwisu raportów. Zostaw jeden, a kilka adresów wpisz w
ruapo przecinku. - Polityka zaostrzona, ale nikt nie czyta raportów. Rekord z
p=rejecti pełną lub porzuconą skrzynkąruaoznacza, że nie zauważysz, gdy nowa usługa zacznie nie przechodzić weryfikacji.
Po każdej zmianie daj DNS czas na aktualizację (zwykle od minut do kilku godzin, zależnie od TTL rekordu) i sprawdź wynik w sprawdzeniu DMARC. Pierwsze raporty zbiorcze przychodzą zwykle w ciągu doby lub dwóch, bo większość dostawców wysyła je raz dziennie.
Co psuje się przy p=reject
- Listy dyskusyjne, które dopisują stopkę albo znacznik w temacie, łamią DKIM, a IP serwera listy łamie SPF. Wiele list przepisuje teraz adres „Od”; pomaga też ARC — mechanizm zachowujący wyniki weryfikacji przy przekazywaniu.
- Zwykłe przekierowanie łamie SPF, ale zachowuje DKIM, jeśli wiadomość nie została zmieniona. Kolejny powód, by DKIM był główną dopasowaną weryfikacją.
- Formularze na stronie, które wysyłają wiadomość „od odwiedzającego” albo z Twojej domeny przez pocztę hostingu. Wysyłaj je przez usługę z uwierzytelnieniem Twojej domeny.
Przed taką zmianą sprawdź też rekordy MX w sprawdzeniu MX: raporty przychodzą pocztą i muszą gdzieś trafić.