четверг, 16 декабря 2010 г.

Фильтрация вложений на Edge-сервере

imageВ прошлой статье поднималась тема ограничения размера сообщений пересылаемых пользователями организации Exchange 2010. Тема достаточно интересная и хочется её продолжить обсуждением вопроса фильтрации вложений. Как мы все понимаем, ограничить размер вложений часто бывает не достаточно, необходимо также контролировать сам контент, пересылаемый пользователями.

Транспортные агенты

Фильтрация пересылаемых вложений в Exchange 2010 осуществляется только на пограничных транспортных серверах (Edge) при помощи встроенных транспортных агентов. В данном случае применяется Attachment Filtering Agent. По умолчанию, на Edge северах данный агент включен, чтобы проверить его статус необходимо выполнить команду:

Get-TransportAgent

Если агент оказался отключенным, то перевести его в активное состояние можно командой:

Enable-TransportAgent “Attachment Filtering Agent”

И перезапустить службу транспорта:

net stop MSExchangeTransport

net start MSExchangeTransport

clip_image002

Рис.1: Активация транспортных агентов.

Примечание: Если у вас есть несколько Edge серверов, то включать и настраивать транспортные агенты необходимо на каждом из них по отдельности.

Типы фильтрации

Активировав агент фильтрации вложений, давайте определимся, какие именно типы фильтрации у нас есть в наличии. При помощи агента можно фильтровать вложения на основе:

  • Имени или расширения файла – можно указать как имя, например «dogovor», так и расширение файла, например «*.doc» или все вместе – «dogovor.doc». Делается это при помощи команды:

Add-AttachmentFilterEntry -Name *.doc -Type FileName

  • MIME-типа содержимого – при пересылке сообщений, вложения конвертируются в формат MIME, при этом типы содержимого обозначаются как type/subtype, например для JPEG-изображений это выглядит следующим образом - image/jpeg. Подобный фильтр устанавливается при помощи команды:

Add-AttachmentFilterEntry -Name image/jpeg -Type ContentType

Агент Attachment Filtering Agent уже имеет набор предустановленных фильтров, просмотреть их список можно командой:

Get-AttachmentFilterEntry | fl

Действия

К отфильтрованному содержимому, при помощи командлета Set-AttachmentFilterListConfig можно применить одно из следующих действий:

  • Блокирование сообщения и вложения — блокируется сообщение вместе с вложением, при этом отправитель получает уведомление, в котором фигурирует имя отфильтрованного файла. Устанавливается параметром –Reject;
  • Удаление сообщения и вложения без уведомления — аналогично предыдущему, только уведомление отправителю не посылается. Устанавливается параметром –SilentDelete;
  • Удаление вложения без блокирования сообщения — удаляется конкретное вложение, на место него помещается текстовый файл с описанием причины блокировки. Это действие установлено по умолчанию. Устанавливается параметром –Strip.

Примечание: Все, что было удалено фильтром, вернуть не получиться!

Существуют ещё два дополнительных параметра:

  • RejectResponse — этот параметр определяет строку ответа, которая включается в сообщение отчета о недоставке, если сообщение с блокированным вложением возвращается отправителю.
  • ExceptionConnectors — этот параметр указывает список соединителей, которые необходимо исключить при фильтрации вложений. Фильтры вложений не применяются к сообщениям электронной почты, полученным от этих соединителей.

В итоге, результирующий командлет может выглядеть примерно следующим образом:

Set-AttachmentFilterListConfig -Action Reject -RejectResponse "The attachment you included in your e-mail message was not allowed. Your e-mail message cannot be delivered. Please remove the e-mail attachment, and send your message again."

Заключение

Я считаю, что правильно настроенные транспортный агент Attachment Filtering Agent может стать хорошим дополнением к существующей антивирусной защите предприятия. Главное, не забывайте, что восстановить удаленное фильтром содержимое невозможно.

20 комментариев:

Лёха комментирует...

Отличная статья, очень помогла, спасибо Вам. Только Вам надо исправить Set-AttachmentFilterListConfig -Action Reject -RejectResponse

Алексей Богомолов (Alexx) комментирует...

Поправил, спасибо за внимательность.

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

> ConnectorException — этот параметр указывает список соединителей, которые необходимо исключить при фильтрации вложений

А какой командой включить коннектор в список фильтруемых?

Алексей Богомолов (Alexx) комментирует...

Тут конечно же закралась просто опечатка, должно быть не ConnectorException, а ExceptionConnectors.
В статье поправил.

Алексей Богомолов (Alexx) комментирует...
Этот комментарий был удален автором.
Алексей Богомолов (Alexx) комментирует...

