Недавно я перенес сервер с Ubuntu 14.04 на сервер 18.04, но с той же настройкой почты. Я просто скопировал файл main.cf Postfix и содержимое файла / etc / mail / opendkim.
Сервер без проблем отправляет почту на удаленный почтовый узел по локальной сети. Однако opendkim отказывается подписывать электронные письма, как это было раньше.
Мой файл postfix.cf:
myhostname = host.domain.com
myorigin = $mydomain
relayhost = 10.10.10.105
inet_interfaces = loopback-only
mydestination =
milter_default_action = accept
milter_protocol = 6
smtpd_milters = inet:localhost:8892
non_smtpd_milters = inet:localhost:8892
compatibility_level = 2
/etc/opendkim.conf
Syslog yes
UMask 007
Socket inet:8892@localhost
PidFile /var/run/opendkim/opendkim.pid
OversignHeaders From
UserID opendkim
Canonicalization relaxed/simple
KeyTable /etc/mail/opendkim/KeyTable
SigningTable /etc/mail/opendkim/SigningTable
ExternalIgnoreList /etc/mail/opendkim/TrustedHosts
InternalHosts /etc/mail/opendkim/TrustedHosts
Файл TrustedHosts содержит как IP-адрес, так и имя хоста отправляющего компьютера (и имя хоста -f является правильным). Обе машины находятся в одном домене.
Я не вижу ошибок ни в журналах отправителя, ни в журналах удаленного почтового узла. Если я отключу демон opendkim на отправителе, я вижу, как postfix жалуется, что не может подключиться к сокету opendkim.
Я попытался установить для milter_protocol значение 2 (изначально было 6), но это не повлияло.
Глядя на заголовки почты, полученной от зараженного хоста, нет никакого упоминания о dkim.
Добавление LogWhy yes
to to opendkim.conf включает подробное ведение журнала. Это показывает, что для отправляющего хоста (host.domain.com) нет ключа подписи.
SigningTable настроен для подписи писем с определенных доменов, но не с отдельных хозяева на этих доменах. Это правильное поведение.
Отправляющий хост дает полное доменное имя, когда он отправляет почту через ретранслятор (host@host.domain.com). Поэтому мне нужно решить, как заставить хост-отправитель отправлять как host@domain.com, а не host@host.domain.com, чтобы ретранслятор подписывал свою почту от имени домена. Мне не нужно запускать opendkim на отправляющем хосте.
В конфигурации Postfix в Ubuntu 18.04 мне пришлось добавить masquerade_domains = domain.com
в main.cf, тогда как Ubuntu 14.04 в этом не нуждался.