Debian

OpenDKIM 未簽署外發郵件

  • March 23, 2017

我正在嘗試在執行 Debian 和 Postfix 的郵件伺服器上設置 OpenDKIM。這是我所做的配置:

  • 生成了兩個密鑰(對於我需要發送郵件的兩個域)
  • 配置 KeyTable、SigningTable 和 TrustedHosts 文件:

鍵表

mail._domainkey.domain1.com domain1.com:mail:/etc/opendkim/keys/domain1.com/mail.private
mail._domainkey.domain2.com domain2.com:mail:/etc/opendkim/keys/domain2.com/mail.private

簽名表

*.domain1.com mail._domainkey.domain1.com
*.domain2.com mail._domainkey.domain2.com

受信任的主機

127.0.0.1
::1
localhost

我的opendkim.conf閱讀:

# This is a basic configuration that can easily be adapted to suit a standard
# installation. For more advanced options, see opendkim.conf(5) and/or
# /usr/share/doc/opendkim/examples/opendkim.conf.sample.

# Log to syslog
Syslog          yes
# Required to use local socket with MTAs that access the socket as a non-
# privileged user (e.g. Postfix)
UMask           002
LogWhy          yes

OversignHeaders     From

TrustAnchorFile       /usr/share/dns/root.key

KeyTable           /etc/opendkim/KeyTable
SigningTable       refile:/etc/opendkim/SigningTable
ExternalIgnoreList /etc/opendkim/TrustedHosts
InternalHosts      /etc/opendkim/TrustedHosts

最後,我使用 milter 套接字將它連接到 Postfix:

後綴 main.cf

# Milters
smtpd_milters =
   unix:/opendkim/opendkim.sock,
   unix:/clamav/clamav-milter.ctl,
   unix:/spamass/spamass.sock

non_smtpd_milters = unix:/opendkim/opendkim.sock

在這種目前狀態下,OpenDKIM 確實正確驗證了傳入郵件的簽名,但由於某種原因它不會對傳出郵件進行簽名。mail.log這是在嘗試發送消息時登錄的:

Nov  8 16:35:02 illium opendkim[30142]: 826DF501F39: %clienthostname% %clientip% not internal
Nov  8 16:35:02 illium opendkim[30142]: 826DF501F39: not authenticated
Nov  8 16:35:02 illium opendkim[30142]: 826DF501F39: no signature data

我認為這not authenticated部分是不正確的,因為郵件是使用經過身份驗證的 SMTP 從客戶端送出到 Postfix 的。

問題是由兩件事引起的:

  1. opendkim.conf聲明中的評論相反,這不是mode = sv預設值。我必須明確設置它。
  2. 我在我的 SigningTable 中犯了一個錯誤:*.domain1.com應該是*@domain1.com.

更正這兩點後,它現在可以正常工作了。

引用自:https://serverfault.com/questions/734792