У нас есть работающий сервер postfix с несколькими экземплярами multi instanceна Ubuntu 20.04 LTS, задача — настроить DKIM.
Ссылки
Установим и настроим opendkim
apt-get install opendkim opendkim-tools
Создаём каталог для ключей и сгенерируем ключ (пока для одного домена):
mkdir /etc/opendkim
chown opendkim:opendkim /etc/opendkim
opendkim-genkey -D /etc/opendkim/ --domain mydomain.ru --selector myselector
Где mydomain.ru - ваш домен, myselector - ваш селектор который вы выберете.
Появится два файла /etc/opendkim/myselector.private и /etc/opendkim/myselector.txt с секретным и публичным ключами. Публичный ключ нужно добавить в соответствующую TXT запись вашего домена:
myselector._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQK........DAQAB"
Настраиваем /etc/opendkim.conf:
Syslog No
Mode sv
Socket inet:8891@localhost
InternalHosts refile:/etc/opendkim/TrustedHosts
KeyTable refile:/etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
Создаём файл /etc/opendkim/TrustedHosts:
127.0.0.1
localhost
10.10.0.0/16
10.11.0.0/16
Здесь те же сети, что и в файле настроек /etc/postfix/main.cf в пункте mynetworks.
Создаём файл /etc/opendkim/KeyTable:
myselector._domainkey.mydomain.ru mydomain.ru:myselector:/etc/opendkim/myselector.private
Создаём файл /etc/opendkim/SigningTable:
*@mydomain.ru myselector._domainkey.mydomain.ru
Задаем группу владельца opendkim для созданных ключей и файлов:
chown :opendkim /etc/opendkim/*
Устанавливаем права на секретный ключ:
chmod 640 /etc/opendkim/myselector.private
Перезапускаем opendkim:
service opendkim restart
Настроим postfix
Всем экземплярам postfix добавляем настройку:
milter_protocol = 2
milter_default_action = accept
smtpd_milters = inet:127.0.0.1:8891
non_smtpd_milters = inet:127.0.0.1:8891
Примечание: inet:localhost:8891 по непонятной для меня причине работать для multi instance не хочет.
Перезапускаем postfix:
service postfix restart
Теперь все экземпляры postfix должны отправлять почту с DKIM.