среда, ноября 01, 2006

504 Need to authenticate first

Сегодня получил письмо от коллеги, он продолжает биться с ветряными мельницами в виде сообщений в application log.

Event Type: Error
Event Source: MSExchangeTransport
Event Category: SMTP Protocol
Event ID: 7010
Date: 11/1/2006
Time: 9:03:04 AM
User: N/A
Computer: Server
Description:
This is an SMTP protocol log for virtual server ID 1, connection #22534. The client at "203.153.216.11" sent a "xexch50" command, and the SMTP server responded with "504 Need to authenticate first ". The full command sent was "xexch50 2096 2". This will probably cause the connection to fail.

На самом деле правду говорят, что меньше знаешь - лучше спишь. Если увеличить детализацию любых логов, то видно, что серверы выполняют рад операций, вызывающих ошибки. Но на это не стоит обращать внимания. Это как раз тот случай.

Проблема заключается в том, что получающий сервер Exchange, стоящий в Internet, отвечает на EHLO вот так:

220 mxs2.inserv.kz Microsoft ESMTP MAIL Service, Version: 6.0.3790.1830 ready at Wed, 1 Nov 2006 12:32:43 +0500
EHLO myserv01.mydomain.ru
250- mxs2.inserv.kz Hello [61.122.296.161]
250-TURN
250-SIZE 5388608
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250-TLS
250-STARTTLS
250-X-EXPS GSSAPI NTLM
250-AUTH GSSAPI NTLM
250-X-LINK2STATE
250-XEXCH50
250 OK

Это на самом деле не правильно, т.к. мы видим команды, используемые только Exchange серверами, например: 250-X-LINK2STATE, 250-XEXCH50 и т.д.
Отправляющий Exchange сервер считает, что он соединился с Exchange сервером и пытается работать с принимающим сервером, как с Exchange. Но сервера из разных организаций и соединение между ними анонимное. Поэтому команда XEXCH50 не может использоваться.

К примеру mail.ru отвечает вот как:

220 Mail.Ru ESMTP
EHLO myserv01.mydomain.ru
250-mx21.mail.ru ready to serve
250-SIZE 10485760
250 8BITMIME
250 OK

И этого вполне достаточно для работы в Интернет, но сейчас не об этом.

Итак, рассмотрим лог SMTP и обмен между серверами при подобной ошибке.

Я немного модифицировал стандартный SMTP log. Эта сессия моего сервера Exchange 2003 myserv01.mydomain.ru к внешнему серверу Exchange 2003 в Интернет mxs2.inserv.kz.( Все команды в нормальном логе начинаются с «Outbound»). Эта сессия является анонимной по отношению к получающему серверу.

R: mxs2.inserv.kz +Microsoft+ESMTP+MAIL+Service,+Version:+6.0.3790.1830+ready
C: EHLO - myserv01.mydomain.ru
R: 250- mxs2.inserv.kz +Hello+[61.122.296.161]
C:MAIL - FROM:<Pavel.Nagaev@mydomain.ru>+SIZE=32758
R: 250+2.1.0+Pavel.Nagaev@mydomain.ru....Sender+OK
C:RCPT - TO:<mycolleague@inserv.kz>
R:250+2.1.5+mycolleague@inserv.kz
C:XEXCH50 - 2580+2
R:504+Need+to+authenticate+first 0 0 30 0 875 - - - -

[Поскольку при EHLO сервер ответил 250-XEXCH50, мой сервер пытается работать с получающим сервером, как с Exchange сервером. А т.к. сервера не аутентифицированы по отношению друг к другу, то возникает ошибка 504+Need+to+authenticate+first. Что вполне логично. Дальше передача проходит нормально.]

C:BDAT - 32758+LAST
R:250+2.6.0++<A2B538EA6614BC4A86FAC44157707DFA5FE56B@myserv01.mydomain.ru>+Queued+mail+for+delivery 0 0 96 0 1812 - - - -
C:QUIT –
R:221+2.0.0+ mxs2.inserv.kz +Service+closing+transmission+channel

Что же делать c этой ошибкой?

Микрософт предлагает вот что http://support.microsoft.com/kb/843106 . Но это при условии, что оба сервера работают в вашей сети. Если это Интернет сервера, то не стоит делать то, что написано в статье.

Что означает XEXCH5, написано в этой статье http://support.microsoft.com/kb/812455/.

Чтобы такой ошибки не возникало у других пользователей Интернет, закройте XEXCH50 на вашем ISA сервере. Можно сделать еще на вашем SMTP сервере http://support.microsoft.com/kb/257569/en-us, но я не рекомендую, т.к. полезут другие ошибки.

Чтобы подобной ошибки не возникало в ваших логах, нужно на SMTP коннекторе, отсылающим почту в Интернет включить опцию Send HELO instead of EHLO.

И пусть к нам всем придет радость и счастье :-)

2 комментария:

Pavel Nagaev комментирует...

Есть на русском статья http://support.microsoft.com/kb/843106/ru

tr0ble комментирует...

Большое при большое уважение автору этой статьи. Полезная информация + полезные ссылки. Мне как начинающему разбираться с exchange побольше бы таких статей встречать.