Exim настройка DKIM - цифровых подписей к письмам

В Exim, начиная с версии 4.2 встроена поддержка DKIM, поэтому настраивается все достаточно просто, всего в три шага.

1.Создаём ключи шифрования для подписи писем.

Создаём RSA-ключ (не менее, чем 1024 бита длиной) и, на его основе, общедоступный ключ. 

mkdir /etc/exim4/dkim
cd /etc/exim4/dkim
openssl genrsa -out example.com.key 1024
openssl rsa -in example.com.key -pubout > example.com.pub (это наш публичный ключ)
chown exim:exim example.com.key
chmod 640 example.com.key

2. Настраиваем Exim

Вносим изменения в конфигурационный файл Exim /etc/exim4/exim4.conf.template.

nano /etc/exim4/exim4.conf.template

Меняем

remote_smtp:

driver = 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_FILE}{0}}
DKIM_CANON = simple

remote_smtp:

driver = smtp
dkim_domain = DKIM_DOMAIN
dkim_selector = default
dkim_private_key = DKIM_PRIVATE_KEY

Перезапускаем Exim

service exim4 restart

3. Настройка DNS

Открываем и копируем публичный ключ.

nano /etc/exim4/dkim/example.com.pub

-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCy4cRpKEmBmlm6Enrc0Qk/WEG6
uQKrzAe+aS8L0GG+PK+oxr1DtMihbZU1CCpAND0NYceWicI9XCqD7bS9WE1U2GCW
J8MxM8o//3b3T/yV3TCTFJRb3xn4xJOL5/fx6f/d76ra34BY8xUfedPQORg2T3pv
YRhOq9VT1IuiNhULLQIDAQAB
-----END PUBLIC KEY-----

Копируем сам ключ, который содержится между -----BEGIN PUBLIC KEY----- и -----END PUBLIC KEY-----

Добавляем в DNS запись вида TXT, имеющую название default._domainkey.example.com, содержащую

v=DKIM1 k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCy4cRpKEmBmlm6Enrc0Qk/WEG6uQKrzAe+aS8L0GG+PK+o
xr1DtMihbZU1CCpAND0NYceWicI9XCqD7bS9WE1U2GCWJ8MxM8o//3b3T/V3TCTFJRb3xn4xJOL5/fx6f/d76ra34BY8xUfedPQORg2T
3pvYRhOq9VT1IuiNhULLQIDAQAB

Обратите внимание, что ключь не должен содержать пробелов, при копировании из терминала они могут добавиться.

Проверямем DKIM DNS запись при помощи серевиса DNSWatch. Ответ должен содержать указанный ключ.

"v=DKIM1\; k=rsa\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCy4cRpKEmBmlm6Enrc0Qk/WEG6uQKrzAe+aS8L0GG+PK+oxr1DtMihbZU1CCp
AND0NYceWicI9XCqD7bS9WE1U2GCWJ8MxM8o//3b3T/V3TCTFJRb3xn4xJOL5/fx6f/d76ra34BY8xUfedPQORg2T3pvYRhOq9VT1IuiNhULLQIDAQAB"

Важно! default — название селектора - произвольной строки идентифицирующей подпись DKIM. Необходимо, чтобы в конфигурации Exim и в DNS записи использовался один и тот же селектор.

Для проверки отправляем письмо на домен gmail и смотрим исходное тело письма.

Также, не стоит забывать, что стандартное время применения настроек DNS - 24 часа.

Комментарии:

Разработано для Disqus