Jak skonfigurować DKIM w Postfixie w 2026 roku (OpenDKIM i Rspamd)

autor:

Ostatnia aktualizacja:
13 czas czytania: 13 minut
Jak skonfigurować DKIM w Postfixie w 2026 roku (OpenDKIM i Rspamd)

Kluczowe wnioski

  • Postfix nie posiada wbudowanego modułu podpisującego DKIM, dlatego należy podłączyć moduł typu milter (OpenDKIM lub Rspamd), który podpisuje każdą wychodzącą wiadomość przed jej opuszczeniem serwera.
  • OpenDKIM nadal działa w zakresie podpisywania, ale w ostatnich latach aktywność w projekcie głównej gałęzi była niewielka. Wybierz to rozwiązanie w przypadku prostych konfiguracji obejmujących jedną domenę, gdzie możesz sprawdzić aktualną obsługę przez dystrybucję, a w przypadku poczty obejmującej wiele domen lub poczty produkcyjnej lepiej wybierz Rspamd.
  • Należy stosować klucze RSA o długości co najmniej 2048 bitów; klucze 1024-bitowe zostały wycofane zgodnie z RFC 8301. Jeśli zarówno serwer MTA/milter, jak i dostawca usług DNS obsługują algorytm Ed25519, należy preferować ten algorytm.
  • Większość błędów związanych z brakiem podpisu wynika z niezgodności gniazda lub uprawnień. Jeśli program Postfix uruchamia smtpd w środowisku chroot (co jest powszechne w niektórych pakietach Debiana/Ubuntu), umieść gniazdo OpenDKIM w katalogu spool programu Postfix i upewnij się, że użytkownik postfix ma do niego dostęp (np. poprzez dodanie użytkownika postfix do grupy opendkim).
  • Sam pozytywny wynik weryfikacji DKIM to za mało. Aby DMARC działał prawidłowo, konieczne jest zapewnienie zgodności – domena podpisująca musi być zgodna z nagłówkiem „From:”, a klucze powinny być odnawiane co najmniej raz w roku.

DKIM w Postfixie to podpis kryptograficzny, który dołącza się do wysyłanej poczty, aby serwery odbiorcze mogły potwierdzić, że wiadomość rzeczywiście pochodzi z Twojej domeny i nie została zmieniona podczas przesyłania. 

Postfix sam z siebie tego nie robi. Należy podłączyć „milter” (filtr poczty), który podpisuje każdą wiadomość opuszczającą serwer.

W niniejszym przewodniku omówiono krok po kroku proces konfiguracji DKIM w Postfixie w 2026 roku: od wyboru modułu milter i wygenerowania nowoczesnych kluczy, po zintegrowanie go z Postfixem oraz rotację kluczy, zanim staną się one zagrożeniem.

OpenDKIM a Rspamd: Które rozwiązanie wybrać w 2026 roku?

Zanim będzie można podpisać jakąkolwiek wiadomość, należy wybrać moduł milter odpowiedzialny za podpisywanie. OpenDKIM i Rspamd to dwa najpopularniejsze rozwiązania do obsługi DKIM w połączeniu z Postfixem w 2026 roku.

Oba rozwiązania zapewnią prawidłowe uwierzytelnianie wysyłanej poczty. Różnią się one jednak pod względem wymagań dotyczących ich uruchomienia oraz tego, na ile można na nich polegać w przyszłości.

KryteriaOpenDKIMRspamd
Stan konserwacjiNiewielka aktywność w projekcie; ostatnia stabilna wersja to 2.10.3 (maj 2015 r.); gałąź 2.11.0 jest w fazie beta. Repozytorium Debian testing oznaczyło ten pakiet do automatycznego usunięcia (czerwiec 2026 r.) z powodu błędu związanego z zależnością od biblioteki libmemcached.Aktywny rozwój, częste aktualizacje
Co robiWyłącznie podpisywanie/weryfikacja DKIMPodpis DKIM oraz kompleksowe filtrowanie spamu
Złożoność konfiguracjiProste, jednofunkcyjneWięcej ruchomych elementów z przodu
Integracja z PostfixemMilter (gniazdo)Milter (gniazdo proxy)
Interfejs użytkownika w sieci WWWBrakWbudowany pulpit nawigacyjny

OpenDKIM poprawnie podpisuje wiadomości e-mail, a obecnie miliony serwerów polegają na tym rozwiązaniu. Należy jednak wziąć pod uwagę ryzyko związane z jego utrzymaniem, zanim zdecydujesz się na jego wdrożenie. 

Ostatnią stabilną wersją z głównego gałęzi była wersja 2.10.3 z 12 maja 2015 r. Gałąź 2.11.0, w której dodano obsługę algorytmu Ed25519, nigdy nie wyszła z fazy beta. OpenDKIM nadal niezawodnie podpisuje wiadomości e-mail i pozostaje w pakietach głównych dystrybucji, ale w gałęzi testowej Debiana wersja 2.11.0~beta2 została oznaczona do automatycznego usunięcia (obecnie zaplanowanego na czerwiec 2026 r.) z powodu problemu z zależnością przechodnią od biblioteki libmemcached, a nie z powodu zaprzestania wsparcia przez autora. Przed podjęciem decyzji o długoterminowym wykorzystaniu OpenDKIM w środowisku produkcyjnym należy sprawdzić aktualny status pakietu w swojej dystrybucji.

