DKIM

Материал из Webko Wiki
Перейти к навигации Перейти к поиску

Из описания DKIM в Wiki

DomainKeys Identified Mail метод E-mail аутентификации.

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

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

Для работы с DKIM нам нужно

  1. Поддержка DKIM почтовым сервером для подписывания отправляемой почты;
  2. Получение пары приватного и публичного ключа;
  3. Занесение в DNS домена необходимых записей о наличии поддержки DKIM.

1. EXIM

Поддерживает DKIM, настроим его:

vim /etc/mail/exim.conf
Добавим следующие строчки ниже "begin transports":
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /etc/mail/domains/${lc:${domain:$h_from:}}/dkim.pem #- важно!!!! Пишем путь к приватному ключу
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

Также заменяем:

remote_smtp: 
driver = smtp 

На:

remote_smtp: 
driver = smtp 
dkim_domain = DKIM_DOMAIN 
dkim_selector = mail # - выбранный нами селектор.
dkim_private_key = DKIM_PRIVATE_KEY

2. Генерация ключей

openssl genrsa -out /etc/mail/domains/$domain$/dkim.pem 3-1024 &>/dev/null
openssl rsa -pubout -in /etc/mail/domains/$domain$/dkim.pem -out/etc/mail/domains/$domain$/dkim.pub &>/dev/null
chown exim:mail /etc/mail/domains/$domain$/dkim.*

3. Занесение в DNS домена необходимых записей

Добавляем txt записи в домен

mail._domainkey IN TXT "k=rsa; p=MIGfMA0GCSqGS … wIDAQAB"
_domainkey IN TXT "t=y; o=~;"

p = cat /etc/mail/domains/$domain$/dkim.pub |grep -v ' KEY---' |tr -d '\n'