避免在DNS MX记录中直接使用IP地址的常见错误配置

本文讨论了在DNS MX记录中错误配置IP地址而非域名的常见问题,解释了其对邮件投递的影响,并提供了检查和修复建议,包括使用Python脚本进行验证。

请不要在DNS MX记录中使用IP地址

我想强调电子邮件服务器DNS记录中的一个常见错误配置。

当配置一个域以接收邮件时,通常配置一个类型为MX的DNS记录,指向邮件服务器的主机名。

值得注意的是,根据相应的RFC 1035,MX记录必须包含一个域名,不能直接指向IP地址。然而,一些邮件服务器确实配置了IP地址。许多邮件服务器对这种错误配置比较宽容,仍然会投递邮件,因此这可能未被发现。

我碰巧使用了一个不太宽容的邮件服务器(Courier),时不时地由于这个原因无法发送邮件。这种情况很少见,但确实会发生。如果你的邮件服务器有这种配置,你可能无法收到一些合法的电子邮件。

因此,我希望提高一些意识,并修复其中一些服务器。

显然,如果你运行邮件和DNS服务器,请不要这样做,并正确设置你的MX记录。如果你从事任何与邮件和DNS服务器相关的IT服务或咨询,这是一个很好的添加到定期检查列表中的事项(这里有一个非常简单的Python脚本可以使用)。如果你运行任何检查DNS和邮件服务器错误配置的服务或工具,请添加对MX记录中IP地址的检查,并警告你的用户。不幸的是,目前只有少数服务这样做(感谢Hardenize和IntoDNS会警告用户这一点),而一些流行的服务没有。

我快速扫描了Alexa Top 100万列表。目前大约有0.06%的域受到影响(如果你碰巧知道负责此列表中某个主机的人,请考虑将他们指向这篇博客文章)。我希望通过写这篇文章可以减少这个数字,我可能稍后会尝试通过他们的postmaster别名联系他们。

(图片来源:nohat.cc / CC0)

评论

#1 Erwin Hoffmann (主页) 于 2021-02-21 22:46 (回复)

亲爱的Hanno,

我想评论你的帖子,并提出以下意见:

  1. [一些] 邮件服务器确实配置了IP地址。 不,这是DNS负责人在此错误操作。

  2. 鉴于(1.)这仅适用于IPv4地址,因为它们遵守与域名相同的语法(点分十进制)。 带有冒号的IPv6地址具有不同的语法。

  3. 发布DNS记录通常需要在填充DNS内容服务器的数据库之前解析DATA部分。对于软件来说,在插入之前识别和检查IPv4地址是一个简单的任务(当然要避免它们)。

  4. 你应该责怪这些软件;错误是人为的。软件应该验证输入。

  5. 设置MX记录需要提供 a) 域名 b) 权重 c) 负责的MX服务器(通过名称给出) d) 相应的A/AAAA地址。

  6. 给定一个正常运行的MX服务器 a) 反向DNS条目(in-addr.arpa, ip6.arpa), b) SPF记录, c) TLSA记录, d) 以及其他域验证材料 需要发布。

在当前的互联网中,这远不止设置一个MX。

问候。 –eh.

#2 Spongebob 于 2021-02-21 22:58 (回复)

MX记录的名称在使用DKIM DMARC时也作为SSL证书中的密钥。因此,如果你在这里使用IP地址,你将无法设置DKIM/DMARC。

#2.1 Hanno (主页) 于 2021-02-22 08:38 (回复)

这与DKIM/DMARC无关。也许你指的是mta-sts,其中mx实际上需要为该主机名拥有有效的证书。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计