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

Многие администраторы Exchange используют почтовые фильтры независимых поставщиков, но в Exchange Server 2003 есть на удивление удачный набор встроенных инструментов для борьбы со спамом. Компания Microsoft использует эти инструменты как первую линию обороны для своих собственных систем, и большинство сотрудников не жалуется на избыток нежелательных сообщений. Насколько эффективно используется встроенный инструментарий Exchange 2003 в вашей компании? Чтобы ответить на этот вопрос, необходимо хорошо знать эти инструменты, способы их применения и возможности настройки.

Процесс защиты от спама в Exchange

В Exchange 2003 используется несколько типов защиты, в том числе блокирование почтовых сообщений, поступающих от конкретных IP-адресов или отправителей, и фильтрация с помощью Microsoft Exchange Intelligent Message Filter (IMF). В Exchange применяются методы фильтрации в прогнозируемой последовательности. Процесс начинается, когда удаленный компьютер открывает SMTP-соединение с сервером Exchange. Если соединение принято сервером, используются следующие типы фильтрации:

  1. Фильтрация соединения. Exchange выполняет проверки на основе IP-адреса отправителя и других данных, таких как корректность синтаксиса SMTP-разговора.
  2. Фильтрация отправителя и получателя. Exchange ищет IP-адрес отправителя в "черных списках" и сверяет адреса отправителя и получателя со списками разрешенных и блокированных пользователей.
  3. Фильтрация информационного наполнения. Сообщение проходит через фильтр IMF (если он включен).

Затем Exchange передает сообщение в хранилище почтовых ящиков, где оно может быть обработано средствами хранилища (в соответствии с параметрами, установленными в IMF) или фильтром "мусора" клиентской программы Outlook.

Настройка фильтров

Существует два способа управления типом фильтров, применяемых к серверам Exchange. Во-первых, можно использовать узел Message Delivery в диспетчере Exchange System Manager (ESM), чтобы задать параметры фильтрации для IMF, отправителя и получателя, фильтрации соединений и фильтрации кода отправителя Sender ID. Каждому типу фильтрации соответствует собственная вкладка в диалоговом окне Message Delivery Properties (Экран 1).

Во-вторых, можно выбирать механизмы фильтрации для каждого виртуального SMTP-сервера в компании. Откройте свойства виртуального SMTP-сервера и щелкните на кнопке Advanced во вкладке General, а затем на кнопке Edit, чтобы вывести на экран диалоговое окно Identification (Экран 2). Чтобы параметры вступили в силу, необходимо перезапустить виртуальный SMTP-сервер после того, как будут выбраны типы фильтрации. Настройки для фильтров извлекаются из данных конфигурации для каждого виртуального сервера. Независимые режимы фильтрации для каждого виртуального сервера обеспечивают гибкость обработки входящих сообщений.

Важно отметить, что хотя фильтрация соединений, отправителей и получателей производится в различное время, все эти действия представляют собой части SMTP-разговора и поэтому не являются отдельными операциями.

Фильтрация соединений

Фильтрация соединений - общий термин для нескольких действий, которые выполняются, когда Exchange принимает SMTP-соединение. Соединение начинается, когда удаленный сервер подключается к SMTP-службе Exchange. Exchange получает адрес отправителя и выполняет несколько проверок.

  • Exchange сопоставляет IP-адрес отправителя со списком разрешенных и блокированных IP-адресов, который хранится в Active Directory (AD). Виртуальный SMTP-сервер достаточно интеллектуален, чтобы обнаружить изменения в списках адресов без перезапуска службы. Если IP-адрес входит в глобальный разрешенный список, то сообщение исключается из последующих проверок. Если адрес входит в глобальный запрещенный список, соединение немедленно разрывается. Составляется отчет о неудачной доставке (nondelivery report - NDR), но сервер-отправитель получает сообщение об ошибке 5.7.0 Access Denied. На данном этапе используются два набора списков IP-адресов: в первый из них входят глобальные списки разрешений и блокировки, определенные на вкладке Connection Filtering диалогового окна Message Delivery Properties, а во второй набор - пары списков разрешений и блокировки для отдельного виртуального сервера.
  • Если включено обратное преобразование DNS, то Exchange использует IP-адрес, чтобы выполнить обратную проверку DNS и убедиться, что имя DNS связано с IP-адресом. Если соответствия не обнаружено, Exchange разрывает соединение.
  • Сервер Exchange принимает сообщение HELO/EHLO отправителя. Если оно сформировано некорректно, то Exchange разрывает соединение.
  • Exchange принимает команду MAIL FROM, которая обеспечивает адрес, известный как envelope FROM (или P1). Этот адрес содержит сведения, заявленные отправителем о себе, но Exchange не делает попыток проверить их. Однако Exchange сопоставляет адрес P1 со списком блокированных отправителей. Если адрес в списке есть, Exchange разрывает соединение, выдавая сообщение об ошибке 5.1.0 Sender Denied; в противном случае сервер Exchange посылает сообщение о состоянии 250 OK, и разговор продолжается.

