Всё о о Microsoft Exchange Server и электронной почте.

Exchange 2007, не работает проверка получателей в AD?

stop-spam

Частенько на форумах по Exchange 2007 звучит вопрос о переполненности очередей сообщениями в домены со странными именами. Если очередь очистить, то эти сообщения появляются вновь. Релей вроде закрыт, но сообщений в очередях огромное количество. Откуда взялись эти сообщения? Пользователи их явно не отправляли. Что делать?

           Давайте рассмотрим как происходит разбор адреса получателя принимающим сервером? Обычно система проверяет существование адреса получателя  и если его нет, то в SMTP сессии генерируется отбой «5.1.1 User unknown». Exchange же долгое время не умел этого делать, но с версии 2003(? я могу ошибаться) он научился проверять получателей в Active Directory(Filter recipients who are not in the directory) и генерировать отбой в SMTP сессии. Если же проверку в AD не включать, то сообщение будет полностью принято и отправителю будет сгенерирован NDR. А если адреса отправителя не существует или это адрес не имеет никакого отношения к реальному отправителю? Тогда это сообщение повиснет в очереди, а smtp сервер будет его пытаться доставить несуществующему получателю на несуществующий сервер. Подобных ситуаций нужно избегать.

Как проверить, проверяет ли ваш сервер получателей в AD? Используем telnet.

>C:\telnet ваш_сервер.ru 25
<220 myserver.exchangerus.ru Microsoft ESMTP MAIL Service ready at Fri, 15 Aug 2008

>ehlo test.ru
<250-myserver.exchangerus.ru  Hello [x.x.x.x]<250-SIZE
<250-PIPELINING
<250-DSN
<250-ENHANCEDSTATUSCODES
<250-STARTTLS
<250-AUTH NTLM
<250-8BITMIME
<250-BINARYMIME
<250 CHUNKING

>mail from:pavel.nagaev@test.com   (адрес отправителя не важен)
<250 2.1.0 Sender OK

>rcpt to:nonexistentuser@exchangerus.ru
<250 2.1.5 Recipient OK

Вот тут внимание. Если ваш сервер выдает “250 2.1.5 Recipient OK”, но пользователя nonexistentuser@exchangerus.ru в вашем домене exchangerus.ru — нет, то это значит что никакой проверки в AD не выполняется и ваш сервер “всасывает” все сообщения для вашего домена, а потом будет пытаться отослать NDR.
После включения проверки в AD две последние строки будут выглядеть так:

>rcpt to:nonexistentuser@exchangerus.ru
<550 5.1.1 User unknown

          В Exchange 2007 проверка получателей в AD включена на Edge сервере. А если у Вас нет EDGE сервера, а только HUB сервер, что тогда? Транспортные агенты можно установить и на HUB сервер и они будут работать, но с некоторыми ограничениями.

Проверка получателей в AD включается следующей командой:

Set-RecipientFilterConfig -RecipientValidationEnabled:$true

         Заработало? Cкорее всего да. В моем случае не заработало, т.к. у меня AcceptedDomain создавался, как ExternalRelay, а для него значение AddressBookEnabled установлено в $false и при изменении на Authorative значение не изменилось. Поэтому пришлось включить AddressBookEnabled на  обслуживаемых доменах вручную.

AddressBookEnabled  — этот параметр используется для разрешения фильтрации получателей в роли пограничного транспортного сервера, принимающей почту для принятого домена.

Get-AcceptedDomain | select Name,DomainType,AddressBookEnabled

Если параметр AddressBookEnabled  стоит в False, то нужно его установить в True, например так.

Get-AcceptedDomain | set-AcceptedDomain –AddressBookEnabled:$true

            Потом проверяйте с помощью telnet, как я описал выше. Вы должны получить «550 5.1.1 User unknown» для не существующего адреса в вашем домене и количество писем в очередях значительно сократится. А то сейчас мода на отключение NDR на серверах 🙂 Жуть какая 🙂

