FreeBSD: Интеграция Kaspersky Anti-Virus for Unix File Servers и Amavisd-New [2010]
Обычно для защиты почтовых систем средних офисов на базе Postfix от вирусов используется антивирус ClamAV, привлекающий людей бесплатностью, но не "знающий” о многих вирусах. Как повысить надежность защиты? Купить специальный антивирус для почтовых систем или обойтись более дешевым антивирусом для рабочих станций / файловых серверов? Все зависит от бюджета и предполагаемой нагрузки. Например, для обслуживания нескольких десятков пользователей вполне подойдет второй вариант.
Почему Kaspersky Anti-Virus for Unix File Servers?
Во-первых, почему Антивирус Касперского? Потому, что в своих ценовых категориях продукты Лаборатории Касперского являются одними из лидеров по количеству обнаруживаемых вирусов. Во-вторых, почему для файловых серверов? Потому, что под рукой оказалась свободная лицензия Kaspersky Business Space Security, позволяющая использовать продукты для защиты рабочих станций и файловых серверов. В связи с тем, что первая группа продуктов не содержит антивирус для FreeBSD, я решил воспользоваться соответствующим представителем второй группы. Не расстраивайтесь, если Вы являетесь обладателем лицензий Kaspersky Work Space Security. Необходимые компоненты Kaspersky Anti-Virus for Linux Workstations отлично работают в режиме эмуляции Linux.
Исходные данные
Имеется сервер с 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 строку:
В рассматриваемом случае настройка антивирусного сканера 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:
Управление размером лога kavscanner.log может быть организовано уже рассмотренным способом, только в этот раз владельцем очищенного лога должен быть пользователь vscan. Для обеспечения описанных выше параметров ротации придется добавить в файл /etc/newsyslog.conf строку:
Для того, чтобы 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 ###
Представленное определение содержит: имя, под которым антивирус будет отображаться в логе; имя исполняемого файла антивируса, ключи запуска антивируса (в рассматриваемом случае не требуются дополнительные ключи запуска, подстрока {} определяет папку, содержащую проверяемые объекты); список кодов возврата, свидетельствующих об отсутствии вирусов (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
Заключение
Решение проблемы антивирусной защиты почтовой системы, описанное в этой статье, очень далеко от идеалов с точки зрения производительности, однако, вполне применимо на почтовых серверах средних офисов, особенно с учетом отличного соотношения цены и качества. Благодаря переходу с ClamAV на Kaspersky Anti-Virus for Unix File Servers, я смог полностью перенести антивирусную проверку почтовых сообщений на сервер и отключить компонент Почтовый антивирус в групповой политике Kaspersky Anti-Virus for Windows Workstations, что заметно увеличило быстродействие почтовых клиентов пользователей. Для того, чтобы испытать предложенный вариант антивирусной защиты почтовой системы на практике, не придется ничего покупать. Достаточно загрузить с официального сайта пробную версию выбранного продукта (точнее – пробный лицензионный ключ), которой можно пользоваться на протяжении месяца. На мой взгляд, этого времени будет более чем достаточно для принятия взвешенного решения.