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)