DKIM
Из описания DKIM в Wiki
DomainKeys Identified Mail метод E-mail аутентификации.
Технология DomainKeys Identified Mail (DKIM) объединяет несколько существующих методов антифишинга и антиспама с целью повышения качества классификации и идентификации легитимной электронной почты. Вместо традиционного IP-адреса, для определения отправителя сообщения DKIM добавляет в него цифровую подпись, связанную с именем домена организации. Подпись автоматически проверяется на стороне получателя, после чего, для определения репутации отправителя, применяются «белые списки» и «чёрные списки».
В технологии DomainKeys для аутентификации отправителей используются доменные имена. DomainKeys использует существующую систему доменных имен (DNS) для передачи открытых ключей шифрования.
Для работы с DKIM нам нужно
- Поддержка DKIM почтовым сервером для подписывания отправляемой почты;
- Получение пары приватного и публичного ключа;
- Занесение в 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'