Co robi każdy z trzech
SPF (RFC 7208). Rekord DNS typu TXT na waszej domenie, mówiący “tylko te serwery mogą wysyłać pocztę z @wasza-domena.pl.” Przykład: v=spf1 include:_spf.google.com include:sendgrid.net ~all. Odbiorca sprawdza, czy IP nadawcy mieści się w tej liście. Jeśli nie - sam SPF nie blokuje, tylko zwraca wynik “fail” lub “softfail” do warstwy DMARC.
DKIM (RFC 6376). Dostawca poczty podpisuje każdą wychodzącą wiadomość kluczem prywatnym. Klucz publiczny jest opublikowany w DNS pod selector._domainkey.wasza-domena.pl. Odbiorca pobiera klucz publiczny, weryfikuje podpis. Jeśli wiadomość była modyfikowana po wysłaniu - podpis się nie zgadza, DKIM zwraca “fail.”
DMARC (RFC 7489). Polityka egzekwowania + raportowanie. Mówi serwerowi odbierającemu: “Jeśli ani SPF ani DKIM nie zgadzają się z domeną w polu From, [nic nie rób / przenieś do spamu / odrzuć].” Dodatkowo wysyła wam raporty XML o każdej wiadomości próbowanej z waszej domeny - widzicie, kto się pod was podszywa.
Dlaczego potrzebne są wszystkie trzy
SPF jeden ma dwie luki: nie chroni przed forwardingiem (przekierowanie maila zmienia IP nadawcy, SPF fails) i nie egzekwuje samodzielnie. DKIM chroni przed modyfikacją treści, ale nie mówi odbiorcy co robić przy fail. Dopiero DMARC łączy obie warstwy i wymusza politykę.
Razem: nikt nie może wysłać legitymnego maila “od was” bez dostępu do waszej infrastruktury. To zamyka główny wektor BEC.
Procedura wdrożenia
Krok 1 - SPF. Inwentaryzacja: kto wysyła pocztę z waszej domeny? Google Workspace / Microsoft 365 / SendGrid / Mailgun / Brevo / system księgowy wysyłający faktury / hosting strony. Każdy dostawca ma własny include w SPF. Skonfigurujcie rekord, zostawiając ~all (softfail) na start.
Krok 2 - DKIM. Włączcie u głównego dostawcy poczty (Google Workspace lub Microsoft 365). Wygeneruje klucz, daje wam wartość do dodania do DNS. Zapisanie rekordu zajmuje 5 minut, propagacja 1-24h.
Krok 3 - DMARC w p=none. Dodajcie rekord _dmarc.wasza-domena.pl z v=DMARC1; p=none; rua=mailto:raporty@wasza-domena.pl; ruf=mailto:raporty@wasza-domena.pl; pct=100. To NIE egzekwuje - tylko zbiera raporty.
Krok 4 - Analiza raportów (4-8 tygodni). Czytajcie cotygodniowe XML-e (lub używajcie narzędzia jak dmarcian / Postmark DMARC). Zidentyfikujcie wszystkich legitymnych nadawców. Naprawcie tych, którzy nie przechodzą SPF/DKIM.
Krok 5 - p=quarantine. Gdy 100% legitymnego ruchu przechodzi, przejdźcie na p=quarantine. Sfałszowane wiadomości trafiają do spamu odbiorcy.
Krok 6 - p=reject. Po dodatkowym miesiącu - finalna polityka. Sfałszowane wiadomości są odrzucane przez serwer odbierający, nawet nie docierają do spam.
Cała procedura - 2-3 miesiące. Większość pracy to monitoring i poprawki w pierwszych 8 tygodniach.
Najczęstszy błąd
Skok od razu na p=reject bez fazy raportów. Konsekwencja: pierwszy mail z nowego dostawcy (np. nowy mailing produkcyjny przez SendGrid) jest natychmiast odrzucany. Klient go nie dostaje, wy nie wiecie, że problem występuje, dopóki ktoś nie zadzwoni z pytaniem “dlaczego nie dostałem faktury.”
Cierpliwość 4-8 tygodni w p=none jest tańsza niż jeden klient nie dostający krytycznej wiadomości.