После официально затянувшегося новогоднего празднества мне выпало решать типичную для небольшого офиса задачу - настраивать раздачу почты сотрудникам. Поле хоженое-перехоженое, существует не один отработанный вариант, однако на сей раз ни один из них не подошел. Как я понял впоследствии – к счастью. Благодаря удачному стечению обстоятельств я открыл для себя уникальный во многих отношениях продукт мирового класса, автором которого является программист из Белоруссии Юрий Кучура.
Введение
Сердцем офисной сети является выделенный сервер на базе Windows 2000 Server, который тянет базы бухгалтерии, раздает Интернет сотрудникам и закачивает обновления законодательства по ночам.
Большинство администраторов подобных сетей выбирают почтовый сервер MDaemon – проверенное временем решение, обладающее широкими возможностями настройки. Однако за все нужно платить – особенно это справедливо для платформы Windows. Бюджет не предусматривал этих средств, а пользоваться наработками крякерских групп не хотелось по идейным соображениям. Ситуация просто обязывала искать бесплатную и достойную альтернативу.
Через полчаса поиска в Google стало ясно, что сходу проблему решить не получится – популярные почтовые серверы для Windows распространяются на коммерческой основе, а десятки бесплатных продуктов носят ничего не говорящие слуху имена, из чего напрашивается вывод о маргинальности подобного выбора.
Видимо, не я первый пытался разрубить сей гордиев узел.
Мой сервер явно содержал следы различных исторических эпох, что побудило прибегнуть к археологическим раскопкам. В результате нашелся почтовик Office Mail Server 0.7.26 (далее по тексту OMS) – выбор предыдущего администратора, который и трудился на ниве доставки почты, пока не заглючил окончательно.
Оконный интерфейс программы был несколько запутанным, следить за ее работой было затруднительно, но главное и несомненное достоинство перевешивало все сомнительные недостатки – она работала. Пусть и не без некоторых огрехов.
Здраво прикинув, что ошибки и недочеты могли быть исправлены в новой версии, я ринулся в Сеть на поиски. С трудом нашел-таки новый дистрибутив OMS 0.8.10 размером 400K в какой-то тьму-таракани по адресу
http://www.classcom.by/oms
(кстати, много жемчужин хостится в совершенно неприспособленных местах – например, на всенародно любимом www.narod.ru), установил на машину и обнаружил… совершенно другую программу!
Она не другая, она иная
Интерфейс OMS отныне заточен под прямые руки настоящего системщика. Нет, опыт компиляции ядра Linux здесь не поможет. Все гораздо проще – продуманный конфигурационный файл явно рассчитан на тех, кому нужен быстрый старт без кропотливого изучения различных HOWTO. Несмотря на то, что программа лишилась оконного интерфейса и иконки в трее (что явно не понравится некоторой части пользователей, привыкших к визуальному конфигурированию), благодаря цельности новой концепции этот факт может только порадовать постоянных пользователей.
Хороший стиль прослеживается во всех элементах программы – начиная от структуры конфигурационного файла, и кончая цветным текстовым интерфейсом, который напомнил мне о днях расцвета ФИДО и консольных программ для “сети друзей” – пожалуй, именно в то время были доведены до блеска все принципы взаимодействия человека и машины при помощи клавиатуры и экрана.
Очень удобно организовано хранение писем. OMS создает папки для входящей корреспонденции каждого пользователя и одну общую папку для исходящей почты. Каждое сообщение, хранимое в этой базе, представляет собой eml-файл, работа с которым возможна из любого почтового клиента. Разумеется, для администратора таким клиентом может стать и встроенный текстовый редактор FAR!
Как было сказано в самом начале, автором программы является наш земляк по exUSSR – Юрий Кучура из Белоруссии. История появления OMS довольно типична для многих софтверных проектов, родившихся на постсоветском пространстве – написанная изначально “для себя” и “на коленке”, программа быстро обрела популярность благодаря целой радуге замечательных свойств: компактности, бесплатности и безупречной работе.
По словам автора, программа распространяется как freeware не только по идеологическим соображениям. Несмотря на то, что предложения о коммерческом сотрудничестве приходят регулярно, как из России, так и из Европы, разговор обычно недолог - в Белоруссии очень тяжело вести коммерческую деятельность…
Ох уж эти настройки…
Файл настроек программы OMS представляет собой легко читаемый и модифицируемый текстовый файл, снабженный множеством комментариев на русском языке (согласитесь, подобное встречается не часто). Он разбит на несколько секций, в которых сгруппированы настройки одного типа.
Начнем с самых общих настроек, расположенных в секции [GENERAL]. Здесь необходимо задать название локального домена. Это имя может совпадать с именем внешнего домена (доступного из Интернет), если таковой имеется.
В этой же секции необходимо указать адрес электронной почты, который автоматически будет подставляться в сообщения которые проходят через почтовый сервер транзитом. В этом случае OMS работает как узел-релей, который просто передает письмо по цепочке.
Совершенно необходимо установить параметр queuelocal (то есть задать единичное значение) если у организации имеется внешний домен, название которого совпадает с установленным в настройках программы локальным доменом.
Дело в том, что OMS достаточно умен для того, чтобы осуществлять локальную доставку сообщений, то есть в случае, если один пользователь офиса написал другому, письмо не выйдет за пределы локальной сети. Очевидно, что это может приводить к недоразумениям, например если письмо адресовано пользователю в том же домене, но находящемся, скажем, в другом филиале, и не доступном через механизм локальной доставки.
[GENERAL]
localdomain = "firma.ru"
pop3relayer = "relay@firma.ru"
queuelocal = "1"
После установки общих параметров целесообразно определить правила фильтрации трафика, что особенно актуально для сетей с широкополосным выходом в Интернет. Вы ведь не хотите, чтобы Вашим почтовым сервисом “случайно” воспользовался нехороший спаммер?
А раз так, в конфигурационный файл целесообразно внести запись вроде:
[IPFILTER "Default"]
u = "127.0.0.1 255.255.255.255"
u = "192.168.0.0 255.255.0.0"
Блок подобного вида позволит работать с почтовым сервером только компьютеру, на котором он запущен (так называемый localhost) и станциям, находящимся в той же локальной сети (в примере предполагается, что IP-адреса находятся в наиболее употребительном диапазоне 192.168.x.x).
После настройки фильтров разумно определиться с временными интервалами, в рамках которых OMS будет принимать почту с внешних POP3-серверов и отправлять ее на указанный внешний SMTP-сервер (например, сервер вашего провайдера) для дальнейшей пересылки адресату.
В моем случае это происходит в режиме нонстоп – семь дней в неделю, двадцать четыре часа в сутки, через каждые пять минут:
[SCHEDULE "Default"]
s = "0 00 01 23 59 5"
s = "1 00 01 23 59 5"
s = "2 00 01 23 59 5"
s = "3 00 01 23 59 5"
s = "4 00 01 23 59 5"
s = "5 00 01 23 59 5"
s = "6 00 01 23 59 5"
После определения ip-фильтров, можно взяться за настройку параметров pop3– и smtp– серверов, которые обеспечат локальный прием и передачу почты. Номера соответствующих портов уже установлены по умолчанию, необходимо лишь указать фильтр, в соответствии с которым будет приниматься решение о разрешении или запрещении подключения к серверу.
Очень важный момент – если не указать ни один валидный фильтр, пользователи почты просто не смогут получить доступ к почтовому серверу!
[POP3SRV]
port = "110"
ipfilter = "Default"
[SMTPSRV]
port = "25"
ipfilter = "Default"
Перейдем теперь непосредственно к нашим “баранам”, то есть пользователям почты.
OMS обладает достаточно широкими возможностями настройки параметров, например, позволяет задавать размер почтового ящика. Неплохая возможность, которая могла бы заинтересовать администратора почтового сервера на сотню-другую пользователей. Нас же интересует офисный вариант, для которого необходимо иметь представление лишь о следующих параметрах – логине и пароле пользователя для доступа к OMS. Задается эта пара записью следующего вида:
[USER "pupkin"]
password = "qwerty"
Очевидно, что хранить пароль открытым текстом на Windows-машине смерти подобно. Поэтому программа предусматривает возможность хранения пароля и в зашифрованном виде. В этом случае указанная запись будет иметь вид:
[USER "pupkin"]
b64password = "cXdlcnR5"
Узнать шифрованный пароль по прямому довольно просто – во время запуска OMS создает файл с дампом конфигурационного файла, в котором пароли хранятся именно в зашифрованном виде. Таким образом, можно сначала задать пароли открытым текстом, а после запуска программы и создания дампа взять из него все пароли в безопасном виде.
Необходимо упомянуть про настройку параметров пользователей, почтовые ящики которых находятся на ином домене, название которого не совпадает с локальным. Для них необходимо ввести параметр alias, который будет подставляться в качестве обратного адреса при отправке почты:
[USER "petrova"]
b64password = "FpZnORnATa=="
alias = "petrova@male.ru"
После добавления в конфигурационный файл информации обо всех пользователях системы, необходимо настроить правила сортировки сообщений. Это необходимая и очень мощная возможность по управлению входящей корреспонденцией.
В самом простом варианте сортировка работает очевидным образом: сообщение, пришедшее на адрес определенного пользователя, попадает в его почтовый ящик. Подобный алгоритм реализуется так:
[RULE "pupkin"]
field = "to"
contains = "pupkin@firma.ru"
deliver = "pupkin@firma.ru"
А вот так выглядит правило для сортировки сообщений пользователей, имеющих почтовые адреса на внешних серверах:
[RULE "petrova"]
field = "to"
contains = "petrova@mail.ru"
deliver = "petrova@firma.ru"
Переходим к самой ответственной части – настройке pop3– и smtp– клиентов, которые обеспечат прием и отправку почты на внешние почтовые серверы, находящиеся в сети Интернет.
Большинство параметров секции [POP3CL] уже имеют установки по умолчанию. Нам остается указать только значения, которые специфичны именно для нас – название внешнего почтового сервера, логины и пароли, по которым происходит работа, правила сортировки и расписание работы.
Обратите внимание на параметр flagwork, который указывает имя файла-семафора, создаваемого при активизации клиента. Необходимо следить за тем, чтобы эти имена у клиентов не совпадали, в противном случае невозможна корректная работа!
[POP3CL]
server = "mail.firma.ru"
port = "110"
login = "pupkin"
b64password = "cXdlcnR5"
schedule = "Default"
sorter = "pupkin"
flagwork = "pupkin_pop3_works"
[POP3CL]
server = "male.ru"
port = "110"
login = "petrova"
b64password = "FpZnORnATa=="
schedule = "Default"
sorter = "petrova"
flagwork = "petrova_pop3_works"
Наконец, секция [SMTPCL] описывает параметры клиента smtp – модуля, который будет передавать почту в Интернет. Здесь необходимо обратить внимание на те же параметры, что и для pop3-клиента.
[SMTPCL]
server = "mail.firma.ru"
port = "25"
schedule = "Default"
login = "postmaster@firma.ru"
b64password = "sl87DjweR90x=="
flagwork = "postmaster_smtp_works"
Естественно, в рамках обзорной статьи невозможно рассказать про все возможности по настройке.
Остался в стороне spam-фильтр, который кому-то может очень и очень пригодиться а также встроенный web-сервер, который обеспечивает правку паролей пользователей на лету. При необходимости любой же-лающий сможет задействовать данные модули, пользуясь примерами конфигурационного файла, идущего с программой.
Поехали!
Наконец-то мы можем перейти к самому вкусному – запустить программу и насладиться ее работой.
Office Mail Server умеет работать на благо страны в двух режимах: как консольное приложение или служба.
Первый режим можно активировать, запустив программу с ключом /run:
oms.exe /run
Этот вариант примечателен тем, что позволяет следить за работой программы в реальном времени, по цветным сообщениям, выводимым на экран. При этом зеленый цвет означает нормальную работу, желтый привлекает внимание, а красный сигнализирует о том, что что-то идет не так.
Убедившись, что программа работает корректно, можно запускать OMS как сервис – данная возможность активизируется ключом /install:
oms.exe /install
Office Mail Server установится в качестве сервиса операционной системы, запускаемого автоматически, по-сле чего администратор может спокойно “забыть” о его существовании.
Никто не забыт, ничто не забыто…
О том, что новая версия OMS поддерживает исключительно текстовый интерфейс, речь шла в начале статьи. Однако работа с текстовыми конфигами придется по душе далеко не всем. Просматривать логи программы из Блокнота – тоже занятие не из увлекательных. Но любители сладкого оконного интерфейса все-таки не останутся внакладе, потому
что в дистрибутив этой замечательной программы включена утилита oms_view Игоря Карпекина, которая позволяет отслеживать ход работы и манипулировать абсолютно любыми настройками привычным способом – через систему диалоговых окон.
Вдаваться в подробности работы этой утилиты не буду, так как разобраться с ней не составит труда, поэтому приведу лишь пару скриншотов, которые помогут составить представление об этом визуальном средстве для работы с
OMS.
Заключение
В локальной сети офиса около десятка машин, на каждой из которых установлен почтовый клиент, работающий с несколькими почтовыми ящиками. Простые прикидки позволяют вычислить поток почты, обрабатываемой OMS – несколько тысяч сообщений в месяц.
После установки и настройки программы прошло два месяца. Шедевр из Белоруссии показал себя с лучшей стороны – письма ходят исправно, ни одно не потерялось, не продублировалось, не исказилось.
Заглянуть в конфигурационный файл пришлось лишь недавно – в процессе подготовки статьи. Все остальное время Office Mail Server, запущенный как сервис, молча и добросовестно выполнял свою работу. А это лучшая похвала серверу и его автору.
Сергей Гоцуляк,
Начальник технического отдела ООО “ЦЕНТР”