Sol*_*rac 3 domain-name-system dkim opendkim
场景:
我有几台电子邮件服务器在防火墙后面的 Debian 上运行,有一个公共 IP,并且我已经正确设置了我的 DNS 记录(MCX、DMARC、DKIM、SPF)。
这是我的 DNS 记录示例(由 dig 命令输出):
DKIM
customselector._domainkey.domain.com. 3600 IN TXT "v=DKIM1\; h=rsa-sha256\; k=rsa\; s=email\; " "p=MII...
SPF:
domain.com. 3599 IN TXT "v=spf1 mx -all"
MX:
domain.com. 3599 IN MX 1 mailsystem.domain.com.
DMARC:
_dmarc.domain.com. 3599 IN TXT "v=DMARC1\;p=quarantine\;sp=reject\;rua=mailto:dmarc@domain.com\; ruf=mailto:dmarc@domain.com\; fo=1\; adkim=r\; aspf=r\; pct=100\; rf=afrf\; ri=86400"
Run Code Online (Sandbox Code Playgroud)
尝试了几个公共测试系统,我的整个设置得到了 100% 的验证。但是后来我开始收到这些奇怪的报告,显示有很多来自我的公共 IP 的不良电子邮件以及一些电子邮件得到了相同域的完美验证。下一个片段来自谷歌报告:
<record>
<row>
<source_ip>0.0.0.0</source_ip>
<count>6</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>domain.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>domain.com</domain>
<result>pass</result>
<selector>customselector</selector>
</dkim>
<spf>
<domain>domain.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
<row>
<source_ip>0.0.0.0</source_ip>
<count>16</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>fail</dkim>
<spf>pass</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>domain.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>domain.com</domain>
<result>fail</result>
<selector>customselector</selector>
</dkim>
<spf>
<domain>domain.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
<record>
Run Code Online (Sandbox Code Playgroud)
我收到了 6 封好邮件 VS 16 封坏邮件,它们几乎都具有相同的内容。
测试:
配置:
我正在使用 opendkim,这是我认为相关的:
Canonicalization relaxed/relaxed
Mode sv
SubDomains yes
Run Code Online (Sandbox Code Playgroud)
虽然我的 DKIM 记录是“有效的”,但一些验证器不会接受h=rsa-sha256;DNS 记录中的参数,并且会将 DKIM 签名呈现为无效。我想象谷歌在他们的邮件服务器中使用了一些不同的 linux 发行版和不同的验证器。
要解决此问题,只需删除 DKIM 记录上的该参数,它应如下所示:
v=DKIM1; k=rsa; s=email; p=MI...
Run Code Online (Sandbox Code Playgroud)
在此之后,每封电子邮件都将得到正确验证。
我在做一些研究时浏览了http://dkimvalidator.com,它是唯一产生相当混乱信息的工具:
result = invalid
Details: public key: does not support hash algorithm 'sha256'
Run Code Online (Sandbox Code Playgroud)
令人惊讶的是,这个错误似乎不寻常,但是当您使用 opendkim 生成密钥时,您可能会发现自己在做这样的事情:
opendkim-genkey -b 2048 -h rsa-sha256 -r -s customselector -d domain.com -v
Run Code Online (Sandbox Code Playgroud)
将错误的参数写入txt输出文件,导致 DKIM 记录无效。
| 归档时间: |
|
| 查看次数: |
3196 次 |
| 最近记录: |