FCRDNS 是否需要 RDNS 与第一个前向查询具有相同的主机名?

FCRDNS 是否需要 RDNS 与第一个前向查询具有相同的主机名?

正向确认的反向 DNS (fcrdns) 是否仅查找 IP 到主机名,然后查找主机名到 IP,还是也与第一个主机名进行比较(特别是在垃圾邮件过滤中)?

假设我有这些记录:

  • reverse.somedomain:127.0.0.1
  • mail.somedomain:127.0.0.1
  • mail.mailserverdomain:127.0.0.1
  • PTR 127.0.0.1:reverse.somedomain

MTA 尝试验证主机的 RDNS 并解析mail.mailserverdomain127.0.0.1,然后反向解析127.0.0.1reverse.somedomain,然后转发reverse.somedomain127.0.0.1。这会是有效的 FCRDNS 吗?还是 PTR 记录需要指向HELO命令中给出的名称(邮件服务器如何识别自身)?

问题归结为,如果 FCRNDS 使用两个或三个查询,那么序列要么是:

  • 得到HELO mail.senderdomain
  • 解析mail.senderdomain到IP。
  • 解决连接 IP 到hostname.senderdomain

失败:hostname.senderdomain != mail.senderdomain

或者

  • 得到HELO mail.senderdomain
  • 解析mail.senderdomainIP
  • 解析 IP 至hostname.senderdomain
  • 解析hostname.senderdomain到同一个IP

成功:hostname.senderdomain匹配连接 IP,反之亦然。

由于实用检查需要根据 IP 确认HELO主机名(否则我的邮件服务器可能会在 HELO 中声称是 Google),因此将进行正向查找,将其与连接 IP 进行比较。然后下一步是反向查找,给出连接 IP 的主机名。现在,较短的序列将比较主机名,而较长的序列将进行另一次正向查找并比较 IP。

如果使用第一个序列,这意味着,使用像mail.domain邮件服务器配置中的功能性主机名,同时使用像在 rDNS 中标识主机的主机名,server123.domain会使您的邮件被标记为可能的垃圾邮件。

答案1

事实上都不是。

FCRDNS 代表“正向确认反向 DNS”

它的工作原理是,首先,查找连接 IP 地址的 PTR 记录。如果没有 PTR 记录,则检查立即失败。启用此功能的邮件服务器将拒绝连接,例如从我自己的邮件服务器中截取的这个拒绝:

Sep 18 02:48:10 grummle postfix/smtpd[16577]: NOQUEUE: reject: RCPT from unknown[204.51.178.49]: 450 4.7.1 Client host rejected: cannot find your hostname, [204.51.178.49]; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<smtp49.rsend1.com>

由于 204.51.178.49 没有 PTR 记录,因此反向 DNS 检查失败。

第二步是获取返回的主机名,并查找其 IP 地址。该 IP 地址必须与连接到服务器的 IP 地址匹配。这就是转发确认的意思。如果不匹配,我们再次拒绝连接。(很少有人能做到这一点,以至于我在上周的日志中甚至没有一个例子。)

相关内容