转发确认反向dns(fcrdns)只查找IP到主机名,然后主机名到IP还是比较,以及第一个主机名(以及特别是在垃圾邮件过滤)?
假设我有这些logging:
MTA会尝试validation主机的RDNS并将mail.mailserverdomain
parsing为127.0.0.1
,然后将127.0.0.1
反转为mail.mailserverdomain
,然后将mail.mailserverdomain
转发到127.0.0.1
。 这将是一个有效的FCRDNS或PTRlogging是否需要指向HELO
命令中给出的名称(邮件服务器如何标识自己)?
问题归结为这样一个问题,如果FCRNDS使用两个或三个查询,那么序列是:
HELO mail.senderdomain
mail.senderdomain
parsing为IP。 hostname.senderdomain
FAIL: hostname.senderdomain != mail.senderdomain
要么
HELO mail.senderdomain
mail.senderdomain
parsing为IP hostname.senderdomain
hostname.senderdomain
parsing为相同的IP SUCCESS: hostname.senderdomain
匹配连接的ip,反之亦然。
作为一个有用的检查需要确认的HELO
主机名对IP(否则我的邮件服务器可以声称在HELO是谷歌),将有一个正向查找,这是比较连接IP。 然后下一步是反向查找,给出连接ip的主机名。 现在较短的序列会比较主机名,而较长的序列会进行另一次正向查找并比较ips。
如果使用第一个序列,这意味着在mailserverconfiguration中使用function主机名(例如mail.domain
,而在使用主机名(在server123.domain
rDNS中标识主机)将使您的邮件被标记为可能的垃圾邮件。
其实也不是。
FCRDNS代表“转发确认反向DNS” 。
这是如何工作的,首先,查看连接IP地址的PTRlogging。 如果没有PTRlogging,则检查立即失败。 具有此function的邮件服务器将拒绝该连接,例如从我自己的邮件服务器收到的拒绝邮件:
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没有PTRlogging,反向DNS检查失败。
第二步是获取返回的主机名,并查找其IP地址。 该IP地址必须与连接到服务器的IP地址相匹配。 这是前进证实的手段。 如果没有,那么我们再次拒绝连接。 (很less有人能够certificate,在上周的日志中,我甚至没有例子)。