Тут правильнее сказать - фильтрация _для_ коннектора. Тут все просто - в озвученную в статье команду добавляете параметр ExceptionConnectors и указываете для него GUID своего коннектора, выглядеть это будет примерно так:
Set-AttachmentFilterListConfig -Action Reject -ExceptionConnectors GUID
ЗЫ GUID вам покажет команда Get-Receiveconnector | fl

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

С выключением фильтрации для коннектора всё понятно, спасибо, здесь нет вопросов.
Может быть вам известна команда, которая ВКЛЮЧАЕТ фильтрацию для коннектора?

Алексей Богомолов (Alexx) комментирует...

Команда указанная выше включает фильтрацию для всех. Следовательно, чтобы вам включить только для одного, надо включить для всех и добавить в исключения все коннекторы, кроме одного.

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

> Команда указанная выше включает фильтрацию

Не включает же, а ВЫКЛЮЧАЕТ.

> Следовательно, чтобы вам включить только для одного, надо включить для всех и добавить в исключения все коннекторы, кроме одного.

А если для коннектора уже отключена фильтрация, то вернуть никак нельзя без пересоздания коннектора?

Алексей Богомолов (Alexx) комментирует...

С чего вы взяли что ВЫКЛЮЧАЕТ?
Давайте ещё раз разберемся:
1. ВКЛЮЧАЕМ агента
Enable-TransportAgent “Attachment Filtering Agent”
2. Смотрим параметры агента:
Get-AttachmentFilterEntry | fl
3. Если что-то попадает по его действие, то настраиваем поведение:
Set-AttachmentFilterListConfig -Action Reject -RejectRespons .....
Данное поведение будет распространяться на контент пришедший со всех коннекторов. Если нужно исключить какой-то коннектор, то добавляем параметр -ExceptionConnectors GUID к последней команде.
Что не так?

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

Простите великодушно, попробую ещё раз объяснить, какой командой интересуюсь.

Выключает фильтрацию для коннектора с указанным GUID вышеприведённая команда:
Set-AttachmentFilterListConfig -Action Reject -ExceptionConnectors GUID

Рассмотрим ситуацию, что мы отключили для этого коннектора фильтрацию указанной командой. В этой ситуации, собственно, меня и интересует - можно ли для того же коннектора фильтрацию вернуть? Сам я help по Exchange перелопатил, но команды, возвращающей фильтрацию для коннектора, который был исключён из фильтрации командой Set-AttachmentFilterListConfig - не нашёл. Вот и обратился, собственно, к вам - может быть вы в курсе способа возвращения фильтрации для коннектора без пересоздания коннектора?

Алексей Богомолов (Alexx) комментирует...

ААААА :) просто мы не поняли друг-друга...
Рискну предположить, что если выполнить ещё раз команду Set-AttachmentFilterListConfig -Action Reject -RejectRespons ... без ключа ExceptionConnectors, то данная настройка будет пересоздана для всех коннекторов, в.т.ч. для тех, которые исключены были ранее.
Сам я так не пробовал, но логично предположить, что работать должно... Посмотрите, пожалуйста и расскажите о результатах.

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

Так уже пробовали, конечно.
После команды:
Set-AttachmentFilterListConfig -Action Reject -ExceptionConnectors GUID
Давалась команда:
Set-AttachmentFilterListConfig -Action Reject
Ответом Exchange было: "Команда выполнена успешно, но параметры 'Transport Settings' не были изменены".
И коннектор остаётся в ExceptionConnectors, если смотреть ч/з get-AttachmentFilterListConfig.

Алексей Богомолов (Alexx) комментирует...

используйте команду
Set-AttachmentFilterListConfig -ExceptionConnectors $Null

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

Команда сняла исключение на коннекторе. Спасибо большое!

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

а можно ее использовать для multi tennant exchange для определенной организации?

ړײ) комментирует...

Добрый день!
Алексей, не подскажите, каким образом можно настроить фильтрацию вложений отправляемых группой пользователей? Т.е., например: Бигбоссы - отправляют любые вложения, манагеры - не могут отправить вообще никаких вложений, HR - отправляет только вложения *.docx, и т.д.

Да, к этому прилагается глупый вопрос - как сделать это без EDGE-сервера :)

Алексей Богомолов (Alexx) комментирует...

К сожалению для вашей задачи у меня нет готового решения.

Анонимный комментирует...

Алексей Может вы поможете дать совет? У нас есть EDGE Сервер. Attachment Filter на нем блокирует запароленный ZIP архив в котором есть файл EXE и при этом пропускает запароленный ZIP архив в котором находиться txt файл. Можно ли для Attachment фильтра настроить белый список или настроить список типов файлов которые проверяются именно внутри архивов? чтобы не отключать проверку ZIP для всех файлов?

Алексей Богомолов (Alexx) комментирует...

Можно просто не блокировать *.EXE файлы. Не проверять какие-то типы файлов именно внутри архивов нельзя.

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