настройка OPENDKIM + Postfix
установку пакетов не буду описывать, так как она везде по разному происходит, в разных дистрибутивах
перво на перво сгенерировать ключ
opendkim-genkey -D /etc/opendkim/domen.ru/ -d domen.ru -s mail
-D путь до директории, где будут лежать файлы, в этой папке появятся два файла
mail.txt и
mail.private-d домен которому будет присвоен ключ
-s селектор по которому определяет opendkim ключ к домену (может быть несколько ключей для одного домена, с разными селекторами) у нас он
mailне забываем создать группу и пользователя от которого будет работать opendkim
этот пользователь
обязательно должен входить в группу под которой работает Postfix
присваиваем права на пользователя opendkim на все содержимое в папке с ключами
chown opendkim +R /etc/opendkim/domen.ru/
chmod g+rw +R /etc/opendkim/domen.ru/
обязательно права 600 (rw - только чтение и запись для данного пользователя)
в файле /etc/opendkim/domen.ru/mail.txt будет лежать инструкция для записи DNS открытого ключа
mail._domainkey IN TXT "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GxADCBiQKBgQC8I9NvOnKV6mcliCyG8qrGsRxgBkaXULrNC4uXe+4s7p+RQimwKeqioLMEpYPp3sRIqFEGYJeqwWEL/BUYedsysCk1wkp4aiRo+hs9aoGlzH0EjXPPM6xvVPPoaOen9Tgdk9As1eDqBVEkxIyM4WOCs5V9bkQYhlCYYk013VNuPwIDAaA"
его надо прописать на регистраторе домена
создать TXT запись вида селектор._domainkey.domen.ru
mail._domainkey для вашего домена domen.ru
в саму запись добавить v=DKIM1; k=rsa; t=s; p=открытый_ключ_из_файла_/etc/opendkim/domen.ru/mail.txt
TXT запись для DKIM можно проверить на сайте
https://dkimcore.org/c/keycheck
далее настраиваем сам OPENDKIM
основные файлы для конфигурации
opendkim.conf - конфиг файл
KeyTable - таблица ссылками на ключи
SigningTable - таблица правил для подписи
TrustedHosts - доверенные хосты для подписи
KeyTable
домен домен:селектор:/путь/до/фай/ла
domen.ru domen.ru:mail:/etc/opendkim/domen.ru.ru/mail.private
domen2.ru domen2.ru:mail:/etc/opendkim/domen2.ru.ru/mail.private
SigningTable
подписываемые_письма@домена.ru кто_подписывает.ru
*@domen.ru domen.ru
*@domen2.ru domen.ru
в этом случае domen2.ru подписывается от имени domen.ru
TrustedHosts
127.0.0.1
localhost
*.domen.ru
*.domen2.ru
domen.ru
domen2.ru
все кого разрешить подписать
opendkim.conf
#автоперезапуск процесса#
AutoRestart Yes
#максимальное колличество / час#
AutoRestartRate 10/1h
#маска допустимых пользователей#
Umask 002
#журнал логов в maillog#
Syslog yes
#доступ к логам#
SyslogSuccess Yes
#правка хеддера письма#
X-Header yes
#проверка заголовков и ключей#
Canonicalization relaxed/simple
#игнорировать подписи от доменов "чтобы свои домены лишний раз не проверять"#
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
#доверенные домены и хосты для подписи#
InternalHosts refile:/etc/opendkim/TrustedHosts
#таблица ссылками на ключи#
KeyTable /etc/opendkim/KeyTable
#таблица правил для подписи#
SigningTable refile:/etc/opendkim/SigningTable
#Допустимые режимы: s (подписавшая сторона)#
# v (проверяющая сторона) #
#Когда включен режим подписи обязательны включить KeyTable-без селектора; SigningTable - без домена #
Mode sv
#расположение pid файла#
PidFile /var/run/opendkim/opendkim.pid
#кодировка и длина ключа (ранее мы ее не указывали, по умолчанию #
#она такая, некоторые регистраторы длину ключа (в записи TXT) #
#не принимают больше 1024, мне хватает 256 :) )#
SignatureAlgorithm rsa-sha256
#пользователь от кого запускается opendkim#
UserID opendkim:opendkim
#место взаимодействия с opendkim (можно через сокет, кому портов не хватает :), здесь через порт)#
Socket inet:12301@localhost
#куда писать информацию о ключах#
OversignHeaders From
#добавление в заголовок записи "Authentication-Results" даже если нету подписи домена #
AlwaysAddARHeader Yes
#Набор доменов, чья почта должна быть подписана этим фильтром *=все#
Domain *
#подпись субдоменов#
SubDomains Yes
#удалять все записи Authentication-Results, чтобы не плодить Authentication-Results#
RemoveARAll Yes
#Удаляет все существующие подписи при работе в режиме подписи. при пересылке писем, чтобы не плодить записи Dkim-Signature#
RemoveOldSignatures Yes
#рассылка отчетов по доменам, если что-то не правильно настроено#
SendReports Yes