Краткий обзор бесплатных IMF приложений, позволяющих администратору отслеживать заблокированные письма, просматривать их, возвращать в очередь и многое другое
Введение
Интеллектуальный фильтр сообщений (IMF) был разработан, как простой анти-спам фильтр для Exchange 2003. По сравнению с другими подобными пакетами, IMF не имеет гибких настроек. Это значит, что администратор устанавливает общий уровень доверия к почте, но не имеет возможности настроить пропуск определённых сообщений, ошибочно считающихся спамом.
Тем не менее, IMF хранит заблокированные письма в архивной папке, которую можно просматривать и по которой можно осуществлять поиск. Соответственно, вы можете либо проверять сообщения вручную, либо использовать один из свободно доступных сторонних менеджеров для архивов IMF.
Подготовка
Сначала необходимо настроить IMF так, чтобы он сохранял письма, а не удалял или отбрасывал их.
Архивная папка обычно находится в «program files\exchsrv\mailroot\vsi \UceArchive», где — это номер VSI, на который настроен IMF фильтр. Если вы слишком много не экспериментировали с вашим сервером, то номер VSI скорее всего равен единице.
Рекомендуется переместить эту папку на больший диск, т.к. спам имеет тенденцию быстро накапливаться со временем.
Чтобы изменить месторасположение директории, найдите в реестре следующий ключ:
HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\ContentFilter
Добавьте к этому ключу строковую переменную ArchiveDir, содержащую путь к папке. Например, «E:\Archive».
Также имеет смысл создать скрипт, который будет удалять устаревшие файлы:
'начать поиск с данной папки
path = "c:\program files\exchsrvr\mailroot\vsi 1"
'удалять файлы старше семи дней
killdate = date() - 7
arFiles = Array()
set fso = createobject("scripting.filesystemobject")
'Ничего не удаляем, пока пробегаем по возвращенному набору файлов.
'Набор может быть перемешан.
'Создаём массив файловых объектов, чтобы этого избежать
SelectFiles path, killdate, arFiles, true
nDeleted = 0
for n = 0 to ubound(arFiles)
on error resume next 'in case of 'in use' files...
arFiles(n).delete true
if err.number = 0 then
nDeleted = nDeleted + 1
end if
on error goto 0
next
sub SelectFiles(sPath,vKillDate,arFilesToKill,bIncludeSubFolders)
on error resume next
' добавляем файлы на удаление в массив
'
set folder = fso.getfolder(sPath)
set files = folder.files
for each file in files
' на всякий случай отслеживаем ошибки доступа к
' свойству Date
'
dtlastmodified = null
on error resume Next
dtlastmodified = file.datelastmodified
on error goto 0
if not isnull(dtlastmodified) Then
if dtlastmodified count = ubound(arFilesToKill) + 1
redim preserve arFilesToKill(count)
set arFilesToKill(count) = file
end if
end if
next
if bIncludeSubFolders then
for each fldr in folder.subfolders
SelectFiles fldr.path,vKillDate,arFilesToKill,true
next
end if
end sub
Для еженедельного запуска, скрипт следует добавить в планировщик задач. (в данном случае запуск лучше сделать ежедневным, чтобы избежать наличия «почти двухнедельной» почты непосредственно в конце периода. -прим. пер.) Пробегая поддиректории, он удаляет всю старую почту и из папки «Bad mail» в частности. Это рекомендуется по вполне понятным причинам, хотя и не относится к теме статьи.
Подробности
Папка «UceArchive» (или другая, которую вы выбрали для очередей IMF) заполняется файлами с расширением EML — почти как обычная SMTP очередь. Просмотреть эти файлы можно блокнотом, а двойной клик на них обычно открывает Outlook Express, что позволяет в удобном формате видеть не только сами письма, но и вложения в них. Для нахождения определённого блока текста можно использовать стандартный поиск.
Просмотрев файлы, можно удалить их, как только они разблокируются. Также возможно перемещение письма обратно в очередь — в папку «c:\program files\exchsrvr\mailroot\vsi 1». Эту папку используют IIS/Exchange для хранения писем перед их рассылкой. Не перемещайте письмо в очередь, если вы не изменили настроек IMF или не обновили его — иначе оно снова окажется в папке архива IMF.
IMF менеджеры предоставляют графический интерфейс для указанных выше действий.
IMF Archive Manager
Эту утилиту, написанную на C#, можно скачать отсюда:
http://www.gotdotnet.com/workspaces/workspace.aspx?id=e8728572-3a4e-425a-9b26-a3fda0d06fee
Никаких инсталляторов, иконок или чего-то ещё не предоставляется — после распаковывания необходимо найти и запустить exe-файл.
При старте Archive Manager спросит местонахождение папки архива IMF и начальной очереди почтовика (pickup directory).
К счастью, утилита сохраняет введённые данные и не требует повторного их ввода при следующих запусках.
IMF Archive Manager позволяет просматривать SCL рейтинги сообщений — можно узнать больше о механизме блокировки почты IMF. Анализ данных рейтингов может подтолкнуть к изменению настроек фильтра в ту или иную сторону.
Как вы видите, окно SCL сообщений изначально пусто — необходимо настроить IMF так, чтобы фильтр сохранял письма вместе с их рейтингом. Для этого найдите в реестре ключ:
HKEY_LOCAL_MACHINE\Software\Microsoft\Exchange\ContentFilter
И добавьте поле «ArchiveSCL» типа DWORD со значением «1».
После совершения данной операции, можно будет видеть, к какому уровню SCL было отнесено сообщение, и насколько IMF «уверен» в том, что данное письмо является спамом. Для просмотра SCL рейтингов всех сообщений прокрутите левое окошко вправо. Тут особенно заметно слабое место интерфейса менеджера — вы не можете расширить окно до нужных размеров.
Утилита также имеет возможность отсылать попавшую в архив почту на какой-либо внешний SMTP сервер.
IMF Companion
Эту утилиту можно сказать здесь:
http://stoekenbroek.com/imfcompanion.htm
В отличие от IMF Archive Manager, Companion распространяется в виде msi дистрибутива и имеет собственную иконку для рабочего стола. Графический интерфейс здесь намного лучше, информация представлена в более читабельном виде с несколькими функциональными кнопками.
Также доступна полезная возможность поиска по полям «To:», «From:» и т.п. (вызывается нажатием на кнопку с изображением бинокля).
Однако утилита не работает с SCL, и отсутствует возможность пересылки сообщений, имеющаяся в IMF Archive Manager.
Чего не хватает?
Далее идёт список возможностей, которыми, по моему мнению, должен обладать IMF менеджер:
— Автоматическое определение директорий
Это не такая сложная программистская задача — необходимо заглянуть в IIS Metabase и реестр.
— Доставка сообщений
Вместо того, чтобы возвращать письмо в очередь, можно просто доставить его в почтовый ящик. Для этого есть несколько методов: MAPI, WebDAV, SMTP.
— Просмотр html-сообщений
Ничто не сравнится с OE, отображающим сообщения в соответствии с содержимым HTML кодом. Простейший путь — использоваться OE для просмотра сообщений.
— Статистика
Всегда приятная вещь. Как на счёт графиков?
В конечном счете, Microsoft возможно добавит эти функциональности в Exchange System Manager, скорее всего, с одним из сервис-паков к Exchange 2003.
Заключение
IMF Companion кажется более удачным приложением к IMF из двух рассмотренных (при условии, что вам не необходима работа с SCL). Но я думаю, что можно написать автору с просьбой добавить и их поддержку.
Вы вряд ли получите возможности сложных и дорогих анти-спам фильтров (ежедневное обновление, белые списки). Но при правильном применении IMF может сослужить неплохую службу в качестве бюджетного решения или, возможно, в качестве метода оценки эффективности другой системы.