Możesz z tego korzystać już dziś, ale opierasz się na oprogramowaniu, którego twórcy od dziesięciu lat nie wydali stabilnej wersji, i to właśnie jest ryzyko długoterminowe, które należy wziąć pod uwagę. 

Rspamd to aktywnie rozwijana alternatywa. Obsługuje podpisywanie DKIM i filtruje spam z jednego modulu filtrującego (milter), dzięki czemu wystarczy uruchomić jedną usługę zamiast dwóch, jeśli potrzebna jest również ochrona poczty przychodzącej. Postfix jest najczęściej stosowanym serwerem MTA w połączeniu z Rspamd, a stosy takie jak Mailcow polegają na nim w zakresie podpisywania DKIM zamiast na OpenDKIM. 

Oto jak dokonać wyboru:

  • Wybierz OpenDKIM jeśli zarządzasz jedną domeną i chcesz jak najprostszą konfigurację z podpisywaniem DKIM i niczym więcej.
  • Wybierz Rspamd , jeśli zarządzasz wieloma domenami, wysyłasz wiadomości produkcyjne lub korzystasz z rozwiązań takich jak Mailcow lub iRedMail.

Tak czy inaczej, poniżej omówiono obie opcje. Przejdź bezpośrednio do tej, którą wybrałeś.

Warto przeczytać: Czym jest DKIM?

Wymagania wstępne przed rozpoczęciem pracy

Zanim wygenerujesz klucz lub edytujesz plik konfiguracyjny, upewnij się, że te cztery elementy są już gotowe 

  • Działająca instalacja Postfixa, która już wysyła wiadomości e-mail: DKIM podpisuje wiadomości wysyłane przez serwer, więc serwer musi najpierw wysyłać je bezbłędnie. Jeśli Postfix nie został jeszcze skonfigurowany, należy to zrobić przed kontynuowaniem.
  • Dostęp do DNS dla Twojej domeny: Twoje rekordy A i MX powinny być już opublikowane, a ponadto musisz mieć możliwość dodania rekordu TXT, ponieważ to właśnie tam będzie przechowywany Twój klucz publiczny.
  • Uprawnienia administratora lub dostęp za pomocą sudo na serwerze pocztowym: Będziesz edytować pliki konfiguracyjne systemu i restartować usługi.
  • Dostawca usług DNS, który obsługuje długie rekordy TXT: Klucz o długości 2048 bitów przekracza limit 255 znaków dla pojedynczego ciągu TXT, dlatego niektórzy dostawcy wymagają podzielenia go na dwa ciągi ujęte w cudzysłowy. Przed wygenerowaniem klucza upewnij się, że Twój dostawca obsługuje tę funkcję.

Najpierw wybierz rozmiar klucza: RSA 2048-bitowy lub Ed25519, jeśli zarówno Twój serwer MTA/milter, jak i dostawca usług DNS obsługują ten algorytm, ale nigdy nie wybieraj klucza 1024-bitowego. RFC 8301 zabrania stosowania algorytmu SHA-1 (NIE WOLNO używać rsa-sha1) i zaleca 2048-bitowy RSA jako minimum na poziomie „POWINIEN”, podczas gdy 1024-bitowy pozostaje minimalnym wymogiem protokołu (NALEŻY używać co najmniej 1024 bitów). Słabe klucze dają odbiorcom powód, by nie ufać Twojej poczcie.

Jak skonfigurować DKIM w Postfixie przy użyciu OpenDKIM

OpenDKIM to najprostszy sposób na dodanie podpisu DKIM do serwera Postfix obsługującego jedną domenę — wystarczy jeden demon, jeden klucz i żadnych dodatkowych elementów. Poniższe pięć kroków pozwoli Ci przekształcić serwer wysyłający niepodpisane wiadomości w serwer podpisujący każdą wychodzącą wiadomość kluczem, który odbiorcy mogą zweryfikować. Każdy krok opiera się na poprzednim, więc wykonuj je po kolei 

Krok 1: Zainstaluj OpenDKIM

Zainstaluj dwa pakiety: opendkim (sam demon podpisujący) oraz opendkim-tools (narzędzia służące do generowania kluczy).

Ubuntu 24.04 / Debian 12:

bash

sudo apt update

sudo apt zainstaluj opendkim opendkim-tools

RHEL / Rocky 9 (pakiet OpenDKIM jest dostępny w repozytorium EPEL):

bash

sudo dnf zainstaluj epel-release

sudo dnf zainstaluj opendkim opendkim-tools

Włącz usługę, aby uruchamiała się podczas startu systemu:

bash

sudo systemctl włącz opendkim

Uwaga: W niektórych dystrybucjach nazwa usługi lub nazwa użytkownika/grupy może się różnić (np. opendkim vs. opendkim-daemon, opendkim:opendkim vs. opendkim:postfix). Jeśli polecenia nie są zgodne, sprawdź dokumentację pakietu lub jednostkę systemd.

Krok 2: Wygeneruj parę kluczy DKIM

Utwórz katalog, w którym będą przechowywane klucze domeny, a następnie wygeneruj parę kluczy o długości 2048 bitów:

bash

sudo mkdir -p /etc/opendkim/keys/example.com

sudo opendkim-genkey -b 2048 -d example.com -s selector2026 \

  -D /etc/opendkim/keys/example.com/

Funkcje poszczególnych flag:

