OpenDKIM 未对使用 Ubuntu 18.04 发送到中继主机的邮件进行签名

OpenDKIM 未对使用 Ubuntu 18.04 发送到中继主机的邮件进行签名

我最近将一台服务器从 Ubuntu 14.04 迁移到一台运行 18.04 的服务器,但邮件设置相同。我只是复制了 Postfix 的 main.cf 和 /etc/mail/opendkim 的内容。

服务器通过 LAN 向远程邮件主机发送邮件没有任何问题。但是,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 和主机名(并且 hostname -f 是正确的)。两台机器都位于同一个域中。

我在发件人的日志或远程邮件主机的日志中均未看到任何错误。如果我关闭发件人的 opendkim 守护进程,我会看到 postfix 抱怨它无法连接到 opendkim 套接字。

我尝试将 milter_protocol 设置为 2(原来是 6)但没有效果。

查看从受影响主机收到的邮件标题,没有提及 dkim。

答案1

添加LogWhy yes到 opendkim.conf 可打开详细日志记录。这表明发送主机 (host.domain.com) 没有签名密钥。

SigningTable 设置为对来自特定域的邮件进行签名,但不对单个域的邮件进行签名主办方在这些域上。这是正确的行为。

发送主机在通过中继发送邮件时会提供 FQDN([电子邮件保护])。因此,我需要弄清楚如何让发送主机发送如下信息[电子邮件保护], 不是[电子邮件保护]这样中继将代表域签署其邮件。我不需要在发送主机上运行 opendkim。

使用 Ubuntu 18.04 上的 Postfix 配置,我必须添加masquerade_domains = domain.com到 main.cf,而 Ubuntu 14.04 不需要这样做。

相关内容