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 настроен корректно.