FlagaZnaczenie
-b 2048Długość klucza w bitach – RSA 2048-bitowy
-d example.comDomena, dla której dokonujesz podpisu
-s selector2026Nazwa selektora (patrz uwaga poniżej)
-D /etc/opendkim/keys/example.com/Gdzie zapisać pliki wyjściowe

W selektorze: na -s jest etykietą, która pojawi się w Twoim rekordzie DNS. Użyj nazwy opartej na roku, takiej jak selector2026. Teraz nic to nie kosztuje, a w przyszłym roku ułatwi rotację – wtedy wygenerujesz selector2027 , a stary wpis pozostanie aktywny podczas zmiany.

To polecenie tworzy dwa pliki:

PlikCzym to jestZasada
selector2026.privateTwój prywatny klucz podpisującyNigdy tego nie udostępniaj; zadbaj o to, by tylko OpenDKIM mógł to odczytać
selector2026.txtKlucz publiczny w formacie zgodnym z DNSOto, co należy opublikować w kroku 5

Teraz ustaw uprawnienia właściciela. Nieprawidłowe uprawnienia są najczęstszą przyczyną niepowodzeń podpisywania przez OpenDKIM, więc nie pomijaj tego kroku:

bash

sudo chown -R opendkim:opendkim /etc/opendkim/keys

sudo chmod 600 /etc/opendkim/keys/example.com/selector2026.private

Zmodyfikuj nazwę użytkownika/grupy, jeśli Twoja dystrybucja używa innych nazw (np. opendkim:postfix). Aby to sprawdzić, zapoznaj się z dokumentacją pakietu lub jednostką systemd.

Krok 3: Skonfiguruj OpenDKIM

OpenDKIM odczytuje swoje główne ustawienia z pliku /etc/opendkim.conf, a następnie korzysta z trzech niewielkich plików odnośników, aby zdecydować, co podpisać i jakim kluczem. Najpierw należy ustawić podstawowe dyrektywy:

Syslogtak
UMask2
Trybs
Kanonicyzacjazrelaksowany/zrelaksowany
Gniazdolocal:/var/spool/postfix/opendkim/opendkim.sock
PidFile/run/opendkim/opendkim.pid
Nadpisywanie nagłówkówZe strony
Tabela kluczy/etc/opendkim/key.table
Tabela podpisówrefile:/etc/opendkim/signing.table
Lista zewnętrznych elementów do pominięcia/etc/opendkim/trusted.hosts
InternalHosts/etc/opendkim/trusted.hosts

Jakie są skutki tych ważnych dyrektyw:

DyrektywaCo kontroluje
TrybyTylko podpis. Użyj opcji „sv”, jeśli chcesz, aby OpenDKIM weryfikował również pocztę przychodzącą.
Kanonicyzacja złagodzona/złagodzonaAkceptuje niewielkie zmiany w znakach spacji podczas przesyłania, dzięki czemu podpisy pozostają ważne. Uwaga: kanonizacja nie ma wpływu na zgodność z DMARC. Zgodność z DMARC zależy od tego, czy domena d= w podpisie DKIM pokrywa się z domeną w nagłówku „From:”, a nie od ustawienia kanonizacji.
GniazdoMiejsce, w którym OpenDKIM nasłuchuje połączeń z Postfixem. Ścieżka ta musi być zgodna z ustawieniem, które później wprowadzisz w Postfixie.
OversignHeaders ZPodpisuje nagłówek „From”, dzięki czemu osoba atakująca nie może dodać drugiego nagłówka — to niewielki, ale skuteczny środek zapobiegający sfałszowaniu adresu.
Tabela kluczy / Tabela podpisówDwa pliki odnośników, które łączą domeny z selektorami i kluczami (poniżej).

Następnie utwórz trzy pliki odnośników. Każdy z nich ma jedno zadanie:

PlikPracaPrzykładowy wiersz
tabela podpisówPrzypisuje nadawcę do selektora*@example.com selector2026._domainkey.example.com
tabela kluczyMapuje ten selektor do jego klucza prywatnego na dyskuselector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private
trusted.hostsWyświetla listę hostów, których wiadomości wychodzące powinny być podpisane127.0.0.1 / localhost / ::1 / example.com

Krok 4: Podłącz OpenDKIM do Postfixa

To właśnie w tym miejscu większość konfiguracji zawodzi, a przyczyną jest prawie zawsze gniazdo. OpenDKIM tworzy plik gniazda w celu komunikacji z Postfixem. Jeśli twój Postfix uruchamia smtpd w środowisku chroot — co jest ustawieniem domyślnym w pakietach Debiana/Ubuntu, ale nie w oryginalnej wersji Postfixa ani w systemach RHEL/Rocky — proces ten jest zablokowany w katalogu /var/spool/postfix i nie ma dostępu do gniazda znajdującego się poza tym katalogiem. Oba procesy nigdy się nie łączą, a Twoja poczta jest wysyłana bez podpisu.

Rozwiązaniem jest umieszczenie gniazda wewnątrz katalogu buforowego Postfixa oraz nadanie plikowi użytkownikowi dostęp do niego. Wykonaj następujące czynności w podanej kolejności:

1. Utwórz katalog „socket” w spoolu programu Postfix:

bash

sudo mkdir -p /var/spool/postfix/opendkim

sudo chown opendkim:postfix /var/spool/postfix/opendkim

