Создаем цифровую подпись Dkim в Exchange 2013


Внимательный администратор, обеспокоенный проблемой спама давно зарегистрировал запись SPF, и внимательно поглядывал, как она устроена у других, для собственного интереса.

Не так давно еще крупные игроки использовали мягкую политику записей, т.н. soft fail.

«By contrast, Microsoft uses a soft fail. Many third-party vendors who send email messages on behalf of Microsoft for surveys, newsletters, and so on are outside the SPF record that Microsoft uses. Because Microsoft does not own that IP space but still wants those organizations to be able to send email messages on behalf of Microsoft, Microsoft uses a soft fail.»

Цитата из

https://support.microsoft.com/en-us/kb/2640313

А самые внимательные администраторы наверное заметили изменение, произошедшие в этом плане в 2015 году- хотя статья  заливает заявляет про soft fail, на самом деле политика в начале года слегка ужесточилась в сторону reject. И еще добавилась цифровая подпись для сообщений. На outlook.com политика пока мягче, поскольку значительно используется пересылка почты, которая reject не любит.

Снимок

Еще одно изменение- появилась цифровая подпись у писем, о чем говорит наличие открытого ключа в той же TXT записи.

Итак, внимательный администратор, который во всем равняется на Microsoft, наверняка тоже захочет сделать себе замечательную цифровую подпись для сообщений после знакомства с содержимым статьи.

Цифровая подпись

DKIM (Domain Keys Identified Mail) — технология удостоверения подлинности отправителя при помощи цифровой подписи, связанной с именем домена. Наличие данной подписи подтверждает, что письмо не было перехвачено и изменено после отправки с почтового сервера отправителя.

Цифровая подпись предназначена для определения достоверности электронного письма и служит для борьбы со спамом и фишингом.Письма получают цифровую подпись на почтовом сервере отправителя. Сам отправитель установить подпись не может, если только он не является администратором того сервера, с которого отправляется письмо.

Если на странице чтения письма в поле От кого вы видите серый значок Цифровая подпись не является достоверной, рекомендуется с осторожностью отнестись к содержанию письма.

Не так давно еще цифровую подпись в Exchange можно было установить решениями сторонних поставщиков, что не все могли оценить по достоинству. Сообществом однако предлагался проект OpenDKIM, который после постукивания молотком тоже был вполне хорош, и годился для цифровой подписи электронных писем.

Сегодня я бы хотел поговорить о проекте dkim-exchange,который не требует Linux решений и финансовых затрат.

Решение построено на базе транспортного агента, устанавливающегося в дополнение к остальным агентам транспорта, и оказывается проще простого в установке и применении. Итак, скачиваем дистрибутив.

Внимательно смотрим справку и содержимое.

Программа состоит из конфигурационного файла  configuration-dkimsigner-exe-config, в формате xml, в который записываются настройки, и файла программы, запустим его, открыв EMS с повышенными привилегиями, и запустив Configuration.DkimSigner.exe

Убедимся также, что политика разрешает выполнение скриптов

Set-ExecutionPolicy Unrestricted

dkim1

Особенных трудностей интерфейс не составляет, и для тех, кто желает, можно делать все скриптом, не пользуясь мастером.

Итак, просто нажмем Install, в фоновом режиме установится агент, который будет подписывать наши сообщения, и  служба транспорта будет перезапущена.

dkim5

Агент должен быть последним в списке приоритета,  дополнительных настроек не требует, совместим с Exchange начиная с 2007 и поддержкой до самых последних версий.

Итак, после установки агента осталось сделать совсем немного:

перейдем на вкладку Dkim settings и поменяем уровень журналирования на более полный- Debug.

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

dkim2

В данный момент можно ничего не менять, однако отмечу, что мы можем изменить алгоритм подписи, а также выбрать заголовки, которые хотим подписывать по желанию. Настройки сразу уходят в применение по нажатию кнопки Save Settings.

Едем дальше- на вкладку Domain Settings

dkim3

Добавим здесь домен кнопкой Add, который мы хотим подписывать. Далее сгенерируем ключ нужной длины. например возьмем килобитный для начала, и укажем селектор- тот хост, который отвечает за отправку почты в организации. Нам сразу же предложат созданную на основе приватного и публичного ключей запись в строке Suggested DNS Record, можем использовать ее. Кнопкой Existing DNS Record можно проверить существующую запись во внешней DNS зоне, которую мы сейчас пойдем создавать.

Если вам хочется больше свободы, то запись можно создать во многих онлайн сервисах, которые помогут ее сконструировать так же, как и мастер. Например, вот этот сайт

dkim6

