Настройка DKIM + sendmail + DNS-запись на Fedora 31


DKIM — это цифровая подпись писем, отправляемых с вашего сервера. Она гарантирует, что письмо отправлено именно с него, и не было изменено. Наличие DKIM на отправляемой корреспонденции крайне положительно сказывается на прохождении antispam тестов, поэтому лучше бы её настроить.
Принцип работы. На сервере лежит закрытый ключ, которым подписываются исходящие письма. Удалённый почтовый сервер (Яндекс, Маил, Гугл и т.д.) при получении письма видит в заголовках эту подпись и проверяет ее путем запроса открытого ключа из DNS-записи домена.
Поехали.

Часть 1. OpenDKIM
Устанавливаем opendkim:
dnf install opendkim.x86_64

Cоздаём директорию для хранения ключей:
mkdir -p /etc/opendkim/keys/mydomain.com

Генерим ключи, название селектора «mail»:
opendkim-genkey -D /etc/opendkim/keys/mydomain.com -d mydomain.com -s mail

Назначаем права доступа и владельца на папку с нашими ключами:
chown -R opendkim:opendkim /etc/opendkim/keys/mydomain.com
chmod 640 /etc/opendkim/keys/mydomain.com/mail.private
chmod 644 /etc/opendkim/keys/mydomain.com/mail.txt

Правим конфиг /etc/opendkim.conf:
Mode sv
Canonicalization relaxed/simple
Domain mydomain.com
Selector mail
KeyFile /etc/opendkim/keys/mail.private
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts

Правим /etc/opendkim/KeyTable:
mail._domainkey.mydomain.com mydomain.com:mail:/etc/opendkim/keys/mydomain.com/mail.private

Правим /etc/opendkim/SigningTable:
*@mydomain.com mail._domainkey.mydomain.com

Правим /etc/opendkim/TrustedHosts:
127.0.0.1
::1
localhost
mydomain.com
192.168.1.0/24 #если необходимо

Правим/создаем /etc/default/opendkim:
SOCKET="inet:8891@localhost"

Запускаем демона openDKIM:
systemctl start opendkim

Включаем автостарт демона openDKIM:
systemctl enable opendkim

Часть 2. Sendmail
Правим /etc/mail/sendmail.mc, добавляем в конец:
INPUT_MAIL_FILTER(`opendkim', `S=inet:8891@127.0.0.1')

Рестартуем sendmail:
systemctl restart sendmail

Часть 3. DNS-запись
Идем к нашему регистратору домена и добавляем DNS-запись:
тип записи - TXT
имя поддомена - mail._domainkey
содержание - "v=DKIM1; k=rsa; p=***много символов***"

TXT запись содержит данные из файла:
/etc/opendkim/keys/mydomain.com/mail.txt

Некоторые регистраторы ставят кавычки для TXT записи самостоятельно, некоторые нет. Мой кавычки ставит самостоятельно.
Время обновления записей от нескольких минут до 72 часов.
На кеширующих DNS-серверах интернет-провайдеров может потребоваться до нескольких суток.
DNS-серверы компании Google обновляются быстрее других (3-4 часа).
Зона .RU обновляется 4 раза в сутки по расписанию в 02:00, 10:00, 14:00, 19:00 (по Москве).
Зона .РФ обновляется каждый нечетный час.

Проверяем командой dig (запрашиваем у гугла):
dig @8.8.8.8 mail._domainkey.mydomain.com TXT

Часть 4. Enjoy
🙂

  1. Samp Автор записи

    Зябл, только не надо просить подробнее расписывать… подробнее некуда 😀

  2. Samp Автор записи

    Юлии П из Abuse Team Mail.ru большой респект (:give_rose:)

Добавить комментарий