Настройка 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 это делается одной командой:
apt install opendkim-tools openssl dnsutils
Далее генерим новую пару открытого и закрытого ключа. Обычно делают это либо в директории с сайтом (если их много и нужны разные подписи) или, если сайт один, то в директории с конфигами Exim4 – /etc/exim4.
openssl genrsa -out dkim.key 1024
openssl rsa -in dkim.key -pubout > dkim.pub
chown Debian-exim:Debian-exim dkim.key
chmod 640 dkim.key
В Debian Exim4 запускается от имени пользователя Debian-exim. Достаточно странное явление, так как используется тире и заглавная буква. Это не ошибка.
Далее в конфиге Exim – /etc/exim4/exim4.conf.template:
nano /etc/exim4/exim4.conf.template
До секции:
remote_smtp:
Нужно добавить код:
DKIM_PRIVATE_KEY = /etc/exim4/dkim.key
DKIM_SELECTOR = mail-site
DKIM_SELECTOR – это любое удобное для вас название. Его в дальнейшем нужно будет ввести в панель регистратора домена.
Перезапускаем Exim4. В Debian|Ubuntu:
service exim4 restart
На стороне сервера все. Теперь нужно отредактировать DNS-запись о вашем домене, добавив открытую часть DKIM-записи в панели регистратора. Я использую REG.RU, поэтому скрины будут от него.
Добавляем TXT-запись в панели регистратора домена
Посмотреть открытую часть DKIM-записи можно командой на сервера:
cat dkim.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._domainkey.test. В Exim можно легко указать 1 запись DKIM на несколько доменов.
В поле Text вносится неизменяемая часть v=DKIM1; k=rsa; p=, а после нее без пробела идет скопированный открытый ключ.
Время принятия параметров у всех регистраторов разное. У REG.RU, к примеру, это время составляет примерно 15 минут.
Проверка подписи
Чтобы проверить нашу работы, можно посмотреть вывод команды:
dig -t txt mail-site._domainkey.vashspisok.ru
где vashspisok.ru – название домена.
Утилиты DIG изначально нет в Debian. Находится она в пакете dnsutils. Для установки нужно запустить команду:
apt install dnsutils
В ответе Вы должны увидеть добавленный открытый ключ DKIM-подписи.
А вообще для того, чтобы проверить как настроена вся почтовая подсистема есть отличный web-сервис — www.mail-tester.com, который позволяет посмотреть на отправленное с Вашего сервера письмо «глазами» популярных почтовых сервисов. Ведь именно они будут решать спам Вы отсылаете или нет.
Теги: