Настройка Exim DKIM в Debian
Настроим на нашем почтовым сервере Exim DKIM подписи, для того чтобы письма с нашего почтового сервера не попадали в спам и быстрее проходили проверку в различных спам-фильтрах, а также повысить доверие к нашему почтовому серверу со стороны популярных почтовых систем mail, yandex, gmail.
И добавим в DNS нашего домена необходимых записей о наличии поддержки DKIM.
Рассмотрим настройку DKIM при помощи opendkim-tool
apt-get install opendkim-tools
создаем папку dkim в которой будет лежать наш приватный ключ
mkdir /etc/exim4/dkim
Меняем права на папку с root на Debian-exim
chown -R Debian-exim:Debian-exim /etc/exim4/dkim
Генерируем открытый и закрытый ключи для домена adminunix.ru:
opendkim-genkey -D /etc/exim4/dkim/ -d adminunix.ru -s email
D
- Каталог в который будут сгенерированы ключи
d
- Называет домена, который будет использовать этот ключ для подписания
После выполнения будут созданы файлы etc/exim4/dkim/mail.private и /etc/exim4/dkim/email.txt, с секретным и публичными ключами соответственно.
переходим в папку /etc/exim4/dkim/ и переименовываем mail.private в adminunix.ru.key
cd /etc/exim4/dkim/
mv email.private adminunix.ru.key
Меняем права adminunix.ru.private (файл закрытого ключа) с root на Debian-exim
chown -R Debian-exim:Debian-exim /etc/exim4/dkim/adminunix.ru.key
chmod 640 /etc/exim4/dkim/adminunix.ru.key
Настройки DNS
посмотрим содержимое файла mail.txt
cat /etc/exim4/dkim/email.txt
email._domainkey В TXT "v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxweK5
+F42YFdkRQqZI922yCQc68pdgWUhYr7CSeCxcQ5P10oKi2mXtYxOOKmeA7NExY6U5jrGEJ6gyr
BfsJPUp25PwApbpGZ+cIRB2/N3KcevEfiOVyyO7f7WduM+jmz69nyLozWO7QM2QjCCxWx6aKZm" ; ----- DKIM ключ почты для adminunix.ru
И добавляем эту информацию в нашу DNS зону в TXT запись.
Добавляем в поле имя
email._domainkey
а в поле Контент
v=DKIM1; k=rsa; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxweK5
+F42YFdkRQqZI922yCQc68pdgWUhYr7CSeCxcQ5P10oKi2mXtYxOOKmeA7NExY6U5jrGEJ6gyr
BfsJPUp25PwApbpGZ+cIRB2/N3KcevEfiOVyyO7f7WduM+jmz69nyLozWO7QM2QjCCxWx6aKZm
После того как мы добавили запись в DNS домена то mail.txt можно удалять файл.
Проверяем добавление записи в DNS
dig txt email._domainkey.adminunix.ru | grep DKIM
в ответ должны получить
email._domainkey.adminunix.ru. 2214 IN TXT "v=DKIM1\; k=rsa\; t=s\; p=MIIBIj...
Последним этапом настройки DKIM подписи является определение DKIM Author Domain Signing Practices (DKIM ADSP)
Добавляем еще одну запись TXT в DNS домена.
_adsp._domainkey.adminunix.ru IN TXT "dkim=all"
all
- — отправка неподписанных сообщений запрещена,
discardable
- — все неподписанные сообщения должны быть заблокированы на стороне получателя.
unknown
- — домен может подписывать некоторые или все письма
Настройка Exim
Добавляем в конфиг /etc/exim4/exim4.conf.template перед секцией remote_smtp:
# DKIM:
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_KEY_FILE = /etc/exim4/dkim/DKIM_DOMAIN.key
DKIM_PRIVATE_KEY = ${if exists{DKIM_KEY_FILE}{DKIM_KEY_FILE}{0}}
DKIM_SELECTOR = email
или если конфиг разделен (при установке exim4 был вопрос «разделить конфиги на мелкие файлы?»), то писать в /etc/exim4/conf.d/transport/30_exim4-config_remote_smtp
Если вы в ручную создали конфигурационный файл /etc/exim4/exim4.conf, то добавлять надо в него.
И так для каждого домена. И потом рестарт екзима:
/etc/init.d/exim4 restart
Посмотрим наши записи в конфигурационным файлом Exim
exim -bP transports | grep dkim
dkim_domain = ${lc:${domain:$h_from:}}
dkim_private_key = ${if exists{/etc/exim4/dkim/${lc:${domain:$h_from:}}.key}{/etc/exim4/dkim/${lc:${domain:$h_from:}}.key}{0}}
dkim_selector = email
где dkim_selector это первое слово перед ._domainkey в открытом ключе
И проверяем через сервис [urlspan]сервис[/urlspan] всели у нас получилось.
Простенько и ясно.