Translation(s): English - Русский
Contents
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 - аналогично отсутствию записи.