Zmodyfikuj tę grupę, jeśli Twoja dystrybucja używa zamiast tego opendkim:opendkim.

2. Dodaj użytkownika do opendkim grupy , aby mógł odczytywać gniazdo:

bash

sudo gpasswd -a postfix opendkim

3. Sprawdź, czy ścieżka do gniazda środowiska uruchomieniowego z opendkim.conf. W systemach Ubuntu/Debian należy ustawić ją w pliku /etc/default/opendkim (lub w pliku nadpisującym systemd):

  SOCKET=”local:/var/spool/postfix/opendkim/opendkim.sock”

4. Skieruj Postfix na moduł filtrujący w pliku pliku /etc/postfix/main.cf:

milter_default_action = accept

   milter_protocol = 6

   smtpd_milters = local:opendkim/opendkim.sock

   non_smtpd_milters = $smtpd_milters

Co oznaczają te cztery dyrektywy Postfixa:

DyrektywaCel
milter_default_action = acceptJeśli serwer milter nie działa, poczta nadal przepływa, a nieaktywny podpisujący nigdy nie powoduje cichego zablokowania kolejki.
milter_protocol = 6Wersja protokołu milter, z której obecnie korzysta OpenDKIM.
smtpd_miltersStosuje moduł filtrujący do wiadomości e-mail otrzymanych przez protokół SMTP (Twoje wiadomości wychodzące).
non_smtpd_miltersDotyczy to wiadomości e-mail, które nie zostały odebrane za pośrednictwem protokołu SMTP, np. wygenerowanych lokalnie.

Ścieżka do gniazda w pliku pliku main.cf jest względna, local:opendkim/opendkim.sock, a nie pełna ścieżka w systemie plików, ponieważ Postfix odczytuje ją z poziomu swojego środowiska chroot.

Aby zastosować wszystkie zmiany, uruchom ponownie obie usługi:

bash

sudo systemctl restart opendkim

sudo systemctl restart postfix

Krok 5: Opublikuj rekord TXT DKIM w systemie DNS

Otwórz plik klucza publicznego wygenerowany w kroku 2:

bash

sudo cat /etc/opendkim/keys/example.com/selector2026.txt

Opublikuj tę treść u swojego dostawcy usług DNS jako nowy wpis:

PoleWartość
Nazwa rekorduselector2026._domainkey.example.com
TypTXT
WartośćWszystko, co znajduje się w nawiasach (ciąg znaków v=DKIM1; k=rsa; p=...)

Ponieważ jest to klucz 2048-bitowy, jego wartość przekracza limit 255 znaków dla pojedynczego ciągu znaków w pliku TXT. Większość dostawców usług DNS dzieli go automatycznie. Jeśli Twój dostawca odrzuca taki wpis, podziel klucz publiczny na dwa ciągi znaków ujęte w cudzysłowy w ramach tego samego rekordu, co plik plik .txt już pokazuje, gdzie znajduje się miejsce podziału.

Podczas konfiguracji ustaw wartość TTL na 300 sekund, aby ewentualne błędy można było łatwo naprawić. Gdy upewnisz się, że podpisywanie działa poprawnie, zwiększ tę wartość do 3600.

Krok 6: Sprawdź przed wysłaniem

Propagacja zmian w systemie DNS wymaga czasu, a nieprawidłowo podzielony klucz 2048-bitowy będzie wyglądał poprawnie w edytorze strefy, ale spowoduje błąd w momencie, gdy odbiorca go odczyta. 

Rspamd to lepszy wybór, gdy korzystasz z więcej niż jednej domeny lub obsługujesz pocztę w środowisku produkcyjnym. Podpisuje on DKIM i filtruje spam z jednego modulu filtrującego, dzięki czemu wystarczy zarządzać jedną usługą zamiast dwiema.

Ponadto, ponieważ program automatycznie wyszukuje klucze według domeny, dodanie kolejnej domeny sprowadza się do zmiany w jednym wierszu, a nie do nowej konfiguracji. Oto pełna instrukcja dla programu Postfix, podzielona na pięć kroków.

Krok 1: Zainstaluj Rspamd

Wersja dostępna w podstawowych repozytoriach Twojej dystrybucji jest zazwyczaj nieaktualna, dlatego zainstaluj program z oficjalnego stabilnego repozytorium Rspamd.

bash

sudo apt install -y lsb-release wget gpg

sudo mkdir -p /etc/apt/keyrings

wget -O- https://rspamd.com/apt-stable/gpg.key | \

  gpg –dearmor | sudo tee /etc/apt/keyrings/rspamd.gpg > /dev/null

echo „deb [signed-by=/etc/apt/keyrings/rspamd.gpg] \

  http://rspamd.com/apt-stable/ $(lsb_release -cs) „main” | \

  sudo tee /etc/apt/sources.list.d/rspamd.list

sudo apt update && sudo apt install rspamd

Włącz uruchamianie programu przy starcie systemu:

bash

sudo systemctl włącz rspamd

Zawsze sprawdzaj stronę rspamd.com, aby uzyskać najnowsze instrukcje instalacji, ponieważ adres URL repozytorium i procedury związane z kluczem GPG ulegają od czasu do czasu zmianom.

Krok 2: Wygeneruj swój klucz DKIM

Rspamd zawiera własny generator kluczy, rspamadm dkim_keygen , który nie wymaga żadnego dodatkowego pakietu narzędzi. Zapisuje on klucz prywatny do pliku, a klucz publiczny (Twój rekord DNS) wyświetla na ekranie, skąd możesz go skopiować do pliku .pub .

