FreeBSD: Интеграция Kaspersky Anti-Virus for Unix File Servers и Amavisd-New
Обычно для защиты почтовых систем средних офисов на базе 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 строку:
/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
Заключение
Решение проблемы антивирусной защиты почтовой системы, описанное в этой статье, очень далеко от идеалов с точки зрения производительности, однако, вполне применимо на почтовых серверах средних офисов, особенно с учетом отличного соотношения цены и качества. Благодаря переходу с ClamAV на Kaspersky Anti-Virus for Unix File Servers, я смог полностью перенести антивирусную проверку почтовых сообщений на сервер и отключить компонент Почтовый антивирус в групповой политике Kaspersky Anti-Virus for Windows Workstations, что заметно увеличило быстродействие почтовых клиентов пользователей. Для того, чтобы испытать предложенный вариант антивирусной защиты почтовой системы на практике, не придется ничего покупать. Достаточно загрузить с официального сайта пробную версию выбранного продукта (точнее - пробный лицензионный ключ), которой можно пользоваться на протяжении месяца. На мой взгляд, этого времени будет более чем достаточно для принятия взвешенного решения.


После обновления FreeBSD до версии 8.1-STABLE Kaspersky Anti-Virus for Unix File Servers перестал работать. Для устранения несправности пришлось пересобрать ядро с дополнительной опцией:
options COMPAT_FREEBSD32
Жаль каспер платный, я б его на роутер поставил в подмогу NOD-ам на десктопах.
А Clam как-то руки не доходят поставить
ClamAV “знает” гораздо меньше вирусов, чем его платные аналоги