Настройка 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-запись такого вида:

Добавляем TXT-запись с DKIM данными в панели регистратора

где 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, который позволяет посмотреть на отправленное с Вашего сервера письмо «глазами» популярных почтовых сервисов. Ведь именно они будут решать спам Вы отсылаете или нет.

Теги:

Комментарии




В качестве аватарки используется сервис - gravatar.com



IT-событие
Создание AMD
Создание AMD