请不要在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,
我想评论你的帖子,并提出以下意见:
-
[一些] 邮件服务器确实配置了IP地址。 不,这是DNS负责人在此错误操作。
-
鉴于(1.)这仅适用于IPv4地址,因为它们遵守与域名相同的语法(点分十进制)。 带有冒号的IPv6地址具有不同的语法。
-
发布DNS记录通常需要在填充DNS内容服务器的数据库之前解析DATA部分。对于软件来说,在插入之前识别和检查IPv4地址是一个简单的任务(当然要避免它们)。
-
你应该责怪这些软件;错误是人为的。软件应该验证输入。
-
设置MX记录需要提供 a) 域名 b) 权重 c) 负责的MX服务器(通过名称给出) d) 相应的A/AAAA地址。
-
给定一个正常运行的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实际上需要为该主机名拥有有效的证书。