Александр Емельянов
Почтовое отделение для малого офиса:
OMS + SpamPal + MS Outlook
Почтовый сервер с фильтром спама и хранением архива писем, а в качестве платформы – Windows XP. Стабильная и быстрая работа многие месяцы без отказа, плюс эффективная защита от спама и быстрый поиск важных почтовых сообщений, утраченных пользователями. «Бред!», – скажете вы, глядя на заголовок статьи. Не торопитесь делать выводы.
Вспоминая статью [1], посвященную бесплатному почтовому серверу Office Mail Server, с жалостью отмечу, что поддержка и развитие проекта сошли на нет. Однако функционал его по-прежнему актуален, и малая требовательность к ресурсам компьютера вкупе со стабильной работой заставляют обратить на него внимание.
OMS верой и правдой служил в нашей компании почтовым голубем. Время шло, и запросы сотрудников компании менялись. Однажды, когда некое важное письмо было утеряно сотрудником, стало понятно, что есть необходимость иметь общий архив писем с быстрым поиском по заданным условиям. Благо, что общий поток электронной почты укладывался не более чем в 100 писем в день, включая спам. Количество почтового хлама росло с каждым днем.
Спам-фильтр сервера OMS лишь превращал борьбу со спамом в игру в кошки-мышки. Нужно было искать какие-то решения, и, как всегда, все должно было быть дешево, но качественно.
Собственно, почти все оказалось под рукой. В качестве хранителя почтового архива и программы, обеспечивающей быстрый поиск старых писем, был выбран всем известный MS Outlook, который входит в стандартный набор MS Office. Антиспам-фильтром была выбрана программа SpamPal. Для лучшего понимания всей схемы рассмотрим каждый компонент отдельно.
Office Mail Server
Чтобы понять принципы работы OMS, достаточно прочитать статью [1]. В нескольких словах, этот сервер имеет в себе перечень компонентов, обеспечивающих транспорт, сортировку и фильтрацию почтового потока: SMTP- и POP3-серверы, SMTP- и POP3-клиенты, сортировщик и фильтр спама, а также IP-фильтр, позволяющий разрешить или ограничить доступ к серверу, отдельному хосту или целой подсети.
Вкратце, схема взаимодействия такова. Имеется виртуальный почтовый домен, при упоминании которого в адресе получателя письмо «падает» в почтовый ящик компании, заведенный на сервере провайдера. POP3-клиент сервера OMS по расписанию забирает письма с этого ящика и при помощи сортировщика раскладывает их по папкам конечных получателей. Доступ к этим папкам осуществляется с помощью встроенного POP3-сервера, посредством которого клиенты получают предназначенные им письма. При отправке письма клиент подключается к встроенному SMTP-серверу, и его сообщение ставится в очередь на отправку. Затем SMTP-клиент, используя транспорт провайдера, отправляет письма из очереди по назначению.
SpamPal
Этот проект, аналогично OMS, не имеет полноценного развития уже несколько лет. Однако функциональность работы SpamPal заставляет рассматривать его как серьезного кандидата для борьбы со спамом. В качестве рабочей была использована версия 1.594 этого продукта, но есть и более свежие бета-версии.
Для фильтрации спама SpamPal использует так называемые DNSBL (DNS blacklists, «черные списки» DNS), которые используются провайдерами для блокировки почты с серверов, замеченных в рассылке спама. Попросту говоря, SpamPal, получая письмо из почтового ящика, делает запрос на наличие IP-адреса сервера отправителя в списке DNSBL, и, при положительном ответе помечает его как спам.
Помимо этого после включения фильтра RegEx (от regular expressions – регулярные выражения), есть возможность фильтровать почту по вхождениям слов. В помощь к этому можно использовать, например, новостную систему электронного журнала «Спамтест» (spamtest.ru) от Лаборатории Касперского. Каждую неделю они публикуют самые популярные тематики спама с примерами писем, на основе которых вы можете строить регулярные выражения для фильтрации. Нужно отметить, что SpamPal требует некоторого первоначального обучения, потому что спамом, по его мнению, вполне могут оказаться доверенные отправители.
После установки SpamPal является посредником между почтовой программой и сервером, с которого получается почта. Сортируя сообщения на ликвидные и спам, программа ничего не удаляет и оставляет право выбора конечному пользователю. Она лишь помечает сообщение, расцененное ей как спам, и пересылает его дальше. Практически все самые известные почтовые клиенты могут работать со SpamPal. Именно поэтому программа оказалась именно тем, что нужно. Напомню, что OMS имеет встроенный POP3-клиент и для транспорта почты от провайдера к ящику конечного получателя использует связку POP3-клиент – фильтр спама – POP3-сервер. Теперь мы добавляем еще одно звено.
Процесс установки SpamPal предельно прост, и его запуск в работу, при правильном понимании всех манипуляций, дело пары минут. Однако есть один нюанс. После установки программа работает только в контексте пользователя, то есть для ее запуска (пусть даже и автоматического) необходимо войти в систему. Но нас это не совсем устраивает, все должно функционировать независимо от того, был выполнен вход в систему или нет. Для решения этой задачи будем использовать утилиту WinService Manager [2]. Ее нужно запустить после установки SpamPal и указать имя сервиса, а также место расположения файла spampal.exe и рабочей папки. В результате наш спам-фильтр будет работать как сервис. Вдобавок к этому нужно удалить SpamPal из автозагрузки, куда он прописывает себя после установки.
Нужно отметить, что для первоначальной работы программа уже имеет минимальную конфигурацию. Поэтому зачастую пользователю, пытающемуся «прикрутить» антиспам к почтовому клиенту, достаточно следовать инструкциям соответствующего раздела руководства к программе [3]. Как настроить SpamPal для нашего случая, будет описано дальше.
Microsoft Outlook
Этот продукт в представлении не нуждается. Более того, существует большая вероятность, что у человека, который будет отвечать за архивацию почты, он уже установлен в составе MS Office. Я заострю внимание лишь только на нужных нам особенностях программы. Как уже говорилось, в нашей схеме он будет выступать хранилищем электронных сообщений и обеспечивать поиск необходимой корреспонденции.
Всю информацию MS Outlook хранит в PST-файлах (файлы личных папок). Причем это автономное хранилище, и его преспокойно можно перемещать с диска на диск и даже переносить на другой компьютер и работать с ним как на личной машине. Это первый плюс для нашей задачи. Второй плюс – PST-файлы могут быть сжаты как средствами Outlook, так и при помощи архиваторов. Для примера, файл личных папок размером 3 Гб может быть сжат архиватором WinRAR вдвое.
Поскольку PST-файлы будут содержать большое количество писем, то будет вполне уместным рассказать об ограничении размера этих файлов. На данный момент существует два формата этих файлов – ANSI и Unicode. Возможность создания файлов личных папок в формате Unicode появилась в MS Outlook 2003. Это позволило увеличить максимальный размер с 2 Гб (для формата ANSI) до 20 Гб (для формата Unicode). Однако существует одна проблема с использованием PST-файлов. При приближении к максимальному размеру файла личных папок MS Outlook начинает работать нестабильно. Рассмотрим параметры реестра, которые помогут не допустить этого.
Параметры реестра для указания максимального размера PST-файлов
Имя
|
Тип
|
Допустимый диапазон значений
|
По умолчанию
|
MaxLargeFileSize
|
REG_DWORD
|
0x00000001-0x00005000
|
0x0000500020480 (20 Гб)
|
WarnLargeFileSize
|
REG_DWORD
|
0x00000000-0x00005000
|
0x00004C0019456 (19 Гб)
|
MaxFileSize
|
REG_DWORD
|
0x001F4400-0x7C004400
|
0x7BB044002075149312 (1,933 Гб)
|
WarnFileSize
|
REG_DWORD
|
0x00042400-0x7C004400
|
0x744044001950368768 (1,816 Гб)
|
В таблице первые два параметра относятся к файлам в формате Unicode. Параметр MaxLargeFileSize служит для указания абсолютного максимального размера для файлов PST. По достижении этого размера увеличение файла прекращается. Параметр WarnLargeFileSize служит для указания максимального количества данных в файлах PST. После достижения этого предела добавление данных в файлы PST невозможно, однако физический размер файлов может увеличиваться из-за внутренних процессов.
Два следующих параметра относятся к файлам в формате ANSI. MaxFileSize, WarnFileSize – то же самое, что и параметры MaxLargeFileSize и WarnLargeFileSize соответственно. Приращение значений параметров для файлов в формате Unicode осуществляется в мегабайтах (Мб), а для файлов в формате ANSI – в килобайтах (Кб).
Значения данных параметров устанавливаются в реестре в следующих ветках:
Outlook 2003:
- HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\11.0\Outlook\PST;
- HKEY_CURRENT_USER\Software\Microsoft\Office\11.0\Outlook\PST.
Outlook 2007
- HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\12.0\Outlook\PST;
- HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Outlook\PST.
Если таких параметров не существует, их можно создать.
Собираем компоненты воедино
Для начала рассмотрим, как каждая программа должна быть настроена для построения задуманного, а затем уточним нюансы.
OMS является в этой схеме центральным звеном, с него и начнем. Для получения почты с ящика провайдера в настройках POP3-клиента должны быть указаны соответствующие параметры: имя или IP-адрес POP3-сервера провайдера, порт подключения (110 по умолчанию), данные авторизации, тайм-аут подключения, используемый сортировщик, спам-фильтр и др. Но помня о том, что между провайдером и нашим клиентом должен располагаться SpamPal для фильтрации спама, обратимся к руководству по его настройке [3]. В случае, когда SpamPal и почтовая программа (в данном случае ей выступает POP3-клиент OMS) находятся на одном компьютере, применяется следующая конфигурация. Вместо адреса POP3-сервера провайдера указывается 127.0.0.1, а в качестве номера порта должно быть указано число 110, но… На 110 порту на локальной машине ждет подключений POP3-сервер OMS, поэтому для исключения конфликта укажем другой номер порта, например 11010. Все остальное остается без изменений.
Далее обратимся к SpamPal. В настройках программы в пункте «Соединения» удаляем стандартные настройки и добавляем новый порт (стоит отметить, что если вы используете или будете использовать несколько POP3-клиентов OMS, то для каждого подключения нужно будет создать новый порт). На вкладке «Установки» отмечаем «Конкретное имя сервера» и указываем имя сервера провайдера и порт (в нашем случае 11010). Таким образом, используя авторизационные данные POP3-клиента OMS, SpamPal подключается к ящику, куда идет вся почта, забирает ее, проверяет каждое сообщение на принадлежность к спаму и передает далее клиенту. В случае, если письмо оказывается, по мнению SpamPal, спамом, оно не удаляется, но в тему письма добавляется «**SPAM**», а также добавляется заголовок «X-SpamPal:», в котором указывается фильтр, по мнению которого данное сообщение – спам.
Что касается MS Outlook, здесь все предельно просто. Напомню, что вся почта, проходящая через OMS, копируется в учетную запись, которая является архивной. Это задается опционально в настройках почтового сервера. Минус ее в том, что все письма хранятся в файловой системе в виде .eml-файлов в соответствующей архивному мейлбоксу папке. Это затрудняет оперативный поиск нужного электронного сообщения. Поэтому на машине, которая будет выступать репозиторием корпоративной почты, нужно в MS Outlook создать отдельный PST-файл, настроить учетную запись для доставки почты из архива. Одновременно можно создать правило, согласно которому письма из архива будут складываться в папку, например, с названием «Текущая почта». Также можно создавать еще PST-файлы, в которые будет перемещаться архивная почта из папки «Текущая почта». Допустим, каждый такой файл будет соответствовать году и содержать папки «1-й квартал», «2-й квартал» и т. д. Например, закончился первый квартал года, и вся текущая почта перекочевала в соответствующую папку. По окончании года можно получившийся PST-файл «отцепить» и скопировать на сервер до востребования. Все это поможет не только упорядочить весь корпоративный почтовый поток, но и ускорить поиск необходимой корреспонденции.
Итог
Что в итоге мы получим? Электронное сообщение, пройдя проверку на спам, доставляется на сервер OMS, а именно в папку получателя, а копия письма – в архивную папку. После этого письмо выкачивается почтовым клиентом и появляется у получателя. А копия письма «летит» в папку с текущей почтой и хранится в PST-файле.
Такая схема обеспечивает некоторую гибкость управления почтовым потоком. Так, например, администратор может отсеивать спам на сервере OMS при помощи встроенного спам-фильтра: копировать в специально созданный ящик или просто удалять. Либо предоставить право пользователям сортировать сообщения при помощи правил непосредственно на этапе получения почтовым клиентом.
Приложение
Замечания по SpamPal
- После создания порта будет лучше, если вы отметите в настройках опцию «Подавить сообщения об ошибках соединения у клиента». Иначе при частых запросах к серверу провайдера, отсутствующей связи SpamPal может буквально «захлебнуться» сообщениями об ошибках и «повиснуть». После чего, даже при восстановлении связи, входящий почтовый поток будет остановлен до тех пор, пока вы не перезапустите SpamPal.
- В той версии, которая описана в статье, есть ошибка в интерфейсе. Меню «Инструменты» содержит два подменю: «В черный список» и «В белый список». Они по смыслу перепутаны местами, то есть, выбрав добавление адреса или домена в черный список, вы на самом деле добавите его в белый список.
- Емельянов А. Организуем работу офисного почтового сервера на платформе Windows. //Системный администратор, №12, 2006 г. – С. 40-43 – http://www.samag.ru/cgi-bin/go.pl?q=articles;n=12.2006;a=02.
- http://winservice.ucoz.ru.
- http://www.spampal.org/manual-rus.