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/dkimGenerowanie kluczy prywatnych i publicznych
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.pubUstawianie 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/dkimPołą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 dkimDodawanie 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 jestsha256, czasamisha1) -
k=rsa— typ klucza -
p=...— klucz publiczny (odpowiada zawartości plikuexample.com.pub)