Антивирусная защита
Поскольку электронная почта — самый распространённый на сегодня способ размножения вирусов, всякий уважающий себя почтовый сервер предлагает средства для анализа и блокировки вредоносных программ. Почтовый сервер
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 отключает встроенную антивирусную проверку. Выбрав антивирус, необходимо перейти в соответствующую подсекцию и задать ещё один параметр.
В грядущем переводе на русский язык имя параметра означает путь к вирусным базам. По умолчанию
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 или выше.
Вернуться к описанию почтового сервера
Вернуться к содержанию