Похожие посты:

  • Sudden Death

    Все верно. Если проверку не включать, то забивает очередь очень быстро всякой ерундой. Обычно проверку пользователей не включают на том основании, что мол, так могут узнать реальных адресатов. Но, как мне кажется, в 99% случаев спаммеру глубоко фиолетово до ответов сервера (он же не с домашней машины рассылку делает).
    В экченж 2003 появилась еще одна замечательная вещь, как указание на мэил энабел групп, что почту на них могут отправлять только авторизованные юзеры. А до какое было раздолье спаммеру. Да и вообще, до SP1 экченж 2000 по сути был не работоспособен 😉

  • solaris24

    Что-то не получается сделать.
    Сделал: Set-RecipientFilterConfig -RecipientValidationEnabled:$true  — ситуация не изменилась.
    Тогда посмотрел Get-AcceptedDomain | select Name,DomainType,AddressBookEnabled
    значение AddressBookEnabled там пустое, т.е. не false и не true

    Деалю: Get-AcceptedDomain | set-AcceptedDomain –AddressBookEnabled:$true
    WARNING: Команда выполнена успешно, но параметры «domain.ru» не были изменены.

    Тип домена: Authorative

    Что не так делаю?

  • http://www.exchangerus.ru Pavel Nagaev

    для того, чтобы не сообирали адреса можно включить tarpit и сделать ежедневный отчет на PoSh по анализу логов на предмет подбора адреса.
    Я ни разу не видел подбора адресов и базы пополняются за счет других способов.

    1. Нужно установить агентов на HUB сервер, как написано сверху в ссылке.
    2. Set-RecipientFilterConfig -RecipientValidationEnabled:$true
    3. Get-AcceptedDomain | set-AcceptedDomain –AddressBookEnabled:$true

    Подтвердите, что Вы все три условия выполнили.
    У меня тоже писало, что параметры не были изменены, однако они 100% поменялись.

  • LukyanovAV

    Сделал все как написанно — «550 5.1.1 User unknown» не появилось. Немного покапавшись обнаружил, что Recipient Filter был выключен. Получатеся, что по умолчанию он не включается после установки.
    Set-RecipientFilterConfig -Enabled:$true исправила ситуацию. Теперь всё работает.
    Спасибо за статью, очень полезная информация!

  • http://www.exchangerus.ru Pavel Nagaev

    Установка его не включает, установка — это установка 🙂

    По поводу полезности. Достал меня совет на форумах об отключении NDR. Система должна отправлять NDR, ведь получается, что пользователь случайно неправильно вбил получателя и ни он, ни получатель не знают, что письмо не было доставлено. Жуть какая. Зато типа спам победили. 🙂

  • solaris24

    Разобрался 🙂  из статьи не сразу понял что нужно установить транспортные фильтры.
    «Транспортные агенты можно установить и на HUB сервер» , я так понял что можно ставить, а можно и не ставить ;). Оказывается нужно ставить.

  • http://www.exchangerus.ru Pavel Nagaev

    для работы конечно нужно. Сорри, след. раз буду более внимательным.

  • Char

    Интересная инфа. Я думал что включить такую проверку на HUB сервере можно только доустановив через скрипты все антиспам агенты.

    Кстати, очень интересно ваше мнение, лучше ли при наличии стороннего фильтра (ORF например) пользоваться встроенными в Exchange фильтрами или доверить все внешнему агенту и не нагружать сам Exchange?

  • http://www.exchangerus.ru Pavel Nagaev

    это вопрос удобства и работоспособности приложений третьих фирм. Как правило они расширяют функционал.
    Что касается ORF, то у меня осталось очень хорошее мнение о нем, когда он работал на E2003. Под 2007 я его не гонял и наверное не буду, т.к. в текущей конфигурации смысла нет его использовать.

  • Char

    Почему нет смысла?

    По моему опыту без Грейлистинга или Байенсовского фильтра, вылавливать больше 30-40% спама очень непросто. А в Эксч2007 пока нет ни того ни другого.

  • http://www.exchangerus.ru Pavel Nagaev

    Я бы так категрично не утверждал. Никто не знает, как работает IMF под E2007 и по поводу отсутствия грейлиста….. я промолчу. 🙂

  • Char

    Не нужно молчать, мне казалось ваш сайт наоборот для общения 😉

    Я выше наоборот постарался быть максимально демократичным и добавил «по моему опыту» и «очень непросто».
    Если вы сейчас можете на рабочих серверах обходиться только лишь встроенными фильтрами и этого реально хватает, то я наоборот очень хотел бы небольшой ликбез как это получилось.

  • http://www.exchangerus.ru Pavel Nagaev

    Не, конечно встроенных фильтров на много не хватит. У меня используется Linux машина с greylist и Kaspersky.

  • Char

    Извините за такое количество «наоборот», после отпуска «мой англиский» что-то прихрамывает.

  • Алексей Карабуля

    Спасибо, очень помогла статья. Огромное спасибо!

  • Korneev Mihail

    Действительно полезная статья. Огромное спасибо.

  • Korneev Mihail

    «..и сделать ежедневный отчет на PoSh по анализу логов на предмет подбора адреса»
    можно чуть подробнее, или где почитать ?

  • http://www.exchangerus.ru Pavel Nagaev

    Можно у Васи Гусева спросить, а вообще анализировать нужно smtp логи на количество вхождений с одного IP и проверку полной SMTP сессии

  • Дмитрий

    Хм, очень странно. Поставил фильтры на Hub-transport server, включил RecipientFilter, адресная книга включена.
    Все равно не проверяет на наличие получателя в адресной книге.. Что за напасть?

  • http://www.exchangerus.ru Pavel Nagaev

    Проверьте с внешнего сервера, например http://centralops.net/co/

  • Дмитрий

    посидел ночь, покопал — озарило… Нельзя столько работать, замыливается глаз. В общем для защиты от спама включена была так же аутентификация пользователей перед отправкой сообщений. В консоли нужно было auth login ввести перед mail from. И для авторизованных пользователей фильтры не применяются.
    И хотя письмо в консоли помечалось как «added to delivery query» на самом деле если посмотреть трассировку — письма в exchange не существовало совсем.

  • Евгений

    Павел, а подскажите пожалуйста, как настроить проверку адресов в AD для 2007 Edge в связке с организацией Exchange 2003? Как я понял, пока 2003 не поднимим до 2007 версии Edgesync нам не видать, а без него в ADAMе появится ничего и проверка получателя не заработает само собой. Может есть какое решение для «мигрирующих» потихоньку?

  • http://www.exchangerus.ru Pavel Nagaev

    Я не встречал и не думаю, что это возможно без значительных трудовых затрат.

  • HotIcer

    Все сделал по описанию но эффекта не получил никакого все также письма пролетают
    Более того эти левые письма умудряться попадать пользователям с другим наименованием почтового ящика
    На входе стоит Спамооборона но она писмо для несуществующих пользователей не обрабатывает

  • Retro

    Павел, спасибо за статью.
    Думаю стоит дополнить несколькими моментами:
    1. Запускать консоль надо от имени администратора для тех кто на Win2k8
    2. Если скрипт по имени не открывается, то нужно прописать полный путь к нему или скопировать его текст прямо в консоль.
    3. Нужно проследить что скрипт выполнился без ошибок. Иначе вкладки антиспама появляются, но работоспособности нету.
    4. Нужно задать IP локального SMTP сервера. Хоть это и описано в ссылке по установке. Не все читают внимательно…
    5. После установки антиспамом можно рулить и из графической оболочки. На вкус и цвет… как говорится…

  • Alex

    Спасибо за статью.

    Но у меня что-то с броузерами и я не вижу «ссылку указанную сверху». Поясните, пожалуйста, какие агенты должны быть установленны на HUB-транспорт (у меня нет EDGE’й). И как их ставить (лучше дайте ссылку).

  • Aleksey

    Спасибо за статью!
     
    Очень помогла. Особенно дополнение про авторитативные и не авторитативные домены. У меня как раз была такая ситуация.

    Единственное, что я не понял — это на каком транспортном сервере работаю фильтры. У меня в орг-ции Exchange 2007 несколько сайтов, в каждом стоит сервер с ролью HUB/Client (Edge нет). Мне надо ставить антиспам фильтры на все HUB/Client, которые принимают почту из вне или установка фильтров на одном сервере оказывает воздействие на всю орг-цию Exchange?