bash

sudo mkdir -p /var/lib/rspamd/dkim

sudo rspamadm dkim_keygen -s selector2026 -b 2048 -d example.com \

  -k /var/lib/rspamd/dkim/example.com.selector2026.key | \

  sudo tee /var/lib/rspamd/dkim/example.com.selector2026.pub

sudo chown -R _rspamd:_rspamd /var/lib/rspamd/dkim

Zmień ustawienia użytkownika/grupy, jeśli Twoja dystrybucja używa rspamd:rspamd zamiast _rspamd:_rspamd. Sprawdź plik jednostki systemd swojego pakietu, aby to potwierdzić.
Opcje są takie same jak w OpenDKIM: -s selektor, -b 2048 rozmiar klucza, -d domena, -k plik wyjściowy zawierający klucz prywatny. W rezultacie otrzymujemy dwa pliki:

PlikCzym to jest
example.com.selector2026.keyPrywatny klucz podpisujący używany przez Rspamd. Należy zadbać o to, by jego właścicielem był użytkownik _rspamd
example.com.selector2026.pubKlucz publiczny w formacie zgodnym z DNS – należy go opublikować w kroku 5

Krok 3: Włącz podpisywanie DKIM

Rspamd obsługuje DKIM za pośrednictwem swojego modułu moduł dkim_signing . Należy go włączyć i wskazać lokalizację kluczy w pliku /etc/rspamd/local.d/dkim_signing.conf

selector = „selector2026”;

path = „/var/lib/rspamd/dkim/$domain.$selector.key”;

allow_username_mismatch = true;

use_domain = „header”;

Funkcja poszczególnych ustawień:

UstawieniaCo kontroluje
selektorNazwa selektora musi być zgodna z nazwą pliku klucza oraz wpisem DNS
ścieżkaMiejsce, w którym Rspamd odnajduje klucz prywatny; zmienne $domain i $selector są wypełniane automatycznie
zezwól_na_niezgodność_nazwy_użytkownikaWysyła wiadomości nawet wtedy, gdy uwierzytelniona nazwa użytkownika nie zgadza się z domeną nadawcy
use_domain = "header"Wybiera domenę nadawcy na podstawie nagłówka „From” wiadomości

To ścieżka linii sprawia, że Rspamd świetnie sprawdza się w przypadku wielu domen. Ponieważ rozpoznaje $domain oraz $selector na podstawie nazwy pliku, dodanie kolejnej domeny oznacza po prostu umieszczenie jej klucza w tym samym folderze — bez konieczności tworzenia nowego bloku konfiguracyjnego ani uruchamiania drugiego demona.

Krok 4: Podłącz Rspamd do Postfixa

Skonfiguruj Postfix tak, aby korzystał z modułu filtrującego Rspamd w pliku /etc/postfix/main.cf. Dyrektywy są identyczne jak w konfiguracji OpenDKIM, zmienia się jedynie gniazdo:

milter_default_action = accept

milter_protocol = 6

smtpd_milters = inet:localhost:11332

non_smtpd_milters = $smtpd_milters

Rspamd nasłuchuje na swoim serwerze proxy na porcie TCP 11332 . Ponieważ jest to gniazdo sieciowe, omija się problem uprawnień do gniazda w środowisku chroot, który sprawia kłopoty OpenDKIM. Jedyna różnica między tymi dwoma filtrami milter to:

MilterWiersz dotyczący gniazda w pliku main.cf
OpenDKIMsmtpd_milters = local:opendkim/opendkim.sock
Rspamdsmtpd_milters = inet:localhost:11332

Krok 5: Opublikuj rekord DNS

Otwórz klucz publiczny i opublikuj go dokładnie tak, jak w kroku 5 OpenDKIM, zachowując ten sam format nazwy rekordu, TXT oraz regułą podziału na 255 znaków dla klucza 2048-bitowego:

bash

sudo cat /var/lib/rspamd/dkim/example.com.selector2026.pub

Opcjonalnie można włączyć panel internetowy, ustawiając hasło w pliku /etc/rspamd/local.d/worker-controller.inc 

Zapewnia to podgląd na żywo aktywności związanej z podpisywaniem i spamem. Następnie uruchom ponownie obie usługi:

bash

sudo systemctl restart rspamd postfix

Zanim zaczniesz polegać na opublikowanym wpisie, sprawdź go za pomocą narzędzia do weryfikacji DKIM, tak samo jak po skonfigurowaniu OpenDKIM.

Rspamd zastępuje zarówno OpenDKIM, , jak i SpamAssassin. Jeśli korzystałeś z oddzielnego filtra antyspamowego, możesz go tutaj wyłączyć, dzięki czemu będziesz mieć mniej usług, mniejszą powierzchnię konfiguracyjną oraz jedno miejsce do zarządzania zarówno podpisywaniem, jak i filtrowaniem.

Konfiguracja DKIM w Postfixie dla wielu domen

Obsługa kilku domen na jednym serwerze Postfix jest czymś normalnym, ale DKIM nie idzie na skróty w tej kwestii. Każda domena, z której wysyłasz wiadomości, wymaga własnej pary kluczy i własnego rekordu DNS, ponieważ każda z nich jest uwierzytelniana niezależnie, więc nie ma wspólnego klucza, który obejmowałby je wszystkie. Sposób skalowania zależy od wybranego modułu milter.

