Обычно для антивирусной защиты почтовых систем средних офисов на базе Postfix используется антивирус ClamAV, привлекающий людей своей бесплатностью, но не «знающий» о многих вирусах. Как же повысить надежность защиты? Купить специальный антивирус для почтовых систем или обойтись более дешевым антивирусом для рабочих станций / файловых серверов? Ответ на этот вопрос зависит от бюджета и предполагаемой нагрузки. Например, для обслуживания нескольких десятков пользователей вполне подойдет второй вариант.
Почему Kaspersky Anti-Virus for Unix File Servers?
Во-первых, почему Антивирус Касперского? Потому, что в своей ценовой категории продукты Лаборатории Касперского являются одним из общепризнанных лидеров по количеству обнаруживаемых вирусов. Во-вторых, почему для файловых серверов? Потому, что под рукой оказалась запасная лицензия Kaspersky Business Space Security, позволяющая использовать продукты для защиты рабочих станций и файловых серверов. В связи с тем, что первая группа продуктов не имеет в своем составе антивирус для FreeBSD, я решил воспользоваться соответствующим представителем второй группы.
Исходные данные
Имеется сервер с FreeBSD, на котором кроме всего прочего развернута почтовая система с такой же подсистемой защиты от вирусов, как у Почтовой системы среднего офиса на базе Postfix. Для поиска вирусов будет использоваться антивирусный сканер kav4fs-kavscanner
, для обновления антивирусных баз — утилита kav4fs-keepup2date
, а для управления лицензионными ключами — утилита kav4fs-licensemanager
. Дистрибутивный пакет Kaspersky Anti-Virus for Unix File Servers для FreeBSD 6.x (разработчики не торопятся выкладывать пакеты для последних версий FreeBSD) будет загружен с официального сайта. Библиотеки, необходимые для корректной работы приложений FreeBSD 6.x, будут устанавливаться из портов, поэтому я рекомендую Вам обновить их (я использовал FreeBSD 8.0 и последние на конец июня 2010 года версии портов для нее).
Обеспечение двоичной совместимости с FreeBSD 6.x
Если Вы используете стандартное ядро GENERIC
, можно перейти к установке библиотек, которые нужны для корректной работы приложений FreeBSD 6.x, в противном случае придется пересобрать ядро, добавив в файл его конфигурации две строки (учтите, что без второй строки ядро не соберется):
options COMPAT_FREEBSD6 options COMPAT_FREEBSD7
Библиотеки, необходимые для корректной работы приложений FreeBSD 6.x, следует установить из порта misc/compat6x:
cd /usr/ports/misc/compat6x make install clean
Установка Kaspersky Anti-Virus for Unix File Servers
Последней версией Kaspersky Anti-Virus for Unix File Servers на момент подготовки статьи была версия 5.5.27
(имя пакета — kav4fs-5.5.27.tgz
). Установка антивируса проходит в интерактивном режиме (ответы на вопросы можно изменить позже), для ее запуска нужно выполнить команду:
pkg_add -f kav4fs-5.5.27.tgz
Программа установки предложит Вам:
- задать имя папки, в которой находится лицензионный ключ (файл с расширением
.key
); - задать настройки прокси-сервера (если Вы не используете прокси-сервер, нажмите
<Enter>
); - загрузить последние версии антивирусных баз (для того, чтобы начать загрузку, нажмите
<Enter>
); - задать имя папки, содержащей файл конфигурации WebMin (если Вы не используете WebMin, нажмите
<Enter>
); - собрать kavmonitor module (нам не потребуется kavmonitor module, поэтому можно нажать
<N>
, а затем<Enter>
).
После завершения установки можно протестировать необходимые компоненты командами kav4fs-keepup2date
и kav4fs-kavscanner
. В результате будут загружены последние версии антивирусных баз и проверены все файлы, находящиеся в текущей папке. При возникновении каких-либо проблем внимательно проанализируйте содержимое логов в папке /var/log/kaspersky/kav4fs
. Детальность логов keepup2date.log
и kavscanner.log
определяется параметрами ReportLevel
в секциях [updater.report]
и [scanner.report]
файла /usr/local/etc/kaspersky/kav4fs.conf
.
Автоматическое обновление антивирусных баз
Для обеспечения ежечасного автоматического обновления антивирусных баз следует добавить в crontab пользователя root
команду запуска утилиты kav4fs-keepup2date (ключ -k
блокирует отправку уведомлений об обновлении антивирусных баз, предназначенных для kav4fs-kavmonitor):
0 */1 * * * /usr/local/bin/kav4fs-keepup2date -k
Для сохранения вменяемого размера лога keepup2date.log
можно выполнять его ротацию с помощью newsyslog(8). Например, для ежесуточного усечения лога и сохранения семи предыдущих копий лога, сжатых архиватором bzip2(1), необходимо добавить в файл /etc/newsyslog.conf
строку:
/var/log/kaspersky/kav4fs/keepup2date.log 640 7 * @T00 J
Настройка антивирусного сканера kav4fs-kavscanner
В рассматриваемом случае настройка антивирусного сканера kav4fs-kavscanner состоит из отключения технологии iChecker (очень заметно ускоряет проверку файловых систем, но «не работает» при проверке почтовых сообщений) и включения extended
-набора антивирусных баз (дополняет список обнаруживаемых вирусов рекламными программами, backdoor-ами и прочей гадостью). Для внесения таких изменений в конфигурацию антивируса нужно подкорректировать значения соответствующих параметров в секции [scanner.options]
файла /usr/local/etc/kaspersky/kav4fs.conf
:
[scanner.options] ... Ichecker=no UseAVbasesSet=extended
По умолчанию антивирусный сканер kav4fs-kavscanner не может быть запущен пользователем vscan
, от имени которого работает Amavisd-New. Для устранения этой проблемы следует изменить владельца файла конфигурации, а также папок, содержащих лицензионные данные и логи, на vscan
:
chown -R vscan /usr/local/etc/kaspersky/kav4fs.conf /var/db/kaspersky/kav4fs/licenses /var/log/kaspersky/kav4fs
Управление размером лога kavscanner.log
может быть организовано уже рассмотренным способом, только в этот раз владельцем очищенного лога должен быть пользователь vscan
. Для обеспечения описанных выше параметров ротации придется добавить в файл /etc/newsyslog.conf
строку:
/var/log/kaspersky/kav4fs/kavscanner.log vscan: 640 7 * @T00 J
Подключение «нового» антивируса к Amavisd-New
Для того, чтобы Amavisd-New проверял почтовые сообщения на наличие вирусов с помощью антивирусного сканера kav4fs-kavscanner, необходимо, во-первых, закомментировать определения ставших лишними антивирусов в списках @av_scanners
и @av_scanners_backup
, находящихся в файле /usr/local/etc/amavisd.conf
, а, во-вторых, добавить определение «нового» антивируса в список @av_scanners_backup
:
@av_scanners_backup = ( ### Kaspersky Anti-Virus for Unix File Servers ### [ 'kav4fs', 'kav4fs-kavscanner', ' {}/*', [0,10,15], [20,21,25], qr/(?:INFECTED|WARNING|SUSPICION|SUSPICIOUS) (.*)/m ], );
Представленное определение содержит: имя, под которым антивирус будет отображаться в логе; имя исполняемого файла антивируса, ключи запуска антивируса (в рассматриваемом случае не требуются дополнительные ключи запуска, подстрока {}
определяет папку, содержащую проверяемые объекты); список кодов возврата, свидетельствующих об отсутствии вирусов (0 — вирусы не найдены, 10 — обнаружены архивы, защищенные паролем, 15 — обнаружены поврежденные файлы), список кодов возврата, сигнализирующих о наличии известных вирусов или подозрении на присутствие неизвестных вирусов (20
— обнаружены подозрительные файлы, 21
— обнаружены файлы, содержимое которых похоже на код известных вирусов, 25
— обнаружены зараженные файлы), регулярное выражение, согласно которому анализируются сообщения, отображаемые антивирусом.
Для изменения стандартного заголовка, которым снабжаются обработанные сообщения, с X-Virus-Scanned: Amavisd-New at company.com
на X-Virus-Scanned: Kaspersky Anti-Virus at mail.company.com
, следует добавить в файл /usr/local/etc/amavisd.conf
строку:
$X_HEADER_LINE = "Kaspersky Anti-Virus at mail.$mydomain";
Теперь можно перезапустить Amavisd-New командой amavisd reload
и убедиться в работоспособности «нового» антивируса. Простой, но достаточно эффективный способ тестирования состоит в отправке сообщения, зараженного вирусом, в роли которого следует использовать один из вариантов EICAR-Test-File — специального файла, предназначенного для тестирования антивирусного программного обеспечения. Если Вы были внимательны, отправка зараженного сообщения приведет к его уничтожению с сохранением копии в карантинной папке Amavisd-New, отправке уведомления администратору и появлению подробного описания проблемы в логах /var/log/maillog
и /var/log/kaspersky/kav4fs/kavscanner.log
.
Добавление лицензионных ключей
Добавление лицензионных ключей может потребоваться как при переходе с пробной на коммерческую лицензию, так и при продлении коммерческой лицензии. Для установки нового лицензионного ключа и последующего просмотра информации об этом ключе достаточно выполнить команды:
kav4fs-licensemanager -a<Имя ключевого файла> kav4fs-licensemanager -k<Имя ключевого файла>
Для просмотра информации обо всех установленных лицензионных ключах подойдет команда:
kav4fs-licensemanager -s
Заключение
Решение проблемы антивирусной защиты почтовой системы, описанное в этой статье, очень далеко от идеалов с точки зрения производительности, но вполне применимо на почтовых серверах средних офисов, особенно с учетом отличного соотношения цены и качества. Благодаря переходу на Kaspersky Anti-Virus for Unix File Servers, я смог «доверить» функцию антивирусной защиты почтовых сообщений серверу и отключить компонент Почтовый антивирус
в групповой политике Kaspersky Anti-Virus for Windows Workstations, что, в свою очередь, заметно увеличило скорость работы почтовых клиентов пользователей.
После обновления FreeBSD до версии 8.1 Kaspersky Anti-Virus for Unix File Servers перестал работать. Для устранения неисправности пришлось пересобрать ядро с опцией
options COMPAT_FREEBSD32
.Жаль Каспер платный, я б его на роутер поставил в подмогу NOD-ам на десктопах. А ClamAV как-то руки не доходят поставить…
ClamAV «знает» гораздо меньше вирусов, чем его платные аналоги.
Я бы иначе поставил вопрос: почему антивирус и зачем использовать системы, нуждающиеся в антивирусах?
Для менеджеров.