Налаштування DKIM для Exim на Debian

4

DKIM (DomainKeys Identified Mail) — це механізм e-mail аутентифікації, який допомагає боротися з підробкою листів. Він додає до вихідних повідомлень цифровий підпис, а отримувач за DNS-записом домену може перевірити, що лист справді надіслано з указаного домену і його вміст не було змінено під час доставки.

На VPS або виділеному сервері DKIM налаштовується доволі просто, оскільки ви маєте повний контроль над поштовим сервером і його конфігурацією.

У прикладі нижче налаштуємо DKIM для домену example.com

Створюємо каталог для DKIM-ключів

Спочатку підготуємо директорію, де зберігатиметься приватний ключ:

mkdir -p /etc/exim4/dkim

Генеруємо приватний і публічний ключі

Переходимо в створений каталог:
cd /etc/exim4/dkim

Генеруємо приватний ключ (він залишається тільки на сервері):

openssl genrsa -out example.com.key 1024

Далі на основі приватного ключа створюємо публічний ключ, який потім додамо в DNS:

openssl rsa -pubout -in example.com.key -out example.com.pub

Встановлюємо власника файлів

Exim на Debian зазвичай працює від користувача Debian-exim, тому змінюємо власника директорії та ключів:

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

Підключаємо DKIM у конфігурації Exim

Відкриваємо конфігураційний шаблон Exim:

  • основний файл: /etc/exim4/exim4.conf.template

Додаємо такі параметри перед секцією remote_smtp:

DKIM_CANON = relaxed DKIM_DOMAIN = example.com DKIM_PRIVATE_KEY = /etc/exim4/dkim/example.com.key DKIM_SELECTOR = email

Якщо у вас використовується розділена конфігурація (conf.d), тоді ці рядки потрібно додати у файл:

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

Перезапускаємо Exim і перевіряємо параметри

Застосовуємо зміни:

service exim4 restart

Перевіряємо, що DKIM-параметри підхопилися:

exim -bP transports | grep dkim

Додаємо DKIM-запис у DNS

Тепер потрібно створити TXT-запис у DNS-зоні домену. Ім’я запису формується так:

email._domainkey

Де email — це селектор (DKIM_SELECTOR) із конфігурації Exim.

У значення TXT-запису вставляємо публічний ключ у форматі DKIM, наприклад:

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

Пояснення параметрів:

  • v=DKIM1 — версія DKIM

  • h=sha256 — хеш-алгоритм (зазвичай використовують sha256, інколи зустрічається sha1)

  • k=rsa — тип ключа

  • p=... — публічний ключ (відповідає вмісту файлу example.com.pub)