Dzięki OpenDKIM można rozszerzyć już utworzone tabele: Wygeneruj klucz dla każdej nowej domeny, a następnie dodaj dla niej po jednym wierszu w każdym pliku odnośników.

W tabeli podpisów:

*@example.com selector2026._domainkey.example.com

*@example.net selector2026._domainkey.example.net

W tabeli key.table:

selector2026._domainkey.example.com example.com:selector2026:/etc/opendkim/keys/example.com/selector2026.private

selector2026._domainkey.example.net example.net:selector2026:/etc/opendkim/keys/example.net/selector2026.private

Każda nowa domena to jeden dodatkowy klucz i dwa dodatkowe wiersze – trzeba to zrobić ręcznie, ale proces jest przewidywalny.

Dzięki Rspamd wszystko jest już załatwione: Ponieważ ustawienie ścieżki wykorzystuje $domain , Rspamd automatycznie odnajduje klucz każdej domeny na podstawie nazwy pliku. Wpisz example.net.selector2026.key do tego samego katalogu, a domena ta również zostanie podpisana bez konieczności wprowadzania jakichkolwiek zmian w konfiguracji. Jeśli chcesz mieć większą kontrolę, nadal możesz dodać bloki dla poszczególnych domen w pliku dkim_signing.conf.

Dwa nawyki pozwalają utrzymać porządek w podpisywaniu plików w wielu domenach:

  1. Używaj tego samego selektora we wszystkich domenach, selektor2026 wszędzie, dzięki czemu rotacja pozostaje jednym procesem, a nie kilkoma. 
  2. Opublikuj osobny wpis DNS dla każdej domeny: jeśli pominiesz go w przypadku jednej z nich, poczta tej domeny zostanie podpisana lokalnie, ale nie przejdzie weryfikacji u odbiorcy.

Jak przetestować i zweryfikować konfigurację DKIM w Postfixie

Podpisanie wiadomości e-mail i upewnienie się, że została podpisana prawidłowo, to dwie różne rzeczy. Z punktu widzenia nadawcy wszystko może wyglądać w porządku, podczas gdy odbiorca po cichu odrzuca twój podpis, a ty nie dowiesz się o tym, dopóki nie pojawią się problemy z dostarczeniem wiadomości. 

Te pięć kroków pozwala sprawdzić, czy DKIM faktycznie działa – od własnych logów aż po rzeczywistego odbiorcę. Należy postępować zgodnie z poniższą kolejnością:

Krok 1: Najpierw sprawdź dziennik poczty

Dziennik poczty to najszybszy sposób potwierdzenia, a ponadto jest to rozwiązanie lokalne. Obserwuj dziennik, wyślij wiadomość testową i sprawdź, czy pojawi się wpis dotyczący podpisania:

bash

  sudo tail -f /var/log/mail.log

W systemie RHEL/Rocky plik ten znajduje się w lokalizacji /var/log/maillog. Należy poszukać wiersza wskazującego, że wiadomość została podpisana za pomocą Twojego selektora. Jeśli taki wiersz się tam znajduje, oznacza to, że Twój moduł filtrujący działa prawidłowo.

Sprawdzenie 2: Zweryfikuj klucz w systemie DNS (OpenDKIM)

Weryfikacja potwierdza, że klucz prywatny zapisany na dysku jest zgodny z opublikowanym przez Ciebie kluczem publicznym:

bash

  opendkim-testkey -d example.com -s selector2026 -vvv

klucz OK oznacza, że obie połowy pasują do siebie. Każdy inny wynik wskazuje na literówkę w nazwie DNS lub niezgodność klucza, co należy naprawić przed kontynuowaniem.

Krok 3: Wyślij prawdziwy test

To jedyne sprawdzenie, które potwierdza, że odbiorca akceptuje Twój podpis. Wyślij wiadomość e-mail na konto Gmail, otwórz ją i wybierz opcję „Pokaż oryginał”. Poszukaj DKIM: „PASS” wraz z Twoją domeną, co oznacza, że serwer odbiorczy potwierdza, iż Twój podpis został zweryfikowany.

Krok 4: Uruchom zewnętrzne narzędzia sprawdzające

Narzędzie do sprawdzania DKIM pobiera i analizuje opublikowany rekord w taki sam sposób, jak zrobiłby to serwer odbierający, potwierdzając, że klucz jest prawidłowy i kompletny

Wypróbuj bezpłatne narzędzie DKIM Checker firmy PowerDMARC, a następnie wyślij wiadomość na adres mail-tester.com, aby uzyskać bardziej kompleksową ocenę dostarczalności, która uwzględnia DKIM wraz z SPF, DMARC i sygnałami spamowymi. 

Sprawdź 5: Uważaj na pułapkę typu „DKIM przechodzi, ale DMARC nie”

Twój podpis może zostać poprawnie zweryfikowany, a mimo to DMARC może zakończyć się niepowodzeniem, ponieważ DMARC wymaga zgodności: domena w Twoim DKIM d= musi odpowiadać domenie widocznej w nagłówku „From:”. 

Zaloguj się jako mail.example.com podczas wysyłania z adresu example.com – w tym przypadku tryb „relaxed” pozwoli uniknąć błędu, ale tryb „strict” już nie. Jeśli DMARC zakończy się niepowodzeniem pomimo pozytywnego wyniku DKIM, sprawdź, czy tabela podpisów jest przypisana do właściwej domeny.

