Implementacja DKIM (DomainKeys Identified Mail) w Postfix: Kompletny przewodnik
Linux

Implementacja DKIM (DomainKeys Identified Mail) w Postfix: Kompletny przewodnik

Implementacja DKIM (DomainKeys Identified Mail) w Postfix: Kompletny przewodnik

DKIM (DomainKeys Identified Mail) to mechanizm uwierzytelniania wiadomości e-mail, który pozwala odbiorcom zweryfikować, czy wiadomość została wysłana przez autoryzowany serwer i czy nie została zmodyfikowana w trakcie przesyłania. W tym artykule omówimy konfigurację DKIM w Postfix, publikację rekordów DKIM w DNS oraz weryfikację podpisów DKIM przez serwery odbierające.


1. Co to jest DKIM i dlaczego jest ważny?

DKIM to technologia umożliwiająca podpisywanie wiadomości e-mail cyfrowym podpisem kryptograficznym, który odbiorcy mogą zweryfikować za pomocą publicznego klucza DKIM w DNS.

Korzyści DKIM:
✔ Chroni przed fałszowaniem nadawcy i spoofingiem.
✔ Zapobiega modyfikacji treści wiadomości w trakcie przesyłania.
✔ Pomaga poprawić dostarczalność e-maili i zmniejszyć prawdopodobieństwo trafienia do spamu.

🚨 Ograniczenia DKIM:

  • DKIM nie chroni przed phishingiem – sprawdza tylko integralność wiadomości, ale nie nadawcę.
  • DKIM działa najlepiej w połączeniu z SPF i DMARC.
Implementacja DKIM (DomainKeys Identified Mail) w Postfix: Kompletny przewodnik
Implementacja DKIM (DomainKeys Identified Mail) w Postfix: Kompletny przewodnik

2. Instalacja i konfiguracja DKIM w Postfix

W systemach Debian/Ubuntu do obsługi DKIM używamy OpenDKIM.

2.1. Instalacja OpenDKIM

sudo apt update
sudo apt install opendkim opendkim-tools

Na systemach CentOS/RHEL instalujemy:

sudo yum install opendkim opendkim-tools

3. Generowanie kluczy DKIM

Klucze DKIM składają się z dwóch części:

  • Klucz prywatny – używany do podpisywania wiadomości.
  • Klucz publiczny – publikowany w rekordzie DNS i używany do weryfikacji.
Czytaj  Jak sprawdzić uprawnienia użytkownika w systemie Linux

3.1. Tworzenie katalogów i nadanie uprawnień

sudo mkdir -p /etc/opendkim/keys/example.com
sudo chown -R opendkim:opendkim /etc/opendkim
sudo chmod -R 700 /etc/opendkim

3.2. Generowanie kluczy

cd /etc/opendkim/keys/example.com
sudo opendkim-genkey -b 2048 -d example.com -s dkim2025

Co oznaczają parametry?

  • -b 2048 – generuje klucz 2048-bitowy (zalecany dla bezpieczeństwa).
  • -d example.com – domena, dla której generujemy klucz.
  • -s dkim2025 – selektor DKIM (można ustawić dowolną unikalną nazwę).

W katalogu /etc/opendkim/keys/example.com/ pojawią się dwa pliki:

  • dkim2025.private – klucz prywatny do podpisywania wiadomości.
  • dkim2025.txt – rekord DNS zawierający klucz publiczny.

Zmieniamy uprawnienia do klucza prywatnego:

sudo chown opendkim:opendkim dkim2025.private
sudo chmod 600 dkim2025.private

4. Konfiguracja OpenDKIM

Edytujemy plik konfiguracyjny /etc/opendkim.conf:

sudo nano /etc/opendkim.conf

Dodajemy lub modyfikujemy następujące linie:

AutoRestart             Yes
AutoRestartRate         10/1h
Mode                    sv
Syslog                  yes
LogWhy                  yes
Canonicalization        relaxed/simple
KeyTable                /etc/opendkim/keytable
SigningTable            /etc/opendkim/signingtable
InternalHosts           /etc/opendkim/trustedhosts
Socket                  inet:8891@localhost

5. Konfiguracja tabel DKIM

5.1. KeyTable – lista kluczy DKIM

Edytujemy plik /etc/opendkim/keytable:

sudo nano /etc/opendkim/keytable

Dodajemy linię:

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

5.2. SigningTable – przypisanie podpisu DKIM do domeny

Edytujemy plik /etc/opendkim/signingtable:

sudo nano /etc/opendkim/signingtable

Dodajemy:

*@example.com dkim2025._domainkey.example.com

5.3. TrustedHosts – lista zaufanych hostów

sudo nano /etc/opendkim/trustedhosts

Dodajemy:

127.0.0.1
localhost
*.example.com

Restartujemy OpenDKIM:

sudo systemctl restart opendkim
sudo systemctl enable opendkim

6. Integracja OpenDKIM z Postfix

Edytujemy plik /etc/postfix/main.cf:

sudo nano /etc/postfix/main.cf

Dodajemy:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

Restartujemy Postfix:

sudo systemctl restart postfix

7. Publikacja klucza publicznego DKIM w DNS

Otwieramy plik dkim2025.txt i kopiujemy jego zawartość. Przykładowy rekord TXT:

dkim2025._domainkey  TXT  "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSI..."

Dodajemy rekord TXT w konfiguracji DNS domeny. Po zapisaniu czekamy na propagację DNS (może to potrwać kilka godzin).


8. Testowanie DKIM

8.1. Sprawdzenie rekordu DKIM w DNS

nslookup -type=TXT dkim2025._domainkey.example.com

Powinniśmy zobaczyć wpis zawierający klucz publiczny.

Czytaj  Dmidecode Linux

8.2. Wysłanie testowej wiadomości

Wysyłamy e-mail do Gmaila i sprawdzamy nagłówki wiadomości w sekcji „Oryginalna wiadomość”. Powinniśmy zobaczyć:

Authentication-Results: spf=pass; dkim=pass; dmarc=pass

8.3. Użycie narzędzi do weryfikacji DKIM

  • https://www.mail-tester.com
  • https://dmarcian.com/dkim-inspector/

Podsumowanie

Konfiguracja DKIM w Postfix pozwala zwiększyć bezpieczeństwo wiadomości e-mail i zapobiegać podszywaniu się pod nadawcę. W artykule omówiliśmy:

✅ Instalację OpenDKIM.
✅ Generowanie i konfigurację kluczy DKIM.
✅ Publikację klucza DKIM w DNS.
✅ Weryfikację działania DKIM.

Dzięki tej konfiguracji Twoje e-maile będą bezpieczniejsze i rzadziej oznaczane jako spam.

Polecane wpisy
Co to jest Wirtualizacja Linux KVM?
Co to jest Wirtualizacja Linux KVM?

Co to jest Wirtualizacja Linux KVM? Wirtualizacja KVM (Kernel-based Virtual Machine) to technologia wirtualizacji typu open-source, która umożliwia uruchomienie wielu Czytaj dalej

Linux jako Serwer Gier: Hosting i Konfiguracja
Linux jako Serwer Gier: Hosting i Konfiguracja

Linux jest popularnym systemem operacyjnym, który jest wykorzystywany do wielu różnych celów, w tym do hostingu serwerów gier. Linux oferuje Czytaj dalej