DKIM (расшифровывается как DomainKeys Identified Mail) — метод идентификации письма по доменным ключам. DKIM настраивается на почтовом сервере для того, чтобы подписывать исходящие письма цифровой подписью.
Наличие такой подписи в заголовке отправленного письма сообщает серверу-получателю, что оно действительно было отправлено с указанного домена.
Устанавливаем необходимые пакеты в Ubuntu/Debian:
apt-get install opendkim-tools
Теперь нужно сгенерировать ключи, которые будут использоваться для подписи писем. Для начала создаем папку для хранения ключей:
mkdir /etc/exim4/dkim
Генерируем открытый и закрытый ключи для домена example.com.
opendkim-genkey -D /etc/exim4/dkim/ -d example.com -s mail
Эта команда создаст файлы etc/exim4/dkim/mail.private
и /etc/exim4/dkim/mail.txt
, с секретным и публичным ключами соответственно. Публичный ключ нужно добавить в соответствующую TXT запись домена example.com. Проверить что запись добавлена можно командой:
dig txt mail._domainkey.example.com
Переименовываем закрытый ключ, чтобы Exim мог его найти:
cd /etc/exim4/dkim/
mv mail.private example.com.key
Проставляем права на чтение файлов ключей:
chown -R Debian-exim:Debian-exim /etc/exim4/dkim/
chmod 640 /etc/exim4/dkim/*
В конфиг Exim /etc/exim4/exim4.conf.template
или если он разделен, то
/etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
пишем в л:
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_KEY_FILE = /etc/exim4/dkim/DKIM_DOMAIN.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
DKIM_SELECTOR = mail
Узнать какой тип конфига используется и перегенерить его можно командой:
/usr/sbin/update-exim4.conf -v
Все готово, осталось перезапустить.
/etc/init.d/exim4 restart