Krok 6: Przeprowadź audyt wszystkich trzech elementów za jednym razem

Pomyślny wynik kontroli DKIM potwierdza, że część procesu uwierzytelniania działa prawidłowo, jednak skuteczność dostarczania wiadomości oraz ochrona przed podszywaniem się zależą od współdziałania protokołów DKIM, SPF i DMARC działają wspólnie. 

Bezpłatne narzędzie PowerDMARC Domain Analyzer skanuje wszystkie trzy elementy jednocześnie i przyznaje ocenę w skali od A do F, dzięki czemu w jednym przebiegu dowiadujesz się, czy Twoja domena jest faktycznie chroniona od początku do końca, czy tylko częściowo. 

Gdy napotkasz problemy takie jak pułapka „DKIM przechodzi, ale DMARC nie”, skorzystaj z bezpłatnego narzędzie do analizy nagłówków wiadomości e-mail umieszcza werdykt DKIM oraz wynik porównania, dzięki czemu w ciągu kilku sekund można zlokalizować dokładną niezgodność, zamiast mrużyć oczy, przeglądając surowe nagłówki. 

Rotacja kluczy DKIM w Postfixie

Klucz prywatny, który od lat pozostaje nietknięty na serwerze, to klucz, którego ryzyko ujawnienia stale rośnie. Jeśli kiedykolwiek dojdzie do jego wycieku, osoba atakująca będzie mogła podpisywać wiadomości e-mail jako użytkownik z Twojej domeny, dopóki tego nie wykryjesz.

Regularna rotacja, co najmniej raz w roku, pozwala utrzymać ten przedział w niewielkich granicach. Selektor oparty na roku zapewnia płynną zamianę.

Proces obracania:

  1. Wygeneruj nowy klucz z nowym selektorem – selektor2027.
  2. Opublikuj nowy klucz publiczny jako nowy rekord DNS typu TXT, a stary rekord pozostaw bez zmian.
  3. Zaktualizuj swoją konfigurację, aby podpisywać dane przy użyciu nowego selektora.
  4. Zaktualizuj serwer milter i poczekaj, aż czas życia (TTL) rekordów DNS się rozprzestrzeni.
  5. Należy utrzymać stary rekord aktywny przez co najmniej poprzedni czas TTL plus 24–48 godzin (zazwyczaj łącznie 48–72 godzin), w zależności od wartości TTL i ilości przesyłek w trakcie przesyłania. Przesyłki już w trakcie przesyłania, podpisane starym kluczem, nadal wymagają weryfikacji.
  6. Wycofaj stary selektor i usuń jego rekord DNS.

To właśnie ta część, w której kroki 5 i 6 się pokrywają, nie może być przyspieszona. Jeśli stary rekord zostanie usunięty zbyt wcześnie, każda wiadomość, która jest w tym momencie weryfikowana na jego podstawie, nie przejdzie weryfikacji – a właśnie tego rodzaju cichej awarii uwierzytelniania ma zapobiegać protokół DKIM.

Ani OpenDKIM, ani Rspamd nie automatyzują generowania kluczy, publikowania w DNS ani synchronizacji okresów pokrywania się. W przypadku pojedynczej domeny wystarczy raz w roku ustawić przypomnienie w kalendarzu. Jednak w przypadku pięciu lub więcej domen staje się to powtarzającym się zadaniem, o którym łatwo zapomnieć, a rotacja, która po cichu nigdy nie ma miejsca, stanowi lukę w zgodności z przepisami, której nie zauważysz, dopóki ktoś nie poprosi cię o przedstawienie dowodu.

Typowe błędy DKIM w Postfixie i sposoby ich usuwania

Problemy z DKIM w Postfixie często wynikają z kilku typowych przyczyn, głównie związanych z uprawnieniami do gniazd, ścieżkami kluczy oraz zgodnością domen. W poniższej tabeli zestawiono występujące objawy wraz z ich najbardziej prawdopodobnymi przyczynami i sposobami rozwiązania, dzięki czemu możesz od razu przejść do swojego przypadku. 

BłądPrawdopodobna przyczynaFix
W nagłówkach brakuje podpisu DKIMUrządzenie Milter nie jest podłączone lub nie pasuje gniazdoSprawdź, czy ścieżki gniazd są zgodne w plikach opendkim.conf i main.cf; upewnij się, że użytkownik postfix należy do grupy opendkim
Połącz się z usługą Milter... Odmowa połączeniaDemon OpenDKIM nie działasystemctl start opendkim; sprawdź, czy plik gniazda rzeczywiście istnieje w katalogu spool
opendkim: nie udało się pobrać kluczaNieprawidłowa ścieżka w tabeli kluczy lub nieprawidłowe uprawnieniaSprawdź ścieżkę pliku .private w tabeli key.table; uruchom polecenie chown opendkim:opendkim na kluczu
DKIM przeszedł pomyślnie, ale DMARC nieNiezgodność wyrównaniaDomena podpisująca (d=) musi być zgodna z domeną w nagłówku „From:”; należy zastosować łagodniejsze kryteria dopasowania
Klucz 2048-bitowy odrzucony przez DNSLimit długości wiadomości TXT u dostawcy: 255 znakówPodziel klucz publiczny na dwa ciągi znaków ujęte w cudzysłowy w tym samym rekordzie TXT

