OpenDKIM 未签署来自 host10.example.com 的电子邮件

OpenDKIM 未签署来自 host10.example.com 的电子邮件

我有一个名为的服务器,host10.example.com它仅通过命令向我本人发送管理电子邮件mailx。这些外发电子邮件需要由 OpenDKIM 签名。我尝试了几个小时的多种配置,但 OpenDKIM 从未签名任何东西。每 10 次左右,OpenDKIM 会将标题行添加到电子邮件中,但从未签名任何内容。

host10我已在 DNS 区域中添加了选择器,example.com并带有有效的公钥。私钥由

# opendkim-genkey -b 4096 -d example.com -s host10 -D /etc/opendkim/keys/

并驻留在 中/etc/opendkim/keys/host10.private。以下组可读取它opendkim

# ls -ld /etc/opendkim /etc/opendkim/* /etc/opendkim/keys/*
drwxr-xr-x. 3 root opendkim 4096 Dec 10 16:43 /etc/opendkim
lrwxrwxrwx. 1 root root       20 Dec  9 12:24 /etc/opendkim/default.private -> keys/host10.private
lrwxrwxrwx. 1 root root       16 Dec  9 12:24 /etc/opendkim/default.txt -> keys/host10.txt
drwxr-x---. 2 root opendkim 4096 Dec 10 01:47 /etc/opendkim/keys
-rw-r-----. 1 root opendkim 3247 Dec  9 12:23 /etc/opendkim/keys/host10.private
-rw-r-----. 1 root opendkim  850 Dec  9 12:23 /etc/opendkim/keys/host10.txt
-rw-r-----. 1 root opendkim  630 Dec 10 16:27 /etc/opendkim/KeyTable
-rw-r-----. 1 root opendkim 1484 Dec 10 16:43 /etc/opendkim/SigningTable
-rw-r-----. 1 root opendkim  480 Dec 10 14:48 /etc/opendkim/TrustedHosts

当前配置(注释掉了之前试验中的文物):

1. Postfix

已将其添加到/etc/postfix/main.cf

# DKIM signing by opendkim via milter
milter_protocol = 6
milter_default_action = accept
smtpd_milters = inet:localhost:8891
non_smtpd_milters = $smtpd_milters

2. OpenDKIM

主要配置/etc/opendkim.conf

## BASIC OPENDKIM CONFIGURATION FILE
## See opendkim.conf(5) or /usr/share/doc/opendkim/opendkim.conf.sample for more

PidFile /var/run/opendkim/opendkim.pid
Mode    v
Syslog  yes
SyslogSuccess   yes
LogWhy  yes
UserID  opendkim:opendkim
Socket  inet:8891@localhost
Umask   002
SendReports no
SoftwareHeader  yes
Canonicalization    relaxed/relaxed
Selector    host10
MinimumKeyBits  1024
KeyFile /etc/opendkim/keys/host10.private
KeyTable    refile:/etc/opendkim/KeyTable
SigningTable    refile:/etc/opendkim/SigningTable
OversignHeaders From
QueryCache  yes

这是/etc/opendkim/SigningTable

# OPENDKIM SIGNING TABLE

* host10._domainkey.example.com 
*@host10.example.com host10._domainkey.example.com 
*@example.com host10._domainkey.example.com 

example.com host10._domainkey.example.com  
host10.example.com host10._domainkey.example.com  

这是/etc/opendkim/KeyTable

# OPENDKIM KEY TABLE

# host10._domainkey.example.com host10.example.com:host10:/etc/opendkim/keys/host10.private
host10._domainkey.example.com example.com:host10:/etc/opendkim/keys/host10.private
# host10._domainkey.example.com example.com:host10:/etc/opendkim/keys/host10.private

测试

邮件发送如下:

# echo Thanks | mailx -s Test [email protected]

发送邮件,[email protected]我也测试了

# echo Thanks | mailx -s Test -r [email protected] [email protected]

答案1

主要是这一行阻止了OpenDKIM签署发出的电子邮件:

主要配置/etc/opendkim.conf

Mode    v

我的系统上的这个默认设置意味着 OpenDKIM 将“v” - “验证”电子邮件但不会签名。

为了签署发出的电子邮件,需要将该行更改为

Mode     s

或者同时签署发出的电子邮件和验证收到的电子邮件(在我的用例中不是这样)

Mode     sv

我之前在示例中看到过“v”和“sv”,但由于这些是没有上下文的神秘字母,我没有将其与签名是/否和验证是/否联系起来。因此,这可能不是一个非常直观的配置文件设计,特别是因为其他选项确实具有有意义的名称和值。花了我很多时间。希望这至少能帮助别人。

相关内容