Статья размещена автором Бетке Сергей Сергеевич

Лечим 504 в ответ на xexch50

Зачастую видим во входящей ESMTP сессии глагол xexch50 в адрес нашего сервера. При этом результат отрицательный – 504 (для общения через глагол xexch50 требуется предварительная авторизация. Предполагается, что оба сервера принадлежат одной exchange организации). Попробуем “вылечить” наши сервера.


Исключаем XEXCH50 из исходящих SMTP сессий

Для начала следует научить свой собственный SMTP не использовать xexch50 в исходящих сессиях. Смотрим статью http://support.microsoft.com/kb/843106 по данному вопросу. Повторять сам рецепт не буду – там подробно.
Но не все такие внимательные. Поэтому для решения проблемы с xexch50 во входящих сессиях мы вынуждены исключить явно xexch50 из перечня поддерживаемых глаголов в ответ на ehlo от наших серверов.

Исключаем XEXCH50 из поддерживаемых расширений ESMTP

Следует поблагодарить microsoft, в частности – разработчиков exchange. Поддержка глагола XEXCH50 в ответ на EHLO объявляется посредством отдельного smtp sink. Итак, отключаем sink от smtp, сообщающий о поддержке команды xexch50 в канале smtp.
Естественно, привязки sink к событиям хранятся в iis metabase. Наши действия:

  • Запускаем редактор метабазы IIS.
  • Находим событие {F6628C8D-0D5E-11D2-AA68-00C04FA35B82}

    Лечим 504 в ответ на xexch50

    (SMTP Protocol OnInboundCommand) для интересующего нас экземпляра SMTP сервиса (для того, который обслуживает входящую почту).
  • Ищем интересующий нас sink.
    В разделе rule привязок определяется глагол, на который в этом событии (OnInboundCommand) привязывается этот обработчик. Нашёл обработчик:
    peexch50.ehlo {B8AE826A-DB15-11D2-9500-00C04F79F1D6}.
  • По сути, именно его и следует отвязать. Обратно привязать его можно будет через regsvr32 peexch50.dll.
  • Удаляем найденную привязку

Ответ сервера до наших манипуляций на telnet mail.services.local.domain:25 (подробнее о использовании telnet http://support.microsoft.com/kb/153119/en-us, http://searchexchange.techtarget.com/generic/0,295582,sid43_gci1280938_mem1,00.html):

220 novgaro.ru Microsoft ESMTP MAIL Service, Version: 6.0.3790.4675 ready at  Tue, 19 Oct 2010 12:42:05 +0400EHLO test
250-novgaro.ru Hello [172.31.3.12]
250-TURN
250-SIZE 20971520
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250-X-EXPS GSSAPI NTLM
250-AUTH GSSAPI NTLM
250-X-LINK2STATE
250-XEXCH50
250 OK
quit
221 2.0.0 novgaro.ru Service closing transmission channel

Итак, перезапускаю smtp и снова пробую telnet:

220 novgaro.ru Microsoft ESMTP MAIL Service, Version: 6.0.3790.3959 ready at  Tue, 13 Apr 2010 15:02:26 +0400EHLO novgar.ru
250-novgaro.ru Hello [127.0.0.1]
250-TURN
250-SIZE
250-ETRN
250-PIPELINING
250-DSN
250-ENHANCEDSTATUSCODES
250-8bitmime
250-BINARYMIME
250-CHUNKING
250-VRFY
250-X-EXPS GSSAPI NTLM
250-AUTH GSSAPI NTLM
250-X-LINK2STATE
250 OK
quit
221 2.0.0 novgaro.ru Service closing transmission channel

Видим, что более в ответ на EHLO наш сервер не отвечает 250-XEXCH50, что и требовалось. С этого момента Вы не будете видеть ошибок (504) в Вашем журнале SMTP во входящих сессиях от exchange серверов Ваших контрагентов, Вы будете видеть глагол BDAT вместо XEXCH50.

Прочие Exchange специфичные глаголы SMTP.

Отзывы » (3)

  1. shs:

    > Обратно привязать его можно будет через regsvr32 peexch50.dll.

    Быть может для того, чтобы «отвязать» будет достаточно выполнить обратную операцию: regsvr32 /u peexch50.dll ?

    ЗЫ Естественно сам не проверял, просто пытаюсь провести аналогию.

    • Безусловно, действие

      regsvr32 /u peexch50.dll
      

      даст нам желаемый эффект. Но при этом исчезнет поддержка не только XEXCH50, но и всех других глаголов exchange, в частности (из перечисленных в посте): X-LINK2STATE. Часть глаголов может быть отключена манипуляциями в реестре (что сделано, мы их уже здесь не видим).
      Суть задачи состояла в том, чтобы отключить поддержку только XEXCH50, оставив поддержку других глаголов exchange.

    • Кстати, здесь как раз такой вариант и предлагают. Последствия и его минусы я уже объяснил. Однако, по указанной ссылке более наглядно показана суть проблемы, стоит взглянуть.

Опубликовать комментарий

XHTML: Вы можете использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags Связь с комментариями статьи:
RSS комментарии
Обратная ссылка