Антивирусная защита
Поскольку электронная почта — самый распространённый на сегодня способ размножения вирусов, всякий уважающий себя почтовый сервер предлагает средства для анализа и блокировки вредоносных программ. Почтовый сервер Eserv предоставляет две возможности — подключение антивирусной проверки в качестве внешней процедуры через универсальный обработчик tossspool.bat либо проверку почты с помощью интегрированного в Eserv антивирусного ядра.Подключение внешнего антивируса
Предупреждаю сразу: это решение "для бедных" или на случай каких-либо экзотических ситуаций — например, сугубой необходимости применения антивируса, не поддерживаемого Eserv. Во-первых, его использование приводит к повышенному расходу ресурсов компьютера, что отрицательно сказывается на обработке больших потоков почты. Во-вторых, некоторые версии некоторых антивирусов по этой схеме не заработают вообще просто в силу особенностей своего устройства. Наконец, этот вариант, мягко говоря, не приветствуется антивирусными компаниями. Формально они правы — при оплаченной клиентской лицензии программа нашла серверное применение, каковое ("согласно закону и обычаю", как любят выражаться в гражданских обществах Дикого Запада) оценивается существенно дороже — как минимум, раз в десять. Поэтому, во избежание всех перечисленных неприятностей, рекомендуется загодя приобрести лицензию на использование интегрированного антивируса (который, впрочем, вполне можно использовать и в демонстрационном режиме при условии грамотного учёта возникающих при этом ограничений).Рассмотрим типовое готовое решение, которое в виде архива antivirus_avp.zip можно загрузить с сервера ftp.eserv.ru. Оно ориентировано на применение антивирусного сканера Лаборатории Касперского, хотя это и не важно — "главная задача наших дней" состоит в том, чтобы понять сам принцип обработки писем с помощью командного файла tossspool.bat. По этой же причине опущено рассмотрение разного рода тонкостей и подводных камней — их Вы найдёте в главе Готовые решения. Естественно, применять необходимо полнофункциональные версии антивирусных сканеров, поскольку в демонстрационном режиме большинство антивирусов имеют жёсткие ограничения в работе — так, например, Dr.Web производства Санкт-Петербургской антивирусной лаборатории Данилова не проверяет почтовые форматы (так что применять его по описываемой схеме при отсутствии лицензии вообще не имеет смысла), архивы и упакованные файлы.
Сначала создаётся необходимая структура каталогов. Помимо обязательного mail\spool\to_check в каталоге установки Eserv создаётся каталог check и в нём подкаталог vir. Далее раскладываются необходимые файлы — это обязательный tossspool.bat в каталоге agents и testvir.bat, который помещается в каталог check. Tossspool.bat имеет следующее содержание:
for %^^^^%f in (mail\spool\to_check\*.*) do call check\testvir.bat %^^^^%f то есть, вся его функция сводится к вызову файла testvir.bat с передачей ему в качестве аргумента имени очередного обнаруженного в проверяемом каталоге файла. Сделано так потому, что большинство антивирусов никаких действий с заражёнными письмами не производят — они только проверяют файл и устанавливают код завершения, на основании которого командный файл может предпринимать различные действия. Dr.Web начиная с версии 4.28 может самостоятельно перемещать заражённые письма и архивы — пример эффективного использования этой его способности приведён в главе Готовые решения. В большинстве же случаев приходится проверять каждый файл отдельно, что приводит к существенному замедлению работы, поскольку запуск антивирусного сканера выполняется столько раз, сколько файлов приходится проверять.
Командный файл testvir.bat имеет следующее содержание:
echo "c:\eserv2\%1" >> testvir.log---"C:\Program Files\Kaspersky Lab\AVP Pro\~Avp32.exe" "c:\eserv2\%1" /S /N /Q---if ERRORLEVEL 2 goto virus---if ERRORLEVEL 3 goto virus---if ERRORLEVEL 4 goto virus---goto endtest---:virus---move %1 CHECK\VIR\---:endtest---move %1 mail\spool\
Здесь предполагается, что Eserv установлен в каталог C:\eserv2, а антивирусный сканер — в каталог C:\Program Files\Kaspersky Lab\AVP Pro (в исходном файле путь несколько другой, очень уж длинный) под именем ~Avp32.exe. Если пути отличаются, их необходимо поправить. Первой строкой в файл протокола testvir.log, который создаётся прямо в каталоге установки Eserv, записывается имя проверяемого файла. Далее файл предъявляется для проверки антивирусному сканеру. По результатам этой проверки файл письма перемещается либо в каталог карантина check\vir, где и будет храниться, пока у администратора не дойдут до него руки, либо для дальнейшей обработки в mail\spool.
Несложно, зная возможности почтового агента smtpsend и формат письма, добавить сюда отправку извещения о поимке вируса администратору. Начиная с версии 2.98 в поставку Eserv также входят шаблоны и конфигурационные файлы для агента erobot, предназначенные для работы с интегрированным антивирусом, их можно приспособить и для рассматриваемой схемы. Например, так:
agents\erobot.exe -c agents\av.cfg -p1 "Name not available" -p2 domain.ru -i "%1"
В качестве параметра ключа -p2 указывается Ваш почтовый домен, ключ -p1 предназначен для передачи имени обнаруженного вируса, которое в данной ситуации действительно недоступно. Стандартный вариант конфигурационного файла av.cfg и набор шаблонов обеспечивают отсылку извещений отправителю и получателю, извещение же администратора придётся подключать самостоятельно.
Проверка интегрированным антивирусом
При большом потоке писем регулярные запуски антивирусного сканера существенно загружают систему — настолько, что почтовый сервер может захлебнуться проходящей почтой. Поэтому начиная с версии 2.98 в Eserv введена возможность проверять почту интегрированным антивирусом, что заметно снижает нагрузку на систему. На сегодняшний день поддерживаются ядра KAV от Лаборатории Касперского, Dr.Web от Санкт-Петербургской антивирусной лаборатории Данилова, Stop! от украинской Proantivirus Lab и Украинский Национальный Антивирус (UNA) от Украинского Антивирусного Центра, причём поддержка двух последних появилась уже в версии 2.99. Подключаемые библиотеки антивирусных ядер располагаются в строго определённом месте — каталоге antivirus, каждому антивирусу отведён свой подкаталог — соответственно, kav, drweb, stop и una. Eserv позволяет без перезапуска выбирать используемый антивирус или вообще отключать проверку.Параметры антивирусной проверки настраиваются в специальной секции интерфейса, так и называемой — Антивирус. Непосредственно в этой секции присутствует один параметр.
ИспользоватьАнтивирус
Это список-переключатель, на данный момент состоящий из пяти строк. Строки KAV, DrWEB, Stop и UNA задают использование соответствующего антивируса, выбор не переведённой пока на русский язык строки Disabled отключает встроенную антивирусную проверку. Выбрав антивирус, необходимо перейти в соответствующую подсекцию и задать ещё один параметр.
AntivirusDatabasePath
В грядущем переводе на русский язык имя параметра означает путь к вирусным базам. По умолчанию Eserv предполагает, что вирусные базы KAV располагаются в подкаталоге antivirus\kav\data, а вирусные базы Dr.Web — в том же каталоге, что и библиотека, antivirus\drweb. Для антивирусов Stop! и UNA параметр не предусмотрен — подключаемые библиотеки сами найдут все необходимые компоненты антивируса при условии, что он установлен в системе стандартным образом из соответствующего установочного пакета.Для эффективной защиты вирусные базы следует регулярно обновлять. Это можно делать как вручную, загружая обновления с сайтов разработчиков программ, так и с помощью программ-агентов, которые могут запускаться посредством Планировщика и делать то же самое автоматически. Такие программы имеются сейчас у каждого уважающего себя антивируса. Однако загрузки обновлений на диск недостаточно, необходимо ещё, чтобы Eserv загрузил обновлённые в базы в оперативную память. Для этого существует специальная команда (Форт-слово) AVreload_db, которую проще всего вызывать с помощью того же Планировщика.
В работе интегрированного антивируса участвует ещё один подкаталог каталога mail — infected. В этот каталог Тоссер перемещает все письма, в которых будет обнаружен вирус или хотя бы подозрение на вирус. При этом и предполагаемому отправителю, и получателю такого письма будет отправлено извещение — за это отвечают специальный конфигурационный файл для почтового агента erobot и сопутствующие шаблоны писем-извещений — av.cfg, sent_virus.pat и recv_virus.pat, все они располагаются в каталоге agents. Правда, работает такая схема только при покупке специальной лицензии на антивирус для почтового сервера Eserv. Если такой лицензии нет, проверка работает в демонстрационном режиме — при этом не проверяются вложенные в письма архивы и упакованные исполняемые файлы, а заражённые письма не перемещаются в подкаталог mail\infected, а доставляются получателю в виде вложения в письмо-извещение. При этом используется другой конфигурационный файл erobot и другие шаблоны писем — av_demo.cfg, sent_vurus_demo.pat и recv_virus_demo.pat.
В соответствии с общепринятой практикой лицензия на антивирус приобретается на ограниченный срок, обычно на год. За две недели до окончании лицензии Eserv начинает напоминать администратору о необходимости продления лицензии — для этого он отправляет специальное письмо по адресу postmaster@local. Содержимое письма определяется шаблоном av_expire.pat, также находящимся в каталоге agents. Письмо отсылается при смене даты и при каждом запуске Eserv. Эта возможность появилась в Eserv начиная с версии 2.99, шаблон письма включён в соответствующий установочный пакет.
Следует учесть, что Eserv сборки 3315, входящий в поставку версии 2.98, поддерживает работу с ядром антивируса Dr.Web версии 4.27c — библиотека именно этой версии включена в установочный пакет. Для работы с более свежими версиями следует установить Eserv с номером сборки 3320 или выше.
Вернуться к описанию почтового сервера
Вернуться к содержанию