====== DKIM (Domain Keys Identified Mail) ======
DKIM (Domain Keys Identified Mail) — технология подтверждения подлинности отправителя письма путём проверки цифровой подписи по открытому ключу в специальной [[dns:dns|DNS]] записи тип ''TXT'' домена отправителя.
http://dkim.org/
:!: Можно использовать совместно с [[spf:spf|SPF (Sender Policy Framework)]]
====== Установка ======
apt install opendkim opendkim-tools
====== Настройка ======
Для настройки нужно выполнить по порядку все следующие пункты:
- Создание папки mkdir /etc/postfix/dkim/
- Создание ключей opendkim-genkey -D /etc/postfix/dkim/ -d domain.ru -s mail
В результате создаются файлы:
mail.private
mail.txt
Для дальнейшего использования с несколькими доменами нужно переименовать файлы в соответствии с именем домена, пример для ''domain.ru'':
mail.domain.ru.private
mail.domain.ru.txt
===== Внутренние хосты =====
:!: Обязательно нужно внести в файл адрес (значение ''inet_interfaces'' из ''/etc/postfix/postfix-o/main.cf'') [[examples:email_server_several_subdomain#выходной_сервер|выходного сервера]], чтобы не возникала ошибка следующего вида: **''opendkim 10.0.0.1 not internal''**
10.0.0.1
===== Список ключей =====
Формат: ''Имя_ключа Домен:Селектор:Имя_файла_ключа''
mail._domainkey.domain.ru domain.ru:mail:/etc/postfix/dkim/mail.domain.ru.private
===== Список подписей =====
Формат: ''Домен Имя_ключа''
domain.ru mail._domainkey.domain.ru
===== Завершение настройки =====
Syslog yes
UMask 002
OversignHeaders From
Canonicalization relaxed/relaxed
AutoRestart yes
DNSTimeout 5
SyslogSuccess Yes
LogWhy Yes
Mode sv
UserID opendkim:opendkim
KeyTable file:/etc/postfix/dkim/KeyTable
SigningTable file:/etc/postfix/dkim/SigningTable
InternalHosts file:/etc/postfix/dkim/InternalHosts
PidFile /var/run/opendkim/opendkim.pid
Socket inet:8891@localhost
Нужно задать параметры подключения:
SOCKET="inet:8891@localhost"
:!: Обязательно нужно установить права на файлы:
#!/bin/bash
chgrp opendkim /etc/postfix/dkim/*
chmod g+r /etc/postfix/dkim/*
chmod 640 /etc/postfix/dkim/*.private
chown root /etc/postfix/dkim/*.private
chown root /etc/postfix/dkim/*.txt
Запуск:
service opendkim restart
Проверка:
netstat -tulpn|grep :8891
===== Postfix =====
В файл ''main.cf'' [[examples:email_server_several_subdomain#выходной_сервер|выходного сервера]] нужно добавить:
milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
===== Amavisd-new =====
Для того, чтобы [[amavisd-new:amavisd-new|Amavisd-new]] писал в заголовок поле ''Authentication-Results'' нужно:
$enable_dkim_verification = 1;
===== Roundcube =====
Для отображения статуса проверки DKIM в [[roundcube:roundcube|Roundcube]] нужно использовать расширение [[https://plugins.roundcube.net/packages/roundcube/authres_status|authres_status]]:
cd /tmp; wget https://github.com/pimlie/authres_status/archive/master.zip
===== DNS =====
Чтобы получатели могли проверить подлинность отправителя нужно создать специальную запись в зоне [[dns:dns|DNS]] нужного домена.
^Имя записи| ''mail._domainkey'' \\ Для домена третьего уровня ''test'' имя записи должно быть таким: ''mail._domainkey.test''|
^Тип записи| ''TXT''|
^Значение| Текст (внутри кавычек) из файла ''/etc/postfix/dkim/mail.domain.ru.txt'' |
===== Почтовый клиент оправителя =====
Также важно, чтобы домен указанный в поле обратный адрес (записывается в поле ''X-Sender'') совпадал с доменом, для которого сделан ключ, например: адрес должен быть ''user@domain.ru'' а не ''user@sub1.domain.ru''
====== Тестирование ======
Для теста можно оправить тестовое письмо на любой из адресов:
|''check-auth@verifier.port25.com''|
|''check-auth2@verifier.port25.com''|
Также можно проверить домен на странице:[[http://dkimcore.org/tools/keycheck.html|DKIM Core]]
====== Ссылки ======
[[wpru>DomainKeys_Identified_Mail|DomainKeys Identified Mail]]
https://wiki.debian.org/ru/opendkim
https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-dkim-with-postfix-on-debian-wheezy
https://www.port25.com/support/authentication-center/email-verification/
[[https://mindbox.fogbugz.com/?W504|mindbox.fogbugz.com:Инструкция по настройке SPF и DKIM]]
[[https://yandex.ru/support/pdd/set-mail/dkim.xml?ncrnd=1783|Яндекс.Помощь: DKIM-подпись]]
[[https://serverfault.com/questions/851215/setting-up-spf-and-dkim-records-of-a-subdomain/851254#851254|domain name system - Setting up SPF and DKIM records of a subdomain - Server Fault]]
{{tag>Email DNS}}