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.pem $dkim_size &>/dev/null openssl rsa -pubout -in $USER_DATA/mail/$domain.pem \
-out $USER_DATA/mail/$domain.pub &>/dev/null
chmod 660 $USER_DATA/mail/$domain.*
- Adding dkim keys
if "$MAIL_SYSTEM" =~ exim ; then
cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem chmod 660 $HOMEDIR/$user/conf/mail/$domain/dkim.pem
fi