如何在单个服务器上使用具有多个域名的 OpenDKIM?
我拥有 3 个域名,并且我有一台运行 postfix 的服务器来发送电子邮件。如何使用 OpenDKIM?
我可以对所有 3 个域名使用相同的密钥文件吗?我是否必须为每个域名创建一个 TXT 记录?
该M³WAAGDKIM密钥轮换最佳实践文档(PDF)推荐了一个“足够”随机DKIM选择名称,以便它无法通过浏览DNS猜测。文字引述:
4.3 键选择器命名方案
为 DKIM 密钥选择器定义一个命名方案,该方案既对取证分析有意义,又足够随机,因此无法通过浏览 DNS 轻易猜出密钥。
注意:选择器命名方案还应设计为降低攻击者可以轻松预测未来选择器的名称并检索相关键的风险。有关发布密钥以供将来使用的过程的描述,请参阅第 5 节
这可能与较短的 512 位 RSA 密钥有关,但对我来说似乎没有意义,例如 2048 位的 RSA 密钥。DNS 持有非秘密的公钥,只需阅读一封签名邮件即可发现。默默无闻的安全性和很少的安全性?
为什么随机 DKIM 选择器名称会更好,什么时候遵循他们的建议才有意义?
以下是我最近收到的一封电子邮件:
Authentication-Results: mx.google.com;
spf=neutral;
dkim=pass header.i=@yahoo.com;
dmarc=pass (p=REJECT dis=NONE) header.from=yahoo.com
Run Code Online (Sandbox Code Playgroud)
我一直在阅读有关 SPF、DKIM 和 DMARC 的文章,但我没有找到有关 dis=NONE 含义的任何解释。“dis”未在DMARC 标签注册表中列出,那么它是在哪里定义的,它是什么意思?
对于组织,我们将 _domainkey.domain.com 设置为单独的区域,而不是在我们的根域区域 domain.com 上创建所有 DKIM 记录。
因此,_domainkey.domain.com 和 domain.com 的名称服务器是不同的。
这是可以接受的吗?
许多 ESP 正在正确验证我们的 DKIM 设置。一个主要的 ESP 没有进行验证,他们说这是因为 _domainkey.domain.com 和 domain.com 的名称服务器必须相同,以便邮件提供商通过 DKIM 身份验证。然而,当我们向 Gmail 发送测试时,它确实通过了 DKIM。
这家公司有错吗?或者您可以将两者托管在不同的名称服务器上吗?
几个月前,我为我的三人公司实施了 SPF/DKIM/DMARC。试用期过后,我将我们的 DMARC 切换为“p=reject”,这样如果电子邮件未通过 SPF/DKIM,就会被拒绝。一般来说,它是有效的:我们的电子邮件通过,并且根据来自 DMARC 报告的数据,试图伪造来自我们域的垃圾邮件发送者的电子邮件被拒绝。服务器是 Ubuntu/Postfix。
行不通的一件事是,对于日历,我们一直将 Google 日历与 Google 帐户与我们的工作电子邮件(使用我们的公司域;而不是 gmail 地址)一起使用。当我们中的一个人使用 Google Apps 托管的电子邮件地址创建 Google 日历邀请(在 Google 网站上,或通过 Thunderbird/Lightning with Provider for Google Calendar)时,Google 会拒绝我们的邀请电子邮件。来自 Google 代表 Google-Apps 托管域的退回消息说拒绝是基于我域的 DMARC 政策:
Google 尝试递送您的邮件,但它被 aspmx.l.google.com 的收件人域 [Google Apps Hosted Domain Removed] 的服务器拒绝。另一台服务器返回的错误是:由于域的 DMARC 政策,不接受来自 [My Company's Domain Removed] 的未经身份验证的电子邮件。如果这是一封合法邮件,请联系 [My Company's Domain Removed] 域的管理员。
正下方是 google.com 的(大概)有效的 DKIM 签名。换句话说,谷歌拒绝了自己的 DKIM 签名电子邮件作为垃圾邮件,因为这不是我的 DMARC 政策所说的。但我不知道如何让我的 DMARC 政策另有规定。对于 SPF,我可以将 Google 指定为有效发件人。但是我找不到任何方法来为 DKIM 做到这一点:我可以在我的 DKIM 记录中添加一些内容,上面写着“如果它有一个有效的 Google DKIM 签名,那就不是垃圾邮件。” 这样的事情存在吗?授权“发件人”域以外的其他 DKIM …
我在 Debian sid 上使用 exim 4.82。我已经学习了几个关于如何配置 exim 以签署外发电子邮件的教程,但似乎有些事情没有按照应有的方式进行。
我的诊断是它$sender_address_domain始终设置为服务器的主机名 ( /etc/hostname),无论From:电子邮件消息中的字段是什么。
我在 中定义了以下宏/etc/exim4/conf.d/transport/00_exim4-config_header:
DKIM_CANON = relaxed
DKIM_DOMAIN = ${sender_address_domain}
DKIM_SELECTOR = dkim
DKIM_PRIVATE_KEY = /etc/exim4/dkim.private.key
Run Code Online (Sandbox Code Playgroud)
此当前设置对传出电子邮件进行签名,但 DKIM 签名中的域始终设置为euvps.rolisoft.net,无论From:字段如何。我最好的猜测是$sender_address_domain设置为euvps.rolisoft.net,当它应该设置为From:字段中电子邮件地址的域时。
因此,验证失败并bad version显示以下消息:
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
d=euvps.rolisoft.net; s=dkim; // <- d= should be set to whatever is in From
h=Date:Message-Id:From:Subject:To; bh=...; b=...;
Authentication-Results: mx.google.com;
spf=pass (google.com: domain of root@euvps.rolisoft.net designates 188.226.159.108 as …Run Code Online (Sandbox Code Playgroud) DKIM 记录由其选择器标识,该选择器可能是default,dkim或其他东西(并且可能有多个)。
当确保电子邮件的内容有效时,可以使用电子邮件中提到的 DKIM 选择器进行查找{selectorname}._domainkey.{hostname}(例如:google._domainkey.protodave.com)。
然而,当只是想确保某个域至少设置了一个 DKIM(以确保该域的管理员已尽职尽责)时,我们还没有选择器。
如果没有这个选择器,我们如何查询 DNS?有可能吗?
我有两个后缀,一个用于接收邮件,另一个用于发送邮件,但我在外发邮件上签署 dkim 时遇到问题。我按照这个教程进行了操作。
\n日志也不能帮助我指出主要问题。OpenDKIM 运行良好:
\n\xe2\x97\x8f opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter\n Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)\n Active: active (running) since Fri 2021-06-18 17:39:40 UTC; 4s ago\n Docs: man:opendkim(8)\n man:opendkim.conf(5)\n man:opendkim-genkey(8)\n man:opendkim-genzone(8)\n man:opendkim-testadsp(8)\n man:opendkim-testkey\n http://www.opendkim.org/docs.html\n Process: 246310 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)\n Main PID: 246321 (opendkim)\n Tasks: 7 (limit: 4681)\n Memory: 2.8M\n CGroup: /system.slice/opendkim.service\n \xe2\x94\x9c\xe2\x94\x80246321 /usr/sbin/opendkim -x /etc/opendkim.conf\n \xe2\x94\x94\xe2\x94\x80246322 /usr/sbin/opendkim -x /etc/opendkim.conf\n\nJun 18 17:39:40 testmailcdo systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) …Run Code Online (Sandbox Code Playgroud) 当我在 Microsoft Teams 中编写聊天消息时,当接收者在 Teams 中处于脱机状态时,她会在其 Office 365 帐户 (receiver@htlvb.at) 上收到电子邮件通知。收件人进行设置,以便将她的所有邮件转发到她的个人 Gmail 帐户 (receiver@gmail.com)。对于发送到receiver@htlvb.at 的普通邮件,这按预期工作。但所有 Teams 通知都被标记为垃圾邮件。Google 表示 DMARC 失败(见下文)。
我们有一个自定义 DNS 服务器,其中包含以下 TXT 记录:
Google 显示收到的邮件的以下详细信息:
以及以下消息来源:
Delivered-To: receiver@gmail.com
Received: by 2002:a05:6102:22c6:0:0:0:0 with SMTP id a6csp126141vsh;
Tue, 28 Sep 2021 20:57:32 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzoIoMngWwglBmEptt30Zo9LbSYdi+h60ylB7JYY70zFSXHQNhbDjrM0JhFd+XgdPAeZKJj
X-Received: by 2002:a92:ca4e:: with SMTP id q14mr3941013ilo.233.1632887852170;
Tue, 28 Sep 2021 20:57:32 -0700 (PDT)
ARC-Seal: i=4; a=rsa-sha256; t=1632887852; cv=pass;
d=google.com; s=arc-20160816;
b=uZnSPh2our1xDKqBgznYVmLU4MHkWy+9WfIBcYxGbuAOiHypyYi2pU3yByqTWDxC3m
XD8lQzitQmtWzWPozdJmWv6DFJW5eSVogISaSrA6i8qY2wBhk8ZlukHsKjWLlRTsWD/Q
TJa+99FG/eIio0EDYtVW+2d+WlVN9qMei8Ap/aaA1snA27wHv91lUsAGLNI2kUUvwsMA
omJAMvTBBCgGtEa6V8s4Z7nWhkGGpwwRnxaCefPwqBCZ8QMVy8zYmk/JGTVcSSTSQdQk
bqWRkoJlrscnt3JLAA4WUpYdNcpORAi8WuuoXs+w6uxzNxfg2EpcvNWIOwBFvOm/WVVq
FoUg==
ARC-Message-Signature: i=4; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=message-id:subject:date:to:from:mime-version …Run Code Online (Sandbox Code Playgroud) 我最近收到了来自 Google 的 DMARC 报告,提醒我来自 Amazon SES IP 地址的邮件出现了一些 SPF 故障。示例记录如下(我已将我们的域名替换为 example.com。):
<record>
<row>
<source_ip>54.240.27.187</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
Run Code Online (Sandbox Code Playgroud)
SPF 是否失败,因为该header_from值是example.comSPFdomain值mail.example.com?
我们使用 Amazon WorkMail 和 Amazon SES 发送手动和自动电子邮件。通常From address是webmaster@example.com,我们已将MAIL FROM域设置为mail.example.com。因此,我有点困惑为什么 Google 会将header_from域名报告example.com为mail.example.com. example.com我们为和设定了适当的 SPF 记录mail.example.com …
dkim ×10
dmarc ×4
spf ×4
debian ×1
domain-name ×1
email-server ×1
exim ×1
gmail ×1
google ×1
postfix ×1
sendmail ×1
smtp ×1
txt-record ×1
ubuntu ×1
ubuntu-20.04 ×1