Konfigurowanie DKIM dla Exima w Debianie

7

DKIM (DomainKeys Identified Mail) to mechanizm uwierzytelniania poczty e-mail, który pomaga zwalczać fałszowanie wiadomości e-mail. Dodaje podpis cyfrowy do wiadomości wychodzących, dzięki czemu odbiorca może sprawdzić rekord DNS domeny, czy wiadomość rzeczywiście została wysłana z określonej domeny i czy jej treść nie została zmodyfikowana podczas dostarczania.

Na serwerze VPS lub serwerze dedykowanym konfiguracja DKIM jest dość łatwa, ponieważ masz pełną kontrolę nad serwerem pocztowym i jego konfiguracją.

W poniższym przykładzie konfigurujemy DKIM dla domeny example.com

Utwórz katalog dla kluczy DKIM

Najpierw przygotujmy katalog, w którym będzie przechowywany klucz prywatny:

mkdir -p /etc/exim4/dkim

Generowanie kluczy prywatnych i publicznych

Przejdźmy do utworzonego katalogu:
cd /etc/exim4/dkim

Wygeneruj klucz prywatny (pozostaje tylko na serwerze):

openssl genrsa -out przykład.com.klucz 1024

Następnie na podstawie klucza prywatnego tworzymy klucz publiczny, który następnie dodajemy do DNS:

openssl rsa -pubout -in przykład.com.key -out przykład.com.pub

Ustawianie właściciela pliku

Exim na Debianie zwykle uruchamia się z poziomu użytkownika Debian-exim, dlatego zmieniamy właściciela katalogu i kluczy:

chown -R Debian-exim:Debian-exim /etc/exim4/dkim

Połącz DKIM w konfiguracji Exima

Otwórz szablon konfiguracji Exima:

  • plik główny: /etc/exim4/exim4.conf.template

Dodajemy następujące parametry przed sekcją remote_smtp:

DKIM_CANON = spokojny DKIM_DOMAIN = przykład.com DKIM_PRIVATE_KEY = /etc/exim4/dkim/example.com.key DKIM_SELECTOR = e-mail

Jeśli korzystasz z konfiguracji podzielonej (conf.d), to do pliku należy dodać te linie:

  • /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp

Uruchom ponownie Exima i sprawdź parametry

Zastosowanie zmian:

restart usługi exim4

Sprawdzamy, czy parametry DKIM zostały pobrane:

exim -bP transporty | grep dkim

Dodawanie rekordu DKIM do DNS

Teraz musisz utworzyć rekord TXT w strefie DNS domeny. Nazwa rekordu jest tworzona w następujący sposób:

email._domainkey

Gdzie email jest selektorem (DKIM_SELECTOR) z konfiguracji Exima.

W wartość rekordu TXT wstawiamy klucz publiczny w formacie DKIM, np.:

v=DKIM1; h=sha256; k=rsa; p=0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcbu6mvGWmF65Suqazr3Krb2Ky/EXs8qaT1yMDfc00YJD77dq6jCnAwxQUHHuKanl ELGd1uqomTzs5MBuzw0TCEhzIyyiD+ZZBbJQa85a7OhdLoDs7MkwlF2Asqj4k44CpJo0c7gAySdbIQNaY9YpTW0L1TatwIDAQAB

Objaśnienie parametrów:

  • v=DKIM1 — wersja DKIM

  • h=sha256 — algorytm mieszający (zwykle używany jest sha256, czasami sha1)

  • k=rsa — typ klucza

  • p=... — klucz publiczny (odpowiada zawartości pliku example.com.pub)