Настройка DKIM-подписи в Exim4 на Debian

Если письма, которые отсылает Ваш сайт, часто попадают в спам, то выручить Вас сможет DKIM-подпись. Конечно же – это не панацея от всех бед, но внести огромную лепту доверия поможет. В статье будет описываться способ добавления DKIM-записи на сервере под управлением Debian c установленным почтовиком Exim4.
Сервер Exim поддерживает DKIM-записи начиная с версии 4.7.1. Стоит обновится перед настройкой.
pdd.yandex + отправка писем с сайта через Exim4
Если у Вас почта на pdd.yandex, а Вы хотите отправлять письма еще и с сайта?
Это достаточно распространенная ситуация, так как для небольших сайтов иметь полноценный почтовик не совсем целесообразно. Проще использовать web-сервисы от Yandex, Google или Mail. С ними очень удобно пользоваться почтой на своем вне сайта.
Все эти сервисы, при правильной настройке, используют DKIM-запись, которая сформирована на стороне сервиса. При такой настройке, во время отправки письма с сайта, оно 100% попадет в спам.
Чтобы этого избежать нужно создать свою, дополнительную DKIM-запись, которая будет идентифицировать наш сервер Exim и доменное имя.
Ограничение на количество таких записей нет. Для одного сайта их можно сделать сколько угодно. И наоборот: в Exim можно указать одну DKIM-запись для нескольких доменов.
Добавляем DKIM-подпись в Exim
Настраиваем Exim4
Первое что необходимо сделать – это установить необходимые пакеты. В Debian это делается одной командой:
sudo apt install opendkim-tools openssl dnsutils
Далее генерим новую пару открытого и закрытого ключа. Обычно делают это либо в директории с сайтом (если их много и нужны разные подписи) или, если сайт один, то в директории с конфигами Exim4 – /etc/exim4
.
cd /etc/exim4
sudo openssl genrsa -out adminway.ru.key 1024
sudo openssl rsa -in adminway.ru.key -pubout > adminway.ru.pub
sudo chown Debian-exim:Debian-exim adminway.ru.key
sudo chmod 640 adminway.ru.key
adminway.ru – это ваше доменное имя сайта.
В Debian Exim4 запускается от имени пользователя Debian-exim
. Достаточно странное явление, так как используется тире и заглавная буква. Это не ошибка.
Далее в конфиге Exim – /etc/exim4/exim4.conf.template
:
sudo nano /etc/exim4/exim4.conf.template
До секции:
remote_smtp:
Нужно добавить код:
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 = mail-site
DKIM_SELECTOR
– это любое удобное для вас название. Его в дальнейшем нужно будет ввести в панель регистратора домена.
Перезапускаем Exim4. В Debian|Ubuntu:
service exim4 restart
На стороне сервера все. Теперь нужно отредактировать DNS-запись о вашем домене, добавив открытую часть DKIM-записи в панели регистратора. Я использую REG.RU, поэтому скрины будут от него.
Добавляем TXT-запись в панели регистратора домена
Посмотреть открытую часть DKIM-записи можно командой на сервера:
cat adminway.ru.pub
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDIJQLClpNU0DzvMZOw3OcXpHqd
tY1Y5TXrD9XJS/HGqyxLwRANjKcMnfhj+Eg6LI2Fq3GyMEE4y7ed53GjPrnFJLv3
OEWU17vN6OV5jqGSHnEIi1NzYz2eE8MlprPb0/wA+8AqVSQ0HLSQ4pvUdaFN1HKF
qHCCLVV6eHYWVqHPGwIDAQAB
-----END PUBLIC KEY-----
Нам нужен непрерывный набор символов внутри. Копируем его.
В панели регистратора добавляем новую TXT-запись такого вида:
где mail-site
– это тот самый селектор, который указали в Exim для DKIM-записи, _domainkey
— это обязательное слово.
Если Вы настраиваете DKIM-запись для домен 3 уровня (к примеру, test.vashspisok.ru), то данная запись будет иметь вид: mail-site._domainkey.test. В Exim можно легко указать 1 запись DKIM на несколько доменов.
В поле Text
вносится неизменяемая часть v=DKIM1; k=rsa; p=
, а после нее без пробела идет скопированный открытый ключ.
Время принятия параметров у всех регистраторов разное. У REG.RU, к примеру, это время составляет примерно 15 минут.
Проверка DKIM подписи
Чтобы проверить правильно ли мы настроили DKIM в Exim, можно посмотреть вывод команды:
host -t txt mail-site._domainkey.adminway.ru
где vashspisok.ru – название домена.
Утилиты HOST
изначально нет в Debian. Находится она в пакете dnsutils
. Для установки нужно запустить команду:
sudo apt install dnsutils
В ответе Вы должны увидеть добавленный открытый ключ DKIM-подписи.
А вообще для того, чтобы проверить как настроена вся почтовая подсистема есть отличный web-сервис — www.mail-tester.com, который позволяет посмотреть на отправленное с Вашего сервера письмо «глазами» популярных почтовых сервисов. Ведь именно они будут решать спам Вы отсылаете или нет.
Теги: exim