Назад | Перейти на главную страницу

Почему postfix говорит: «Команда Helo отклонена: Хост не найден», когда dig находит хост?

Итак, я вижу следующую ошибку 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=<bbankingonline@mybank.com>
to=<myemail@fqdn.org> 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

Ответ все время смотрел нам в глаза.

Postfix ищет A и PTR записи для хоста, приветствующего его HELO. Или, точнее, хозяин, что хозяин говорит это в его сообщении 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.

Это проблема с их стороны. А пока тебе придется либо жить с этим, либо измените свой постфиксный сервер, чтобы не беспокоиться о прямом и обратном поиске на HELO команды.

В духе того, чтобы собрать полезную информацию в одном месте, я хочу добавить немного к правильному ответу @wesley, который заключается в том, что есть промежуточная точка между невыполнением прямого и обратного просмотра, которая представляет собой белый список, описанный здесь:

Postfix: белый список хостов для конкретного отправителя