Получив от нас необходимые настройки, создаст запись Show DNS Record:

dkim7

Итак, нам надо создать в нашей зоне запись вида  mx1._domainkey.razbornov.ru IN TXT, т.е.

имя селектора _domainkey и имя нашего домена. Нет ничего проще- в панели хостинга создаем запись, вот как это выглядит, смотрим запись внизу:

dkim8

к верхней записи на скриншоте вернемся чуть позже.

Итак, мы настроили программу, создали запись в DNS. Через несколько часов, когда изменения применяться, можно проверять настройки. Самый простой способ- присылать письма на сервис, который гордо показывает, что письмо подписано цифровой подписью, вот так:

dkim10 dkim11

В заголовках сообщения тоже должен быть результат: dkim=pass header.

dkim9

Во время отправки писем поглядываем в журнал:

dkim4

Видно (идем от выделенной строки вверх). что есть сообщение, которое агент вознамерился подписать цифровой подписью. Агент создает хэш и подписывает сообщение, после этого оно передается на отправку.

Чтобы проверить, что о себе там думает агент подписи сообщений, отправим проверочные письма на адреса

check-auth@verifier.port25.com; autorespond+dkim@dk.elandsys.com; sa-test@sendmail.net;

dkim8

dkim7

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

Поиск и устранение неисправностей:

Отключение и удаление агента

Временно отключить или удалить агента можно командами:
1. Останавливаем службу транспорта Net Stop ‘MSExchangeTransport‘,
2. Отключаем агента Disable-TransportAgent  ‘Exchange DkimSigner’,
3. При необходимости удаляем его привязку Uninstall-TransportAgent -Identity ‘Exchange DkimSigner’
4. Запускаем транспорт обратно Net Start ‘MSExchangeTransport’.
5. Удаляем файлы
Так же для удаления можно воспользоваться прилагаемым к установке скриптом «.\uninstall.ps1«, его использование аналогично установке. Проще, конечно, использовать графический мастер- все настройки в нем есть.

Полезные ссылки:

http://www.port25.com/support/domainkeysdkim-wizard/

https://www.unlocktheinbox.com/dkimwizard/

http://dmarc.org/

http://dkim.org/

http://engineering.linkedin.com/email/dmarc-moving-monitor-reject-mode

http://www.mail-tester.com/web-EE47Ci
P.S. После того, как мы сегодня постотрели. как подписывать сообщения. хотелось бы сказать еще пару слов.

Во-первых, призываю простимулировать разработчиков ПО небольшой суммой, которая безусловно, лишней им не будет.

Во-вторых, когда Вы освоитесь с DKIM подписью, советую создать еще и политику DMARC.

Это связка записи SPF и DKIM. Можно просто создать политику, говорящую о том, что любые наши письма будут подписаны, как на скриншоте, к которому я обещал вернуться. Это будет запись вида

v=DMARC1; p=reject. Такая запись говорит о том, что не подписанные цифровой подписью письма не должны приниматься, как соответствующие заявлению политики.


Интересно заметить, что даже если Вы не осилили статью не используете DKIM, то неплохо бы создать все равно политику  DMARC, говорящую о том, что политика у Вас есть, а никаких действий с письмами предпринимать не нужно. Это будет запись вида v=DMARC1; p=none.

Как ни странно, но создание такой вот записи в DNS без настройки DKIM даст вам дополнительные положительные баллы при анализе Ваших писем сторонними почтовыми системами. И это очень правильно- делаете хоть что-то уже молодцы- осталось всего пару шагов для полноценной подписи сообщений и политик их применения, не так ли?

P.S. Если Вы пользуетесь продуктом, не забывайте отослать копейку автору, дабы поддержать его в благом начинании. Напомню, что есть уйма коммерческих решений, к которым за их цену Вы бы и близко бы не подошли. А автор сделал народный проект.

Реклама

Создаем цифровую подпись Dkim в Exchange 2013: 8 комментариев

  1. Спасибо за статью, сам настроил для EXC2013 CU9, но столкнулся с такой особенностью у DNS хостинга TXT запись не может быть более 255 символов, сидел думал в чем дело (попутно изучил много материалов по DKIM), помог support DNS хостинга решить вопрос:

    Размер записи превышает 255 символов и поэтому не обрабатывается. Вам нужно разбить на несколько IN TXT:

    recname IN TXT «foobar» «baz» «blivit» «alpha» … «zulu»

    Как только я это сделал, все заработало.

  2. «селектор- тот хост, который отвечает за отправку почты в организации»

    а что указывать в селекторе, если имеется кластер из 2х МВХ? имя DAG?

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s