DKIM+Sendmail
В основе DKIM лежат две технологии - технология DomainKey от Yahoo и система Internet Identified Mail от Cisco. Эта технология (DKIM) предназначена для идентификации отправителя почтового сообщения с помощью цифровой подписи, связанной с именем соответствующего домена. DKIM была создана для более качественной классификации и идентификации легитимной электронной почты и широко используется крупнейшими компаниями, такими как, например, AOL, Cisco, EarthLink, Google, IBM, VeriSign, Yahoo.
Создание ключей
Для работы DKIM требуется пара ключей - публичный и приватный. Генерация приватного ключа:
openssl genrsa -out rsa.private 1024
Генерация публичного ключа:
openssl rsa -in rsa.private -out rsa.public -pubout -outform PEM
Переместить приватный ключ в директорию "/var/db/dkim/":
mv rsa.private /var/db/dkim/mail.private.pem
где mail - это имя селектора и назначить права на файл 0600 root:root.
Добавление опции в sendmail.mc
В файл "sendmail.mc" необходимо добавить:
INPUT_MAIL_FILTER(`dkim-filter', `S=inet:8891@localhost')
где 8891 - порт.
Модификация DNS
Создать TXT-запись для домена. Например:
mail._domainkey.example.com. IN TXT "k=rsa;t=y;p=MEwwPQRJKoZIhvcNADAQCQADOwAwOAIxANPpYHdE2 tevfEpvL1Tk2dDYv0pF28/f5MxU83x/0bsn4R4p7waPaz1IbOGs/6bm5QIDAQAB"
Строка после p= - base64-кодировка публичного ключа, взятая между строчек "----- BEGIN PUBLIC KEY----- и -----END PUBLIC KEY-----", mail - вышеупомянутое селекторное имя, t=y - указывает на то, что ключ используется в тестовом режиме.
Кроме того, можно у домена прописать ADSP запись (RFC5617), что позволит принимающему серверу понять, должно ли ваше письмо быть подписано или нет. Запись выгладит так:
_adsp._domainkey.example.com. TXT "dkim=all"
Значений dkim= может быть три:
all — Все письма должны быть подписаны discardable — Не подписанные письма не должны приниматься unknown — Аналогично отсутствию записи
Проверка
mailto: autorespond+dkim@dk.elandsys.com
Более подробно о настройке dkim можно найти на сайте www.sendmail.org.