Если на любом этапе данного процесса механизм фильтрации Exchange обнаруживает неверную последовательность SMTP-команд (например, DATA перед MAIL FROM) или явно искаженные аргументы, то Exchange разрывает соединение.

Фильтрация отправителя и получателя

На данном этапе Exchange принял P1-адрес отправителя и готов принять список получателей сообщения. Но прежде чем это сделать, Exchange проверяет черный список реального времени (Realtime Blackhole List - RBL). Если Exchange настроен на использование списков RBL, то выполняется проверка первого RBL в списке; поставщику RBL направляется запрос с IP-адресом отправителя в обратной последовательности. Например, если IP-адрес отправителя a.b.c.d, а поставщик RBL - example.com, то Exchange запрашивает у поставщика d.c.b.a.example.com. Если у поставщика RBL есть запись для IP-адреса отправителя, он передает код состояния, который указывает RBL-список, содержащий IP-адрес; в противном случае передается сообщение об ошибке Host Not Found.

Exchange запрашивает каждый RBL в списке до тех пор, пока не будет обнаружено совпадение или достигнут конец списка. Если совпадение обнаружено, SMTP-сервер Exchange возвращает ошибку 5.7.0 с необязательным специальным сообщением, которое поможет объяснить, почему отвергнуто почтовое сообщение. Можно также определить список получателей, для которых проверки RBL не выполняются. Сообщения для таких получателей принимаются, даже если IP-адрес отправителя есть в списке RBL, и отмечаются, чтобы исключить их из дальнейших проверок.

Затем Exchange принимает команду RCPT TO, которая указывает получателей сообщения. Как и для отправителей, для проверки получателей используют два списка: список блокированных получателей (для которых отвергаются все почтовые сообщения) и список разрешенных получателей (все почтовые сообщения принимаются). Если получателя нет ни в одном из списков, то дальнейшие действия зависят от параметра Filter recipients who are not in the Directory на вкладке Recipient Filtering диалогового окна Message Delivery Properties (Экран 3). Если флажок установлен, Exchange сравнивает псевдоним получателя с AD, чтобы убедиться в корректности получателя; сообщения к недействительным получателям возвращаются с отчетом о недоставке (NDR). Если указан неверный получатель или флажок не установлен, то Exchange принимает команду DATA, которая содержит информативную часть сообщения.

В разговор DATA входит передача заголовков сообщений, которые содержат адрес для ответа отправителю (или P2-адрес). Если этот адрес есть в списке фильтрации отправителей, то Exchange разрывает соединение и удаляет сообщение.

Если SMTP-соединение все еще активно и включен режим проверки кода Sender ID, то Exchange отыскивает запись Sender Policy Framework (SPF) или Sender ID в DNS-сервере. Если обнаружена запись для заявленного домена отправителя, Exchange сравнивает ее P1-адресом отправителя. Если записи не существует или данные записи не совпадают с P1-адресом отправителя, то сообщение обрабатывается в соответствии с параметром, выбранным на вкладке Sender ID Filtering в диалоговом окне Message Delivery Properties (Экран 4). Результаты проверки Sender ID учитываются в решении IMF о законности сообщения, поэтому специалисты Microsoft рекомендуют использовать выбираемый по умолчанию режим и принимать сообщения, даже если проверка Sender ID закончилась неудачно. В настоящее время немногие компании подготовили записи Sender ID; по мере увеличения их числа можно будет ужесточить проверки Sender ID, удаляя или блокируя сообщения из доменов, в которых нет записей Sender ID. (Дополнительные сведения о Sender ID и IMF можно найти в материалах врезки "Дополнительные ресурсы".)

Фильтрация контента

