freebsd exim dkim

Дата | 02.08.2015

На одном из проектов повышенная активность почты, то-есть то пин-коды шлются по активации, то просто пользователи между собой обмениваются письмами.
Через удаленный smtp не заходил городить велосипед, а сделал как можно проще.
У нас уже установлен и настроен exim, к нему добавляем функционал DKIM.
Если не установлен почтовый сервер, то устанавливаем.

# cd /usr/ports/mail/exim
# make install clean

В моем случае, я добавил функцию дким в exim,

# make config

Выбираем параметр DKIM=on: Enable support for DKIM
После, переустановим exim.

# make reinstall clean

Вот и все.
Этот способ работает без всяких сторонних программ.
Генерируем секретный ключ, я сделал ключ в 1024 символа, вы можете 2048.
Мне достаточно 1024 шифра.

# openssl genrsa -out /usr/local/etc/exim/твой_домен.key 1024

Теперь с генерируем публичный ключ, который мы после добавим в днс записи.
Кстати я свои домены держу на яндексе (pdd.yandex.ru), очень удобно и практично, одной атакой меньше.

# openssl rsa -in /usr/local/etc/exim/твой_домен.key -pubout

Теперь добавим публичный ключ к днс записям домена на яндексе.
В яндексе я добавил так.

mail1._domainkey TXT v=DKIM1; k=rsa; p=MIIB....(тут много цифор,букв)QAB

Добавим конфигурацию в наш экзим.
Вставляем его в начало отсека # MAIN CONFIGURATION SETTINGS # или вовсе в начало файла.

# grep -A 4 "# DKIM" /usr/local/etc/exim/configure
# dkim
DKIM_DOMAIN                     = ${lc:${domain:$h_from:}}
DKIM_FILE                       = /usr/local/etc/exim/${lc:${domain:$h_from:}}.key
DKIM_PRIVATE_KEY                = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

Меняем еще один пункт в конфигурационном файле exim.

# grep -A 5 "remote_smtp:" /usr/local/etc/exim/configure
remote_smtp:
  driver = smtp
  dkim_domain           = DKIM_DOMAIN
  # mx - это селектел определяющий дким запись(сертификат), у меня к примеру несколько дким сертификатов у домена. Селектел может быть любым!
  dkim_selector         = mx
  dkim_private_key      = DKIM_PRIVATE_KEY

После добавления записи, перезагрузим почтовый сервер exim.

# /usr/local/etc/rc.d/exim restart

По началу вы будите видеть в теле отправленного письма от сервера такое dkim=neutral, но нужно что бы прошло несколько часов, что бы днс запись обновилась.
Проверить добавилась ли дким запись к домену или нет, можно несколькими способами.
Обычно 4-6 часов что бы прошло, что бы днс запись начала корректно работать.

  • 1Выполнить команду в терминале(консоли) сервера.
    # dig mx._domainkey.ваш_домен_ру txt | grep "mx."

    И увидите, есть ли дким запись.

  • 2 Проверяем отправив письмо на яндекс почту себе, мы должны увидеть в открывшемся письме зеленую финтифлюшку сверху :D, или внутри письма(тело письма) должно значиться dkim=pass, это значит что все нормально мы сделали, дким запись корректно добавилась к домену.
  • 3 В интернете полно сервисов для проверки дким записи.

Вот как бы и все, ничего сложного.
На момент написания статьи версия exim и системы такая.

# exim --version | grep version
Exim version 4.85 #2 (FreeBSD 10.1) built 16-Jul-2015 13:04:13

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *