Выполнение пересылки SMTP в Windows 2000, Windows XP и Exchange Server

Переводы статьи Переводы статьи
Код статьи: 304897 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

ВВЕДЕНИЕ

Пересылка SMTP (Simple Mail Transfer Protocol) позволяет клиентам SMTP использовать сервер SMTP для отправки сообщений электронной почты адресатам, находящимся в удаленном домене. Как указано в разделах 2.1 и 3.7 документа RFC 2821 (Request for Comments), протокол SMTP поддерживает пересылку почтовых сообщений.

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

По умолчанию продукты корпорации Майкрософт, перечисленные в разделе «Данная статья применима к», не используют режим открытого ретранслятора.

Дополнительная информация

Некоторые средства сторонних производителей при проверке сервера Microsoft SMTP могут сообщать, что сервер является открытым ретранслятором, даже если это не соответствует действительности. Это происходит, поскольку проверяемый сервер SMTP вместо того, чтобы отклонить сообщение электронной почты при получении, может обработать его и отправить сообщение о невозможности доставки (NDR). Для получения дополнительных сведений об ответах сервера SMTP, отправляемых при пересылке сообщений, см. раздел «Ответы сервера SMTP при выполнении пересылки» данной статьи. Методы, позволяющие проверить, является ли сервер SMTP ретранслятором, см. в разделе «Как проверить, является ли сервер ретранслятором».

При обмене данными по протоколу SMTP все адреса, указываемые в полях TO и FROM, состоят из двух частей: локальной и доменной части. Если доменная часть адреса (то есть часть, следующая за символом «@») отсутствует, то считается, что сообщение является локальным. Поскольку некоторые пользователи настраивают клиентские программы SMTP таким образом, что в качестве адреса электронной почты указывается только имя пользователя, то некоторые продукты Microsoft SMTP добавляют к подобным адресам имя локального домена. Указывая в качестве доменной части имя локального домена по умолчанию, сервер SMTP позволяет уменьшить стоимость поддержки.

Это происходит постольку, поскольку при приеме сообщения электронной почты, которое необходимо доставить, продукты Microsoft SMTP не выполняют поиск в каталоге, а только проверяют, находится ли получатель в локальном домене или в удаленном домене, в которые разрешена пересылка сообщений. Если домен получателя не является локальным доменом или удаленным доменом, в которые разрешена пересылка сообщений, сервер SMTP выдает сообщение об ошибке, подобное указанному ниже.
550 5.7.1 Relaying prohibited
Если доменная часть адреса, указанного в поле TO, является именем локального домена, то пересылка не выполняется. Кроме того, система может выполнить поиск в каталоге почтового сервера и проверить, существует ли имя получателя, указанное в адресе. Однако данная проверка не является обязательной. Если почтовый сервер получает какое-либо сообщение, а в дальнейшем принимает решение о том, что данное сообщение не может быть доставлено, необходимо, чтобы сервер переслал отправителю этого сообщения оповещение NDR. Продукты Microsoft SMTP соответствуют этому требованию.

Примечание. Сервер Microsoft Exchange Server 2003 может выполнять поиск в каталоге во время проведения сеанса SMTP. Чтобы включить данный режим, воспользуйтесь диспетчером System Manager. Для получения дополнительных сведений о фильтрации получателей на сервере Exchange 2003 Server щелкните следующий номер статьи базы знаний Майкрософт:
823866 Настройка фильтрации получателей и настройка фильтрации подключений для использования списков блокировки в Exchange 2003 Server

Выполнение поиска в каталоге во время сеанса SMTP позволяет проверить правильность указания адресов. Поэтому корпорация Майкрософт рекомендует использовать параметр реестра TarpitTime, описанный в следующей статье базы знаний Майкрософт:
842851 Режим замедления ответов SMTP в Microsoft Windows Server 2003
Внимание. При необходимости выполнять поиск в каталоге во время сеанса SMTP в Microsoft Windows 2000 можно включить анализ событий протокола SMTP. Для получения дополнительных сведений посетите веб-узел событий сервера SMTP MSDN Platform SDK по адресу
http://msdn.microsoft.com/library/en-us/smtpevt/html/0e0c3b0d-5b08-42b5-8312-59a9f3cd8fd9.asp?frame=true

Ответ сервера SMTP при выполнении пересылки

Ответ, соответствующий рекомендациям, изложенным в документе RFC, выглядит следующим образом:
550 5.1.1 имя_пользователя@имя_домена.tld... User unknown
В продуктах, перечисленных в разделе «Информация в этой статье применима к», поиск в каталоге во время сеанса SMTP не реализован по следующим причинам.
  • Если сервер SMTP возвратит злоумышленнику, отправляющему нежелательные сообщения, ошибку с кодом 5xx, то злоумышленник узнает, существует ли в данном домене тот или иной адрес. В результате злоумышленник может подключиться к серверу по протоколу SMTP и, перебирая имена из словаря имен, получить список имеющихся адресов электронной почты. Это может привести к снижению безопасности системы, поскольку имена учетных записей пользователей, как правило, совпадают с локальной частью адреса электронной почты.
  • Злоумышленник может использовать адрес, указываемый в поле FROM, чтобы получить доступ к системе, и, используя сервер атакуемой системы, отправлять атакуемому получателю сообщения NDR. Данный тип атак называется «подмена» и требует, чтобы злоумышленник полностью пересылал данные, отправляемые на атакуемый сервер. Другими словами, если злоумышленник хочет отправить на какой-либо сервер 1 МБ данных, он должен израсходовать 1 МБ пропускной способности собственного канала, чтобы переслать эти данные на сервер SMTP. Как правило, злоумышленники стараются использовать атаки, позволяющие через Интернет пересылать жертве или жертвам объемы данных, которые в десятки и сотни раз превышают объем данных, отправленный злоумышленником со своего узла.
  • Выполнение поиска в каталоге при проведении сеанса SMTP значительно замедляет обработку сообщений. На момент опубликования данной статьи корпорация Майкрософт разрабатывает продукты исходя из предположения, что быстродействие сервера SMTP должно быть достаточным, чтобы не вызывать блокировку сообщений, поступающих из Интернета или от клиентов SMTP. В некоторых случаях каталог может оказаться недоступен, или при необходимости пересылки какого-либо домена может быть недоступна копия каталога. Это может происходить в среде, в которой услуги по размещению серверов предоставляет поставщик услуг Интернета.

Как проверить, является ли сервер ретранслятором

В данном разделе рассмотрены методы, позволяющие проверить, настроен ли сервер SMTP для пересылки сообщений электронной почты. В следующих примерах тесты с 1 по 5 отклоняются сервером SMTP. Тесты 6 и 7 сервером не отклоняются, однако сообщения электронной почты не пересылаются, а сервер через какое-то время отправляет сообщение NDR.

Чтобы выполнить описанные ниже тесты, запустите средство Telnet и подключитесь к порту 25 выбранного сервера SMTP. Для этого выполните следующие действия.
  1. Откройте командную строку.
  2. Введите telnet имя_сервера 25, где имя_сервера – имя или IP-адрес выбранного сервера SMTP, а 25 – номер порта. Нажмите клавишу ВВОД.
  3. Введите команду EHLO и нажмите клавишу ВВОД.

Тест 1

Это стандартный тест, проверяющий, включена ли пересылка SMTP. В результате выполнения приведенных ниже команд клиент SMTP не должен получить возможность переслать сообщение за исключением тех случаев, когда это явно разрешено администратором или клиент предварительно прошел проверку подлинности. Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите команду MAIL FROM:имя_пользователя@имя_домена.tld, где имя_пользователя – имя пользователя, имя_домена – имя домена, а tld – имя домена верхнего уровня, например .com или .net.

    Появится сообщение следующего вида:
    250 2.1.0 имя_пользователя@домен.tld....Sender OK
  3. Введите RCPT TO:имя_получателя@имя_домена.tld, где имя_получателя – адрес электронной почты получателя.

    Появится сообщение следующего вида:
    550 5.7.1 Unable to relay for имя_получателя@ имя_домена.tld

Тест 2

Данный тест похож на тест 1, однако в качестве отправителя указывается не пользователь из удаленного домена, а локальный пользователь. Поскольку адрес, указываемый в поле FROM, часто используется для получения несанкционированного доступа к системе, сервер не должен пересылать это сообщение. Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите MAIL FROM:имя_локального_пользователя, где имя_локального_пользователя – локальная часть адреса электронной почты какой-либо учетной записи пользователя локального домена. Нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    250 2.1.0 имя_локального_пользователя@домен.tld....Sender OK
  3. Введите RCPT TO:имя_получателя@имя_домена.tld

    Появится сообщение следующего вида:
    550 5.7.1 Unable to relay for имя_получателя@ имя_домена.tld

Тест 3

В данном тесте проверяется поведение сервера при отсутствии адреса отправителя в поле FROM. Адрес отправителя отсутствует в сообщениях NDR и других оповещениях. Однако подобные оповещения не пересылаются (за исключением случаев, когда адрес, указанный в поле ТО, находится в локальном домене). Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите команду MAIL FROM:<> и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    250 2.1.0 <>....Sender OK
  3. Введите RCPT TO:имя_получателя@имя_домена.tld

    Появится сообщение следующего вида:
    550 5.7.1 Unable to relay for имя_получателя@ имя_домена.tld

Тест 4

Данный тест аналогичен тесту 2, однако в адресе электронной почты явно указывается имя локального домена. Сервер SMTP, на котором отключена пересылка, не должен пересылать подобное сообщение. Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите MAIL FROM:имя_пользователя@имя_домена.tld, где имя_домена – имя локального домена. Нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    250 2.1.0 имя_пользователя@домен.tld....Sender OK
  3. Введите RCPT TO:имя_пользователя@имя_домена.tld и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    550 5.7.1 Unable to relay for имя_пользователя@ имя_домена.tld

