Библиотека сайта rus-linux.net
Два сканера с открытым кодом для выявления почтовых вирусов
Оригинал: Two open source email virus scanners for Linux
Автор: Joseph Quigley
Дата: 27 августа 2007
Перевод: Александр Тарасов aka oioki
Дата перевода: 4 сентября 2007
Если Linux плохо поддается воздействию вирусов, почему тогда системные администраторы используют антивирусы на почтовых Linux-серверах? Ответ прост: антивирус на почтовом сервере - один из уровней защиты Windows-пользователей. Для решения этой задачи Linux предлагает несколько антивирусных приложений типа сервера, большинство из которых может быть настроено на работу с несколькими почтовыми серверами. Многие используют процветающий ClamAV в качестве backend-антивируса, другие работают с коммерческими антивирусами. В этой статье я сравню использование MailScanner и Anomy Sanitizer на почтовом сервере Sendmail.
Перед установкой антивирусного сканера на вашу систему вы должны установить ClamAV. Можно установить и сконфигурировать его буквально за 10 минут. В большинстве Linux-дистрибутивов конфигурационный файл clamd.conf
уже отредактирован так, что ClamAV сканирует почту на вирусы. Также в некоторых дистрибутивах в конфигурации ClamAV включены периодические обновления сигнатур вирусов, что довольно удобно. ClamAV даже включает SMTP-сканер, предназначенный для системных администраторов, которые хотят быть уверенными в том, что пользователи не отправляют инфицированную почту.
MailScanner
После установки антивирусного средства вы можете настроить свою программу фильтрации почты. MailScanner - один из наиболее популярных почтовых фильтров. Он защищает пользователей как от вирусов, так и от спама. Для выполнения своих функций программа прицепляется к другим программам. Последние версии содержат средства по защите пользователей от "фишинга", которые исключают возможность нажатия на фальшивую URL-ссылку.Установка MailScanner на большинстве Linux-систем проста. Большинство дистрибутивов Linux содержат его в репозиториях, и не нужно делать ничего особенного, чтобы установить эту Perl-программу из исходников.
После установки MailScanner нужно настроить его под ваши нужды. Откройте на редактирование хорошо откомментированный файл /etc/MailScanner/MailScanner.conf
. При обнаружении вируса на адрес пользователя отсылается письмо, в котором упоминается имя хоста (hostname
). Поменяйте его на свое значение в переменной %org-name%
. Измените значение переменной Incoming Work Group
на "clamav", чтобы вам не пришлось изменять права ClamAV. Далее убедитесь, что File Command
указывает на /usr/bin/file
и строка не закомментирована. Сканеру нужно знать путь до программы file, чтобы уметь определять тип файла и на основе этой информации принимать или отклонять его. К примеру, вы можете блокировать файлы .exe, но пропускать .dmg. Если вы хотите оповестить отправителя, что в его послании содержится вирус, измените значение переменной Notify Senders Of Viruses
с no
на yes
(советую все же оставить "no"; злоумышленники, рассылающие спам, обычно не оставляют своих координат в поле "отправитель"). Также в файле вы можете изменить тему письма с оповещением о вирусе.
Можно настроить MailScanner так, чтобы он принимал или отклонял файлы в зависимости от расширения или типа файла, указанных в /etc/MailScanner/filetype.rules.conf
. Также принятие/отклонение файла может происходить на основе имени файла (полезно для блокирования некоторых вирусов или червей, которые всегда имеют одинаковое имя файла). Заметьте, что конфигурационный файл требователен к синтаксису: поля должны быть отделены символами табуляции. Также в конфигурационном файле допускаются регулярные выражения.
Мне не удалось найти графическую утилиту настройки, однако хорошо документированный конфигурационный файл и документация на веб-сайте MailScanner предоставляет достаточно информации для должной настройки сканера.
Вики MailScanner'а гласит, что сервер с процессором 3 ГГц Dual Xeon и 2 Гб памяти может обрабатывать до 1,7 миллионов писем в день - более чем достаточно для большинства организаций. Вики содержит множество примеров, как работают различные компьютеры с MailScanner. Кроме графической утилиты настройки, пожалуй, улучшать в MailScanner больше нечего.
Anomy Sanitizer
Перейдем к Anomy Sanitizer. Это маленький почтовый сканер, который не требователен к системным ресурсам (таким как процессор и память), так как рассматривает входные данные как поток, совсем не используя жесткий диск (при должной настройке). Хотя MailScanner также воспринимает входящую почту как поток, но требует быстрый жесткий диск для достижения хорошей производительности при высокой нагрузке.Установка Anomy Sanitizer из исходников прямолинейна. Sanitizer в дистрибутиве Ubuntu не поставляется с инициализационным скриптом, и мне также не удалось найти такой ни для Gentoo, ни для openSUSE. Из-за отсутствия этого файла системным администраторам приходится писать его вручную. В документации к Sanitizer, расположенной на веб-сайте проекта, рекомендуется использовать программу procmail в качестве "промежуточной прослойки между sendmail и sanitizer". После настройки procmail использование Sanitizer становится намного проще и безопаснее, чем при жестком связывании sendmail и Sanitizer.
Трудно найти документацию по конфигурационному файлу Sanitizer; я потерял много времени, пытаясь понять, как настроить фильтр, имея в распоряжении лишь несколько примеров.
Первое, что нужно сделать, чтобы Sanitizer начал сканировать вашу почту - настроить его. Минимальная конфигурация может быть найдена на
веб-сайте проекта. После настройки не забудьте указать путь к конфигурационному файлу при запуске Sanitizer (путь указывается как аргумент командной строки). Я поместил конфигурационный файл в /etc/sanitizer.conf
и поэтому запустил фильтр с помощью команды: sanitizer /etc/sanitizer.conf
.
В отличие от MailScanner, эффективность которого зависит от скорости жесткого диска, производительность Sanitizer зависит от процессора. Есть один недостаток в том, как работает Sanitizer. Из-за накладных расходов на запуск Perl-скрипта маленькие сообщения (размером около 2 Кб или меньше) будут замедлять сервер. Большие сообщения потребляют большое количество памяти при запуске Sanitizer через procmail. Веб-сайт Sanitizer гласит, что запуск Sanitizer в режиме демона полностью устранит накладные расходы по запуску и компиляции Perl-скрипта. Сервер Pentium III 500 МГц может обрабатывать около 864 тыс. сообщений в день.
Заключение
MailScanner установить и настроить на почтовом сервере намного легче, чем Sanitizer. Большая часть конфигурационного файла удовлетворяет потребностям большинства пользователей, кроме того, имеется добротная документация как в man-страницах, так и в комментариях самого конфигурационного файла. С другой стороны, Sanitizer хорош для старых и медленных систем, у которых нет быстрых жестких дисков.Существуют и другие почтовые фильтры и сканеры, например, Qmail-scanner и Inflex, но MailScanner выделяется из них своей простотой, а Sanitizer - малым размером. Комбинируя ClamAV и MailScanner на современном быстром сервере, системный администратор может защитить пользователей Windows от опасных вирусных вложений.
Обсуждение статьи на Linux-форуме