Kiedy warto odejść od ręcznej konfiguracji DKIM w Postfixie

W przypadku pojedynczej domeny samodzielnie zarządzany DKIM w Postfixie to idealny wybór. Wystarczy skonfigurować go raz, a potem działa bez zarzutu, jednak wraz ze wzrostem liczby wysyłanych wiadomości ręczne czynności z tym związane stają się raczej źródłem ryzyka niż sposobem na zachowanie kontroli. 

Oto kilka oznak, że osiągnąłeś ten punkt:

  • Rejestrujesz trzy lub więcej domen.
  • Wiadomości są wysyłane z wielu źródeł: z serwisu ESP, w ramach korespondencji transakcyjnej oraz z Twojej aplikacji, a każde z nich wymaga własnych kluczy.
  • Masz wyznaczony termin na dostosowanie się do przepisów i nie możesz sobie pozwolić na pominięcie kolejnej rotacji.
  • Wszystkie informacje dotyczące DKIM posiada jedna osoba, a w razie jej odejścia cała ta wiedza przepadłaby wraz z nią.

Jeśli borykasz się z tymi problemami, zarządzanie DKIM w modelu hostowanym wypełnia te luki, całkowicie eliminując czynności wykonywane ręcznie. Oto, czym różni się ręczne zarządzanie DKIM od zarządzania DKIM w modelu hostowanym:

ZadaniePodręcznik (OpenDKIM / Rspamd)Hostowany DKIM
Rotacja kluczaRęcznie w każdym cyklu: generowanie, publikowanie, nakładanie się, wycofywanieAutomatycznie, bez konieczności edycji DNS w każdym cyklu
Wiele domenOddzielne klucze, rekordy i konfiguracje dla każdej domenyZarządzane centralnie
Rozmiar klucza2048 bitów (lub Ed25519)Do 4096 bitów
Zarządzanie selektoramiŚledzone ręcznieAutomatycznie wykrywane dla głównych dostawców usług internetowych
Konserwacja systemu DNSEdytowane przy każdej rotacjiJeden rekord CNAME, opublikowany jednorazowo

Jeśli zarządzasz DKIM w wielu domenach lub potrzebujesz niezawodnej rotacji kluczy zapewniającej zgodność z przepisami, usługa Hosted DKIM firmy PowerDMARC pozwoli Ci wyeliminować ręczne czynności i związane z nimi ryzyko. 

Rozpocznij 15-dniowy bezpłatny okres próbny

Najczęściej zadawane pytania

Czym jest Postfix DKIM?

Postfix DKIM to kryptograficzne podpisywanie wiadomości wychodzących na serwerze Postfix, dzięki czemu odbiorcy mogą potwierdzić, że wiadomość pochodzi z Twojej domeny i nie została zmieniona. Postfix nie posiada wbudowanego modułu podpisującego, więc przekazuje każdą wiadomość do modułu filtrującego (milter) — OpenDKIM lub Rspamd — który dodaje podpis.

Czym jest OpenDKIM?

OpenDKIM to samodzielny moduł filtrujący (milter), który zajmuje się podpisywaniem i weryfikacją DKIM dla Postfixa i innych serwerów MTA – i niczym więcej. Jest to proste i powszechnie stosowane rozwiązanie, jednak od 2021 roku nie ukazała się żadna stabilna wersja, dlatego w przypadku długoterminowych wdrożeń należy rozważyć ryzyko związane z utrzymaniem tego rozwiązania.

Czym jest Rspamd?

Rspamd to aktywnie rozwijany system filtrowania spamu, którego moduł podpisywania DKIM umożliwia podpisywanie wiadomości wysyłanych przez Postfix. Ponieważ obsługuje on zarówno filtrowanie, jak i podpisywanie w ramach jednego modułu filtrującego (milter), zastępuje zarówno OpenDKIM, jak i SpamAssassin, co czyni go lepszym wyborem na rok 2026 w przypadku serwerów obsługujących wiele domen lub serwerów produkcyjnych.

Czym jest Postfix?

Postfix to powszechnie stosowany agent transferu poczty (MTA) typu open source, który kieruje i dostarcza wiadomości e-mail na serwerach typu uniksowego. Obsługuje on wysyłanie i odbieranie poczty, ale sam w sobie nie podpisuje wiadomości za pomocą DKIM — do tego potrzebny jest oddzielny moduł typu milter, taki jak OpenDKIM lub Rspamd.

Czy w 2026 roku powinienem używać OpenDKIM czy Rspamd z Postfixem?

W przypadku prostych konfiguracji obejmujących jedną domenę OpenDKIM nadal sprawdza się dobrze. W przypadku serwerów obsługujących wiele domen lub serwerów produkcyjnych lepszym wyborem jest Rspamd. Jest on aktywnie rozwijany i łączy podpisywanie DKIM z filtrowaniem spamu w jednym module filtrującym (milter).

Jak sprawdzić, czy moje wiadomości wychodzące są podpisywane za pomocą DKIM?

Sprawdź plik /var/log/mail.log w poszukiwaniu wpisów dotyczących podpisywania, uruchom opendkim-testkey, wyślij testową wiadomość e-mail do Gmaila i sprawdź surowe nagłówki pod kątem DKIM: PASSlub sprawdź swoją domenę za pomocą bezpłatnego narzędzia do sprawdzania DKIM.

CTA