Czym jest DMARC?
DMARC (Domain-based Message Authentication, Reporting & Conformance) to protokół uwierzytelniania poczty elektronicznej oparty na SPF i DKIM. Pozwala właścicielom domen publikować politykę określającą, jak serwery odbiorcze mają obsługiwać wiadomości, które nie przejdą uwierzytelniania, oraz udostępnia mechanizmy raportowania do monitorowania uwierzytelniania poczty.
Dlaczego DMARC jest niezbędny?
Sam SPF i DKIM mają istotną lukę: nie informują odbiorców, co zrobić z wiadomościami, które nie przejdą kontroli. Atakujący może wysłać sfałszowaną wiadomość bez SPF/DKIM, a odbiorca nie otrzyma wskazówek dotyczących jej obsługi.
DMARC rozwiązuje ten problem przez:
- Określenie polityki: odrzucanie, umieszczanie w kwarantannie lub zezwalanie na wiadomości, które nie przejdą kontroli
- Wymaganie wyrównania: domena w nagłówku From musi odpowiadać domenom SPF/DKIM
- Włączenie raportowania: raporty zbiorcze i szczegółowe pokazują wyniki uwierzytelniania
Jak działa DMARC?
1. Nadawca publikuje politykę DMARC w DNS (rekord TXT pod adresem _dmarc.domain.com)
2. Wiadomość jest wysyłana z nagłówkiem From: [email protected]
3. Odbiorca sprawdza SPF i DKIM
4. Odbiorca sprawdza wyrównanie: czy uwierzytelniona domena odpowiada domenie w nagłówku From?
5. Stosowana jest polityka: zgodnie z rekordem DMARC (none, quarantine, reject)
6. Wysyłane są raporty: raporty zbiorcze trafiają na wskazane adresy
Wyrównanie DMARC
DMARC wymaga „wyrównania”, czyli zgodności domeny w nagłówku From z jedną z poniższych domen:
- Wyrównanie SPF: domena nadawcy kopertowego (MAIL FROM)
- Wyrównanie DKIM: domena d= w podpisie DKIM
Bez wyrównania SPF/DKIM mogą przejść pomyślnie, ale DMARC zakończy się niepowodzeniem.
Format rekordu DMARC
Rekordy DMARC są rekordami TXT pod adresem _dmarc.yourdomain.com:
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:[email protected]"
Znaczniki DMARC
| Znacznik | Wymagany | Opis | Przykład |
|---|---|---|---|
| v | Tak | Wersja | v=DMARC1 |
| p | Tak | Polityka | p=none/quarantine/reject |
| rua | Nie | URI raportu zbiorczego | rua=mailto:[email protected] |
| ruf | Nie | URI raportu szczegółowego | ruf=mailto:[email protected] |
| pct | Nie | Procent stosowania polityki | pct=100 |
| sp | Nie | Polityka subdomeny | sp=reject |
| adkim | Nie | Tryb wyrównania DKIM | adkim=s (strict) lub adkim=r (relaxed) |
| aspf | Nie | Tryb wyrównania SPF | aspf=s lub aspf=r |
Polityki DMARC
p=none: tylko monitorowanie, bez działań wobec wiadomości, które nie przejdą kontroliv=DMARC1; p=none; rua=mailto:[email protected]
p=quarantine: kierowanie wiadomości, które nie przejdą kontroli, do spamu lub folderu niechcianej poczty
v=DMARC1; p=quarantine; rua=mailto:[email protected]
p=reject: całkowite odrzucanie wiadomości, które nie przejdą kontroli
v=DMARC1; p=reject; rua=mailto:[email protected]
Ścieżka wdrażania DMARC
Faza 1: Monitorowanie (p=none)
Zacznij od monitorowania, aby poznać ekosystem swojej poczty:
v=DMARC1; p=none; rua=mailto:[email protected]
Analizuj raporty przez 2-4 tygodnie, aby zidentyfikować:
- Legalne usługi wysyłkowe bez SPF/DKIM
- Nieautoryzowanych nadawców (podszywanie się)
- Problemy z wyrównaniem
Faza 2: Kwarantanna (p=quarantine)
Po uwierzytelnieniu legalnych źródeł:
v=DMARC1; p=quarantine; pct=10; rua=mailto:[email protected]
Użyj pct=10, aby początkowo kierować do kwarantanny tylko 10% wiadomości, a następnie stopniowo zwiększaj tę wartość.
Faza 3: Odrzucanie (p=reject)
Pełna ochrona:
v=DMARC1; p=reject; rua=mailto:[email protected]
Raporty DMARC
Raporty zbiorcze (rua)
Codzienne raporty XML pokazujące wyniki uwierzytelniania dla całej poczty:
- Liczba wiadomości
- Wskaźniki powodzenia i niepowodzenia SPF, DKIM oraz DMARC
- Adresy IP nadawców
- Organizacje odbiorców
Raporty szczegółowe (ruf)
Pojedyncze raporty o niepowodzeniach, których nie wszyscy odbiorcy wysyłają ze względów prywatności:
- Pełne nagłówki wiadomości
- Szczegóły niepowodzenia uwierzytelniania
Przetwarzanie raportów
Surowe raporty DMARC są zapisane w XML i trudne do odczytania. Możesz użyć usług takich jak:
- DMARC Analyzer
- Dmarcian
- Valimail
- Postmark DMARC
Sprawdzanie DMARC
dig _dmarc.example.com TXT
curl "https://domscan.net/v1/health?domain=example.com"
# Returns hasDMARC status
Typowe problemy z DMARC
Brak otrzymanych raportów: upewnij się, że adres rua może odbierać duże wiadomości; niektórzy dostawcy je filtrują. Niepowodzenia legalnej poczty: sprawdź konfigurację SPF/DKIM dla wszystkich usług wysyłkowych i zweryfikuj wyrównanie. Niepowodzenia usług zewnętrznych: wiele usług wymaga niestandardowej konfiguracji DKIM, aby uzyskać wyrównanie DMARC.DMARC jest zwieńczeniem uwierzytelniania poczty. Wdróż go po prawidłowym skonfigurowaniu SPF i DKIM.