На просторах интернета много мануалов в которых рассказывается как настроить эту связку, но лично мне, при всем этом количестве мануалов понадобилось целые сутки, на то что бы заставить работать эту связку с несколькими доменами одновременно.
Результат работы – подписывание одним ключем нескольких доменов, а так же каждому домену свой ключ.
Начну с конца Я целые сутки провел в поисках решения проблем:
Проблема №1 – ошибка “error loading key”
error loading key `default._domainkey.beut.ru'
milter-reject: END-OF-MESSAGE from localhost[127.0.0.1]:
Проблема №2 — no signing table match for
Jul 15 13:54:53 web opendkim[12608]: EB8B86642F2: no signature data
*@domain1.com default._domainkey.mydomain.com
domain1.com default._domainkey.mydomain.com
SigningTable /etc/dkim/SigningTable
refile:SigningTable /etc/dkim/SigningTable
Проблема №3 – Как подписать одним ключем несколько доменов, и как сделать каждому домену свой ключ?
Оказывается можно делать и так и так 🙂
И вот пример конфигов:
/etc/opendkim/KeyTable
default._domainkey.beut.ru beut.ru:default:/etc/opendkim/beut.ru/default.private #default._domainkey.babyboo.ru babyboo.ru:default:/etc/opendkim/babyboo.ru/default.private default._domainkey.idecorator.ru idecorator.ru:default:/etc/opendkim/idecorator.ru/default.private
/etc/opendkim/SigningTable
beut.ru default._domainkey.beut.ru babyboo.ru default._domainkey.beut.ru idecorator.ru default._domainkey.idecorator.ru
С таким вариантом конфигов результат становится вот такой:
Это основной домен сервера, много конфигов в интернете где вообще описан вариант только одного домена – но на практике это скорее редкость чем правило 🙂 Поэтому если у вас доменов много, и вас не заботит что везде будет светиться адрес основного верера, то остальные домены можно подписывать ключем от первого домена.
Однако, если вы хотите разделить все домены друг от друга, и сделать индивидуальные подписи, тогда настраивайте как idecorator.ru.
А вот и основной конфиг:
# OpenDKIM Configuration File
# /etc/opendkim.conf
# Enable Logging
Syslog yes
SyslogSuccess yes
LogWhy yes
# User mask
UMask 002
# Always oversign From (sign using actual From and a null From to prevent
# Оставьте “refile:” именно так, только для файла с хостами
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts InternalHosts refile:/etc/opendkim/TrustedHosts SigningTable /etc/opendkim/SigningTable KeyTable /etc/opendkim/KeyTable
# Если нужно только для одного домена вместо дериктив SigningTable и KeyTable вставьте эти строки: #KeyFile /etc/opendkim/beut.ru/default #Selector default
#Не знаю, что но пусть будет:) X-Header yes RemoveOldSignatures yes ReportAddress [email protected] SendReports yes # Hashing Algorithm SignatureAlgorithm rsa-sha256
# Set the user and group to opendkim user UserID opendkim:opendkim # Specify the working socket (I've found 8891/tcp is widely preferred) Socket inet:[email protected]
127.0.0.1 localhost
opendkim-genkey -D /etc/opendkim/beut.ru/ –d beut.ru -s default
chown -R opendkim:opendkim /etc/opendkim/beut.ru
Не забудьте про пава на папку: beut.ru и файл default.private
# DK and DKIM smtpd_milters = inet:localhost:8891 non_smtpd_milters = inet:localhost:8891 milter_protocol = 2 milter_default_action = accept
SOCKET="inet:[email protected]" # listen on loopback on port 12345
Проверять правильность настройки DKIP легко, просто отправьте письмо на адрес [email protected] и ждите ответа с резултатом, подробнее тут: http://www.port25.com/support/authentication-center/email-verification/
Для подготовки материала испольовались статьи:
==============================
Summary of Results
==============================
SPF check: pass
DomainKeys check: neutral
DKIM check: pass
Sender-ID check: pass
SpamAssassin check: ham
Так что в переди настройка DomainKeys 🙂
Статью подготовил Лобачев Виталий, постоянная ссылка статьи:
А можно ли настроить подписание для postfix multi instance, то есть для разных инстанцев постфикса. Например, для первого инстанца таблица
/etc/opendkim/SigningTable
будет такая:
beut.ru default._domainkey.beut.ru
sity.ru default._domainkey.sity.ru
* default._domainkey.beut.ru
а для второго инстанца, такая:
other-beut.ru default._domainkey.other-beut.ru
other-sity.ru default._domainkey.other-sity.ru
* default._domainkey.other-beut.ru
>>> тогда настраивайте как idecorator.ru.
Что это значит? Он вроде везде настроен также как и предыдущих 2 домена. Укажите пожалуйста в чем именно тут отличие? Заранее спасибо.
Дмитрий: внимательно посмотрите на записи:
beut.ru default._domainkey.beut.ru
babyboo.ru default._domainkey.beut.ru
idecorator.ru default._domainkey.idecorator.ru
Первые две записи babyboo.ru и beut.ru подписываются от домена beut.ru, а idecorator.ru подписывается своим же доменом idecorator.ru.
т.е отправлено письмо например от [email protected], а подпись DKIM от beut.ru.
на скришетах внительно посмотрите с какого адреса отправлено письмо, и какой подписью подписано.
А Вы не подскажете, с чем у меня проблема?
Я задал вопрос вот тут http://hashcode.ru/questions/388126/ubuntu-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-opendkim-%D0%B4%D0%BB%D1%8F-%D0%BD%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%B8%D1%85-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2
Может быть Вы знаете в чем причина?
Разобрался сам. Спасибо за статью. Ответ опубликовал там же на хэшкоде.