Привет. Хочу поделиться своим небольшим опытом подключения DKIM (DomainKeys Identified Mail) к своему домену и почтовому серверу.
У нас есть:
- Платформа: Windows WebServer 2008;
- DNS-сервер: Бинд 9.7 ;
- Почтовый сервер: hMailServer 5.3.3 .
- Разберитесь с системой подписи сообщений DKIM, чтобы Gmail распознавал их как действительные и выдавал заветный: dkim=pass.
Что такое DKIM вообще и что нам нужно, чтобы наша почтовая система отправляла почту с поддержкой DKIM. Из описания DKIM в Вики :
Идентифицированная почта DomainKeys Метод аутентификации по электронной почте.Для работы с DKIM нам понадобится:Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов защиты от фишинга и спама для улучшения классификации и идентификации законной электронной почты.
Вместо традиционного IP-адреса DKIM добавляет цифровую подпись, связанную с доменным именем организации, для идентификации отправителя сообщения.
Подпись автоматически проверяется на стороне получателя, после чего используются «белые списки» и «черные списки» для определения репутации отправителя.
Технология DomainKeys использует доменные имена для аутентификации отправителей.
DomainKeys использует существующую систему доменных имен (DNS) для передачи общедоступных ключей шифрования.
- Поддержка DKIM почтовым сервером для подписи отправляемой почты;
- Получение пары приватного и публичного ключей;
- Внесение в DNS домена необходимых записей о наличии поддержки DKIM.
hMailServer начиная с версии 5.1 поддерживает подписание исходящей корреспонденции ключом.
Теперь нам нужно выяснить, как сформировать пару закрытого и открытого ключей.
Перебрав несколько вариантов, я остановился на веб-утилите сервиса port25.com, которая помимо генерации необходимых ключей еще и генерирует подсказку для DNS-записей: www.port25.com/support/support_dkwz.php Небольшое пояснение по поводу определенного поля «селектора домена».
Это поле позволяет привязать к одному домену несколько записей DKIM для разных нужд (например, для разных почтовых серверов).
В моем случае у меня только один почтовый сервер и селектор мне не нужен, поэтому я просто выбрал в качестве селектора «mail».
Сохраняем полученный приватный ключ на сервере в папке, к которой имеет доступ почтовый сервер.
В принципе, открытый ключ не обязательно сохранять в виде файла.
Он понадобится нам только для внесения необходимых записей в DNS. В конфигурации домена в hMailServer нам необходимо указать путь к файлу закрытого ключа, а также указать выбранный селектор (напомню, в качестве селектора я взял «mail»).
В файле зоны DNS нам необходимо указать такие записи, как:
_domainkey.example.com. TXT "t=s; o=~;" mail._domainkey.example.com. TXT "k=rsa\; t=s\; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQmO9AuWRbWPgl/jzDPQodrLfFLFqYYi6bCBnsTOCOJQrFbGgiR1C01j4zLw8XgG3rQ0WAaeg6Z/y39Ah7IONfs5gQuK 6e GZMmYwIsZyz2dQoUDmDLCb1WygpkrqsCbyPw3SWGihM4iChOwo7Ovo2mTOWOf5ejeZcP2qqNb9nRMQIDAQAB"Где «mail» перед _domainkey во второй записи — это не что иное, как выбранный нами селектор, а длинный набор символов в той же записи после «p=» — это наш открытый ключ.
Кажется, это все.
Теперь попробуем отправить письмо с нашего почтового сервера на gmail, поскольку доподлинно известно, что gmail проверяет DKIM. Смотрим полученное письмо в gmail и видим заветные строки:
Результаты аутентификации: mx.google.com; spf=pass (google.com: домен [email protected] обозначает 123.123.123.123 как разрешенный отправитель) [email protected]; dkim=pass [email protected]Поздравляю с успешным покорением ДКИМ))) и желаю вам того же.
Удачи.
УПД: Чтобы получить пару ключей без использования внешних сервисов, вы можете использовать OpenSSL:
openssl.exe genrsa -out tstpriv.pem 1024 — сгенерировать секретный ключ (1024 — длина ключа).Спасибо Лорк за дополнение.openssl.exe rsa -pubout -in tstpriv.pem -out tstpub.pem - получить открытый ключ из секрета
УПД 2: Небольшое дополнение от Ншопик : Вы также можете зарегистрировать запись ADSP для домена ( RFC5617 ) — это позволит принимающему серверу понять, нужно ли подписывать ваше письмо или нет. Запись будет выглядеть так:
_adsp._domainkey.example.com. TXT "dkim=все"Может быть три значения dkim=:
- all — Все письма должны быть подписаны
- отбрасываемый — неподписанные электронные письма не должны приниматься.
- неизвестно — аналогично отсутствию записи
Вместо них теперь используются ДМАРК , который сейчас широко доступен:tools.ietf.org/html/rfc7489. Теги: #антиспам #Спам и антиспам #электронная почта #dkim
-
Введение В Frontierville
19 Oct, 24 -
Платина
19 Oct, 24 -
Обновление Основной Ссылки
19 Oct, 24 -
Статистика Вашего Времени В Интернете
19 Oct, 24