为什么当 dig 找到主机时,postfix 会显示“Helo 命令被拒绝:找不到主机”?

为什么当 dig 找到主机时,postfix 会显示“Helo 命令被拒绝:找不到主机”?

Helo command rejected: Host not found;因此,我在 中看到以下错误/var/log/syslog,但当我对相关主机进行正向和反向查找时,DNS 记录似乎合理。相关邮件服务器endor似乎可以正常接收邮件。

为什么 Postfix 会这样说(第二个附加问题,我应该更改什么设置来解决这个问题?

出于隐私原因更改的电子邮件地址:

Jul 20 23:35:20 endor postfix/smtpd[1503]: NOQUEUE: reject: RCPT from
bdmrob01-2.metavante.com[206.71.18.21]: 450 4.7.1
<bdmrob02.metavante.com>: Helo command rejected: Host not found;
from=<[email protected]>
to=<[email protected]> proto=ESMTP
helo=<bdmrob02.metavante.com>

但 DNS 看起来没问题:

endor% dig bdmrob01-2.metavante.com

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> bdmrob01-2.metavante.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32487
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;bdmrob01-2.metavante.com.  IN  A

;; ANSWER SECTION:
bdmrob01-2.metavante.com. 600   IN  A   206.71.18.21

endor% dig -x 206.71.18.21

; <<>> DiG 9.11.3-1ubuntu1.1-Ubuntu <<>> -x 206.71.18.21
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40586
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;21.18.71.206.in-addr.arpa. IN  PTR

;; ANSWER SECTION:
21.18.71.206.in-addr.arpa. 600  IN  PTR bdmrob01-2.metavante.com.

我应该提一下,main.cf 说:

smtpd_helo_restrictions = 
reject_non_fqdn_helo_hostname,reject_invalid_helo_hostname,reject_unknown_helo_hostname

答案1

答案一直就在我们眼前。

Postfix 正在寻找主机向其发出问候的A和记录。或者更准确地说,PTRHELO主持人它在其 HELO 消息中。让我们分解一下:

Jul 20 23:35:20 endor postfix/smtpd[1503]: NOQUEUE: reject: RCPT from
bdmrob01-2.metavante.com[206.71.18.21]:

bdmrob01-2.metavante.com解析 IP 地址的主机名206.71.18.21与您的邮件服务器建立 TCP 连接。

因此,您检查了 IP 地址是否有 A 记录:

endor% dig bdmrob01-2.metavante.com
[...]
;; ANSWER SECTION:
bdmrob01-2.metavante.com. 600   IN  A   206.71.18.21

然后你检查了 PTR 记录:

endor% dig -x 206.71.18.21
;; ANSWER SECTION:
21.18.71.206.in-addr.arpa. 600  IN  PTR bdmrob01-2.metavante.com.

一切看起来都很好。那么问题是什么?连接的主机肯定是由上述主机名和 IP 地址标识的,但它没有说明它是谁。它说:

helo=<bdmrob02.metavante.com>

该主机有 A 记录:

$ dig a bdmrob02.metavante.com
[...]
;; ANSWER SECTION:
bdmrob02.metavante.com. 0   IN  A   92.242.140.2

但是,其 IP 地址没有PTR记录:

$ dig -x 92.242.140.2
[...]
;; ANSWER SECTION:
2.140.242.92.in-addr.arpa. 84155 IN PTR unallocated.barefruit.co.uk.

这是他们那边的问题。在那之前你要么忍受它,要么更改你的 postfix 服务器,使其不再费心进行HELO命令的正向和反向查找

答案2

本着将有用的信息集中在一个地方的精神,我想在@wesley的正确答案中添加一些内容,即在不进行正向查找和反向查找之间有一个中间点,即白名单,如下所述:

Postfix:将特定发件人的主机列入白名单

相关内容