Настройка DKIM для почтового сервера на базе postfix

Я не буду рассказывать что такое DKIM и зачем это нужно, а сразу приступим к настройке. Предполагается,что у вас уже имеется рабочий почтовый сервер на базе postfix.

Устанавливаем необходимые пакеты:

sudo apt install opendkim opendkim-tools

ПРИМЕЧАНИЕ: не забудьте заменить доменое имя на своё. Я буду использовать везде своё доменное имя itcrowd72.ru

Нужно подредактировать главный файл конфигурации /etc/opendkim.conf и вставить в него следующие параметры:

AutoRestart Yes
AutoRestartRate 10/1h
UMask 002
Syslog yes
SyslogSuccess Yes
LogWhy Yes
Canonicalization relaxed/simple
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Mode sv
PidFile /var/run/opendkim/opendkim.pid
SignatureAlgorithm rsa-sha256
UserID opendkim:opendkim
Socket inet:12301@localhost

Эти параметры подходят для большинства систем и часто используются как параметры по умолчанию. Подробнее о каждом из них можно почитать здесь

Теперь нужно указать postfix, что он должен работать с демоном opendkim, добавив в /etc/postfix/main.cf следующие параметры:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:12301
non_smtpd_milters = inet:localhost:12301

Теперь переходим к ключам шифрования. Создадим необходимые каталоги

sudo mkdir -p /etc/opendkim/keys

Создадим файл безопасных хостов /etc/opendkim/TrustedHosts и запишем в него параметры:

127.0.0.1
localhost
*.itcrowd72.ru

Создадим файл таблицы ключей /etc/opendkim/KeyTable и запишем в него параметры:

mail._domainkey.itcrowd72.ru itcrowd72.ru:mail:/etc/opendkim/keys/itcrowd72.ru/mail.private

Создадим файл таблицы подписей /etc/opendkim/SigningTable и запишем в него параметры:

*@itcrowd72.ru mail._domainkey.itcrowd72.ru

Создадим каталог для ключей вашего домена и перейдем в него

sudo mkdir /etc/opendkim/keys/itcrowd72.ru
cd /etc/opendkim/keys/itcrowd72.ru

Сгенерируем ключи:

sudo opendkim-genkey -s mail -d itcrowd72.ru

Сделаем пользователя opendkim владельцем закрытого ключа:

sudo chown opendkim:opendkim mail.private

На этом настройка сервера завершена. Перезапустим службы:

sudo service postfix restart
sudo service opendkim restart

Переходим к настройкам DNS домена. В файле mail.txt будет прописаны параметры, которые нужно будет прописать у вашего регистратора домена. У разных регистраторов это выглядит немного по разному. У моего выглядит так:

Изменения в DNS домена могут происходить до 72 часов.

Чтобы протестировать, всё ли правильно настроено, идем сюда, отправляем по указанному адресу письмо и сервис его проанализирует

Сервис поставил мне 10 баллов, но упомянул, что нужно еще добавить запись dmarc