У меня есть почтовый сервер postfix на Debian. Мой клиент только что сообщил мне, что они не смогли отправить мне электронное письмо, и похоже, что возникла проблема с их почтовым сервером. Я хотел бы вернуться к ним с реальной проблемой, но я не могу понять этого. Это было в письме о недоставке:
The address to which the message has not yet been delivered is:
eric@mydomain.com
Delay reason: SMTP error from remote mail server after RCPT
TO::
host dog.myhostname.com [{server_ip}]: 450 4.7.1
:
Recipient address rejected: SPF-Result=server.thehostingserver.co.uk:
'SERVFAIL' error on DNS 'TXT' lookup of 'server.thehostingserver.co.uk'
Проверка через /var/log/mail.log
файла, я вижу следующие строки, которые совпадают с электронным письмом о недоставке:
Dec 6 10:32:16 dog postfix/smtpd[366]: connect from unknown[37.26.106.210]
Dec 6 10:32:16 dog postfix/smtpd[366]: setting up TLS connection from unknown[37.26.106.210]
Dec 6 10:32:16 dog postfix/smtpd[366]: Anonymous TLS connection established from unknown[37.26.106.210]: TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)
Dec 6 10:32:18 dog postfix/policy-spf[421]: Policy action=DEFER_IF_PERMIT SPF-Result=server.thehostingserver.co.uk: 'SERVFAIL' error on DNS 'TXT' lookup of 'server.thehostingserver.co.uk'
Dec 6 10:32:18 dog postfix/smtpd[366]: NOQUEUE: reject: RCPT from unknown[37.26.106.210]: 450 4.7.1 <eric@mydomain.com>: Recipient address rejected: SPF-Result=server.thehostingserver.co.uk: 'SERVFAIL' error on DNS 'TXT' lookup of 'server.thehostingserver.co.uk'; from=<info@example.com> to=<eric@mydomain.com> proto=ESMTP helo=<server.thehostingserver.co.uk>
У меня проблемы с пониманием этого.
1) Почему написано «подключиться от неизвестного»? Этот IP явно разрешает server.oovavoohosting.co.uk
. (Обратите внимание, что другие входящие соединения отображаются правильно с их именами узлов)
# nslookup 37.26.106.210
Server: 127.0.0.1
Address: 127.0.0.1#53
Non-authoritative answer:
210.106.26.37.in-addr.arpa name = server.oovavoohosting.co.uk.
Authoritative answers can be found from:
106.26.37.in-addr.arpa nameserver = ns1.racksrv.com.
106.26.37.in-addr.arpa nameserver = ns2.racksrv.com.
ns1.racksrv.com internet address = 37.26.104.214
ns2.racksrv.com internet address = 37.26.105.214
2) Если вышеупомянутый IP разрешается server.oovavoohosting.co.uk
, откуда берется имя хоста server.thehostingserver.co.uk
из? Я вижу, что этого имени хоста не существует, поэтому он возвращает SERVFAIL
, Я просто не знаю, откуда это.
1) unknown
в журнале означает, что обратное имя для IP (server.oovavoohosting.co.uk
) не пересылает разрешение на исходный IP-адрес.
2) Похоже, удаленный сервер представился как server.thehostingserver.co.uk
. Глядя на журнал, я вижу helo=server.thehostingserver.co.uk
, который я интерпретирую как то, что сервер использовал в приветствии SMTP.
Почему это используется в тесте SPF, я не знал, пока не посмотрел в Википедии и похоже, что это теперь обязательный тест:
Для пустого Return-Path, используемого в сообщениях об ошибках и других автоответах, SPF-проверка HELO-identity является обязательной.
С поддельным идентификатором HELO результат NONE не поможет, но для допустимых имен хостов SPF также защищает идентификатор HELO. Эта функция SPF всегда поддерживалась в качестве опции для приемников, и более поздние проекты SPF, включая окончательную спецификацию, рекомендуют всегда проверять HELO.
Таким образом, сервер, подключенный к вашему почтовому серверу, сказал
HELO server.thehostingserver.co.uk
в своем приветствии. Затем ваш сервер нашел запись SPF и, не найдя записи DNS для этого сервера, отклонил почту.