Translation(s): English - Русский


Dkim

Domain Keys Identified Mail метод E-mail аутентификации. Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты. Вместо традиционного IP-адреса, для определения отправителя сообщения DKIM добавляет в него цифровую подпись, связанную с именем домена организации. Подпись автоматически проверяется на стороне получателя, после чего, для определения репутации отправителя, применяются «белые списки» и «чёрные списки». В технологии ?DomainKeys для аутентификации отправителей используются доменные имена. ?DomainKeys использует существующую систему доменных имен (DNS) для передачи открытых ключей шифрования.

Подробнее можно прочитать на https://ru.wikipedia.org/wiki/DomainKeys_Identified_Mail или на сайте http://www.opendkim.org/

Postfix и opendkim

Устанавливаем пакеты:

apt-get install opendkim opendkim-tools

Добавляем в Postfix подпись opendkim. Для удобства, я храню все настройки в /etc/postfix/dkim/ вы можете выбрать другую директорию.

mkdir /etc/postfix/dkim/

Генерируем ключ для сервера mail.example.com

opendkim-genkey -D /etc/postfix/dkim/ -d example.com -s mail

в результате в директории /etc/postfix/dkim/ появятся 2 файла mail.private и mail.txt (закрытый и публичный ключ соответственно)

Для корректной работы нужно выставить правильные права на приватный ключ:

chmod 600 /etc/postfix/dkim/mail.private

И сменить владельца для директории:

chown -R opendkim /etc/postfix/dkim/

Настраиваем /etc/opendkim.conf

О всех доступных параметрах можно прочитать на странице: http://www.opendkim.org/opendkim.conf.5.html

Syslog yes

# Режим подписи и проверка подписей
Mode sv
#Указываем список ключей
KeyTable file:/etc/postfix/dkim/keytable
#Соответствие ключей и доменов
SigningTable file:/etc/postfix/dkim/signingtable

Теперь в файл /etc/postfix/dkim/keytable вносим информацию о приватном ключе:

# имя_ключа домен:селектор:/путь/до/ключа
mail._domainkey.example.com example.com:mail:/etc/postfix/dkim/mail.private

В файле /etc/postfix/dkim/signingtable указываем какие домены каким ключем будем подписывать:

# домен имя_ключа
example.com mail._domainkey.example.com
#можно указать несколько доменов
#example.net www._domainkey.example.net

В файле /etc/default/opendkim указываем демону, параметры подключения:

SOCKET="inet:8891@localhost"

И добавляем строки в Postfix /etc/postfix/main.cf:

milter_default_action = accept
milter_protocol = 2
smtpd_milters = inet:localhost:8891
non_smtpd_milters = inet:localhost:8891

На этом настройка opendkim и postfix закончена. Переходим к DNS.

Настройка DNS

Для домена example.com добавляем TXT запись.

Имя записи

Тип записи

Текст

mail._domainkey

TXT

v=DKIM1; g=*; k=rsa; p=MI***** (берем из файла /etc/postfix/dkim/mail.txt )

ADSP запись

ADSP запись нужна принимающему серверу, чтобы понять , должно ли письмо быть подписано или нет.

Имя записи

Тип записи

Текст

_adsp._domainkey

TXT

dkim=all

Значение dkim может принимать следующие значения:

all - все сообщения должны быть подписаны.

discardable - отклонять не подписанные сообщения.

unknown - аналогично отсутствию записи.