Тест 5

Данный тест аналогичен тесту 2, однако вместо имени домена указывается IP-адрес сервера. Хотя подобный формат адреса является допустимым, однако сервер не должен выполнять пересылку в удаленный домен. В других тестах при указании в поле FROM имени «localhost» или DNS-имени сервера сервер не должен пересылать сообщения электронной почты, использующие данный формат. Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите MAIL FROM:имя_пользователя@10.10.10.10 и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    250 2.1.0 имя_пользователя@10.10.10.10....Sender OK
  3. Введите RCPT TO:имя_пользователя@имя_домена.tld и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    550 5.7.1 Unable to relay for имя_пользователя@ имя_домена.tld

Тест 6

Данный тест предназначен для серверов под управлением старых версий UNIX, которые при маршрутизации сообщений электронной почты добавляют имя локального домена и заменяют символ «@» символом «%», а затем пересылают сообщение. Поскольку символ процента («%») может использоваться в локальной части адреса электронной почты, сервер SMTP может принять подобное сообщение, а затем отправить сообщение NDR, если при поиске в каталоге не будет найден соответствующий пользователь. При использовании продуктов SMTP корпорации Майкрософт пересылка подобных сообщений не выполняется и создается сообщение NDR. Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите команду MAIL FROM:имя_пользователя и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    имя_пользователя@домен.tld....Sender OK
  3. Введите RCPT TO:имя_пользователя%имя_домена.tld и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    250 2.1.5 имя_пользователя%имя_домена.tld@имя_домена.tldимя_пользователя@имя_домена.tld
    Примечание. Имя локального домена добавляется к имени получателя в адресе электронной почты.

Тест 7

Данный тест похож на тест 6. Поскольку символ кавычки («"») может использоваться в локальной части адреса электронной почты, сервер SMTP может принять подобное сообщение, а затем отправить сообщение NDR, если при поиске в каталоге не будет найден соответствующий пользователь. При использовании продуктов Microsoft SMTP пересылка подобных сообщений не выполняется и создается сообщение NDR. Для проведения теста выполните следующие действия.
  1. В командной строке Telnet введите RSET.

    Появится сообщение следующего вида:
    250 2.0.0 Resetting
  2. Введите команду MAIL FROM:имя_пользователя и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    имя_пользователя@домен.tld....Sender OK
  3. Введите RCPT TO:"имя_пользователя@имя_домена.tld" и нажмите клавишу ВВОД.

    Появится сообщение следующего вида:
    "имя_пользователя@имя_домена.tld"@имя_домена.tld
    Примечание. Имя локального домена добавляется к имени получателя в адресе электронной почты.

Как определить, выполняется ли пересылка при проведении тестов 6 и 7

При выполнении тестов 6 и 7 на компьютере с сервером Exchange 2000 Server создается сообщение для получателя, адрес которого невозможно определить. В результате в почтовый ящик, адрес которого указывается в диспетчере Exchange System Manager, отправляется сообщение NDR. Чтобы указать почтовый ящик, в который отправляются сообщения о невозможности разрешить адрес какого-либо получателя, откройте диспетчер Exchange System Manager, откройте окно свойств стандартного виртуального сервера SMTP, перейдите на вкладку Messages и введите соответствующий адрес в поле Forward all mail with unresolved recipients to host.

Появление сообщения NDR свидетельствует о том, что сообщения электронной почты не пересланы.

Ссылки

Для получения дополнительных сведений о способах отключения режима открытого ретранслятора на сервере Exchange Server 5.5 щелкните следующий номер статьи базы знаний Майкрософт:
196626 Ограничение маршрутизации в службе почты Интернета (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Для получения дополнительных сведений о способах отключения пересылки сообщений в Windows 2000 щелкните следующий номер статьи базы знаний Майкрософт:
310356 Отключение пересылки сообщений электронной почты сервером SMTP служб IIS 5.0 (Эта ссылка может указывать на содержимое полностью или частично на английском языке)
Чтобы проверить, является ли сервер SMTP открытым ретранслятором, можно использовать средства сторонних производителей. Например, можно использовать следующие веб-узлы и средства сторонни х производителей: Контактные сведения независимых производителей предоставлены в данной статье с целью помочь пользователям получить необходимую техническую поддержку. Данная информация может быть изменена без предварительного уведомления. Корпорация Майкрософт не гарантирует правильность указанных контактных сведений независимых производителей.

В данной статье упомянуты программные продукты независимых производителей. Корпорация Майкрософт не гарантирует правильность указанных контактных сведений независимых производителей.

Свойства

Код статьи: 304897 - Последний отзыв: 20 ноября 2006 г. - Revision: 10.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Windows XP Professional Edition
  • операционная система Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Операционная система Microsoft Windows 2000 Professional
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Exchange Server 5.0 Standard Edition
Ключевые слова: 
kbhowto kbwinservnetwork kbnetwork KB304897

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com