Фильтрация контента выполняется фильтром IMF. В отличие от большинства решений независимых поставщиков, в IMF мало настраиваемых администратором параметров. Вместо этого используется массив данных, полученный в результате анализа сотен тысяч сообщений, посланных пользователям MSN Hotmail. IMF присваивает сообщениям два числовых балла: уровень вероятности спама (spam confidence level - SCL) и уровень вероятности фишинга (phishing confidence level - PCL). Чем выше число, тем больше вероятность, что сообщение незаконное: значение SCL, равное 9, говорит о том, что IMF уверенно оценивает сообщение как спам, а 1 показывает, что сообщение, по-видимому, полезное. SCL со значением -1 показывает, что сообщение исключено из IMF-сканирования, так как получено от доверенного IP-адреса или отправителя, доставлено через проверенное соединение или поступило от другого пользователя в той же организации Exchange. Показатель PCL аналогичен SCL, но отражает вероятность того, что сообщение относится к фишингу. Как показано на Экране 5, фильтр IMF обеспечивает управление двумя порогами: порогом шлюза для уровня SCL, при котором сообщения отвергаются, и порогом хранения для уровня SCL, при котором сообщения принимаются, но направляются в папку Junk E-mail пользователя. К сожалению, аналогичных параметров для PCL нет.

Можно также настроить действия Exchange для сообщений, превысивших порог шлюза: удалить сообщение, отвергнуть его с отчетом о недоставке (NDR), архивировать для анализа в будущем или не предпринимать никаких действий. Компания Microsoft рекомендует первоначально настроить шлюзовую блокировку в режиме No Action, а после нескольких дней работы фильтра установить SCL шлюза с учетом показаний счетчиков производительности IMF.

В IMF можно внести и несколько других настроек, хотя они не отражены в ГИП. Например, можно определить специальный словарный список как XML-файл (хранится в MSExchange.UceContentFilter.xml в каталоге exchsrvrinMSCFV2) и повысить или понизить SCL для сообщений, содержащих указанные слова. Это полезная функция, если продуманно подойти к выбору слов. Можно также использовать раздел реестра CustomRejectResponse, чтобы IMF возвратил особый SMTP-ответ для отвергнутых сообщений (например, 550 5.7.0 Die, spammers, die!). Этим практически и исчерпывается круг настраиваемых параметров. Простота - достоинство многих сайтов, хотя некоторым администраторам хотелось бы более детально управлять выбраковкой сообщений.

Светлое будущее

Exchange Server 2007 дополнен рядом новых функций. Базовый механизм IMF остался в основном прежним, но работает как часть агента Content Filtering, компонента, функционирующего в серверной роли Hub Transport или Edge Transport, чтобы защитить сеть путем фильтрации сообщений по периметру сети.

В Exchange 2007 также появился механизм автоматического обновления набора фильтров IMF; интерфейс пользователя для подготовки специализированного словарного списка IMF; гибкий механизм для определения правил блокирования, карантина, трансляции или отклонения сообщений по таким критериям, как тема, размер присоединенного файла или тип, отправитель и получатель. Серверная роль Edge Transport может получать списки надежных и блокируемых отправителей из отдельных почтовых ящиков Outlook и объединять их для периметрической фильтрации. Имеется также множество более мелких настроек.

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

Поль Робишо (troubleshooter@robichaux.net) - главный инженер компании 3sharp, имеет сертификаты MCSE и Exchange MVP. Автор нескольких книг, в том числе The Exchange Server Cookbook (издательство O'Reilly and Associates) и создатель Web-узла http://www.exchangefaq.org.

Экран 1. Диалоговое окно Message Delivery Properties

Экран 2. Настройка механизмов фильтрации для виртуального сервера SMTP

Экран 3. Вкладка Recipient Filtering диалогового окна Message Delivery Properties

Экран 4. Задание действия, предпринимаемого в результате неудачной проверки Sender ID

Экран 5. Назначение порогов шлюза и хранения


Дополнительные ресурсы

Ресурсы Microsoft

"Sender ID Framework Overview"
http://www.microsoft.com/mscorp/safety/technologies/senderid/overview.mspx

"Sender ID Technology: Information for IT Professionals"
http://www.microsoft.com/mscorp/safety/technologies/senderid/technology.mspx

"Exchange Intelligent Message Filter Overview"
http://www.microsoft.com/technet/prodtechnol/exchange/downloads/2003/imf/overview.mspx

Загрузить руководство IMF v2 Operations Guide:
http://tinyurl.com/g9gsz