OpenDKIM + Postfix для Ubuntu

Инструкция по настройке связки Postfix и OpenDKIM

Для настройки DKIM на VPS или выделенном сервере необходимо установить и настроить OpenDKIM. Это позволит проверять подлинность отправляемой почты и повысит доверие к вашим сообщениям.

«DKIM (DomainKeys Identified Mail)» — метод аутентификации электронной почты, разработанный для обнаружения подделки сообщений. DKIM позволяет получателю убедиться, что письмо действительно было отправлено с заявленного домена.

Устанавливаем пакет OpenDKIM, который выполняет операции шифрования заголовков для DKIM:

apt-get install opendkim opendkim-tools

Создаём каталог для размещения ключей:

mkdir /etc/opendkim

Генерируем ключи для домена с помощью opendkim-genkey:

opendkim-genkey -D /etc/opendkim/ --domain testing.ru --selector dkim

Примечание

testing.ru — домен, с которого будет отправляться почта, dkim — имя селектора (может быть любым).

В папке /etc/opendkim/ появятся два файла: .private (закрытый ключ) и .txt (TXT-запись для DNS).

Назначаем группу владельца opendkim для ключей:

chown :opendkim /etc/opendkim/*

Задаём права для группы:

chmod g+rw /etc/opendkim/*

Создаём пользователя для OpenDKIM:

useradd opendkim -m -s /sbin/nologin

Разрешаем чтение группе:

chmod g+r /etc/opendkim/*

Настройка DNS

Смотрим содержимое TXT-файла:

cat /etc/opendkim/dkim.txt

Используем его для создания TXT-записи в панели управления DNS:

dkim._domainkey	IN	TXT	( "v=DKIM1; k=rsa; "
"p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM+aKFwMV4FHLhghuhQs4vEIIIigO0KzRwQojURHI8QV0m/aHt6AqO2JDhXpl54d3uXJj7QWE9653McQZxPQZa6Hu34RY70ap9OZQ664fWeVuyUAZ+VeQ7gGXQBCxPF6nAlnBIsYak+KV/s1HtaUuySVMiwIDAQAB"
  • dkim — название селектора, p=MIGfMA0GCSqG... — открытый ключ.

Настройка OpenDKIM и Postfix

Открываем конфигурационный файл opendkim.conf:

nano /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:10021@localhost

Все параметры можно оставить как есть, порт Socket можно изменить.

Создаём файл доверенных узлов:

nano /etc/opendkim/TrustedHosts

Добавляем:

127.0.0.1
localhost
*.testing.ru
  • testing.ru — ваш почтовый домен.

Создаём KeyTable:

nano /etc/opendkim/KeyTable

Пример записи:

dkim._domainkey.testing.ru testing.ru:dkim:/etc/opendkim/dkim.private

Создаём SigningTable:

nano /etc/opendkim/SigningTable

Пример записи:

*@testing.ru dkim._domainkey.testing.ru

Запускаем службу OpenDKIM:

service opendkim start

Открываем конфигурационный файл Postfix:

nano /etc/postfix/main.cf

Добавляем или редактируем:

milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:localhost:10021
non_smtpd_milters = inet:localhost:10021
  • Если smtpd_milters и non_smtpd_milters уже присутствуют, дописываем новые значения.
  • Порт 10021 должен соответствовать настройке в opendkim.conf.

Перезапускаем Postfix:

service postfix restart

Отправляем тестовое письмо на разные почтовые сервисы — mail.ru, gmail.com, yandex.ru.

В заголовках письма ищем строку:

dkim=pass header.d=testing.ru

Она подтверждает, что DKIM настроен корректно.

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам