Рубрика:
Безопасность /
Электронная почта
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС
Боремся с вирусами и спамом с помощью MPP
Как с минимальными финансовыми и временными затратами настроить эффективную систему борьбы со спамом и вирусами, рассылаемыми посредством электронной почты? Попробуем решить эту проблему с Message Processing Platform (MPP) Free Edition.
В Интернете сегодня можно найти много описаний построения систем защиты электронной почты, для реализации некоторых из них требуется определенный опыт. Администраторы, хорошо знающие Windows, не всегда в состоянии быстро разобраться со всеми особенностями UNIX. Проект MPP Free Edition [1] предлагает, можно сказать, идеальный инструмент, позволяющий быстро развернуть систему борьбы со спамом и вирусами, основанную на ClamAV и SpamAssassin, не уступающую по эффективности, например, таким решениям, как MailScanner или Amavisd, но гораздо проще в настройке. При этом в MPP возможны установка максимального размера проверяемых сообщений, подпись проверенных писем, фильтрация вложений по расширению, обработка исключений и прочее. Сообщения, помещенные в карантин, могут храниться в текстовом виде либо в базе данных MySQL. Веб-интерфейс, реализованный с помощью модуля Webmin, обеспечивает настройку работы, контроль в реальном времени, управление карантином и спамом, внесение отправителей в черный и белый списки, просмотр журналов работы. Решение очень просто в установке, потребуется наличие в системе лишь нескольких основных компонентов:
- операционная система – GNU/Linux приблизительно от RH 8.0 и выше, точно работает в Ubuntu 6.06 и Debian 3.0, FreeBSD от 4.8 и выше, 5.x (ветка 4 рекомендуемая), MacOS X от 10.2 и Solaris 8/9;
- почтовый сервер – Sendmail, Postfix, CommuniGate, QMail или SurgeMail;
- SpamAssassin от 3.x и ClamAV 0.8 и выше;
- опционально для настройки через веб-интерфейс – Webmin.
Фактически MPP Free Edition является первой версией решения MPP, которую компания решила раздавать всем бесплатно. Ходят слухи о возможном распространении под лицензией GNU GPL, но пока дальше разговоров дело не пошло. Поддержка реализована только посредством электронной почты, без гарантии того, что вам ответят. Коммерческая версия продукта MPP v3 обеспечивает на порядок большую функциональность. Здесь возможна совместная работа со многими коммерческими антивирусными и антиспам-решениями, фильтрацию вложений не только по расширению, но и по имени файла и содержимому, SNMP-мониторинг, усовершенствованный пользовательский интерфейс. Кроме того, для этой версии доступен интерфейс QReview 2.0, позволяющий просматривать и управлять спам-карантином, в версии Free спам-карантином может управлять только администратор. Поэтому Free Edition подойдет больше для небольших организаций. На сайте проекта сказано, что предыдущая GPL-версия QReview для загрузки не доступна, хотя файл [3] спокойно лежит на ftp-сервере. Сравнительная таблица продуктов приведена в [2].
Установка MPP
Программа устанавливает все необходимые библиотеки ClamAV, сценарии конфигурации автоматически обновляют файлы сервера электронной почты. Поэтому установка MPP очень проста. Для загрузки доступно несколько файлов. Так как в качестве тестовой платформы использовался дистрибутив Ubuntu 6.06 LTS, поэтому для установки MPP был выбран архив mpp-free-1.2-113.Linux.i386.tar.gz. Распаковываем и запускаем скрипт ./instal.sh. Во время его работы возможны ошибки, по окончании дается рекомендация:
Please run /usr/local/MPP/configure.pl to automatically configure mpp and your mail server. |
Скрипт позволяет указать на используемый почтовый сервер, а также антивирусное и антиспам-приложения, которые будут использованы при обработке электронной почты. Естественно, все это должно быть уже установлено.
$ sudo /usr/local/MPP/configure.pl
Выбираем почтовый сервер:
Select mailserver
1) Sendmail
2) Postfix
3) CommuniGate
4) QMail
5) SurgeMail
[default 1]: 2
|
Выбираем antivirus/antispam-движок, можно использовать несколько значений через пробел, демон clamd должен использовать стандартный порт 3310:
Select antivirus / antispam engine. Could be one or multiple selections separated with blank
Example: for clamav, spamassassin use: 1 3
1) clamav
2) clamd
3) spamassassin
[default 1]: 2 3
[17:23:37] 6 [63168] [Daemon] Masking signals.
[17:23:37] 8 [63168] [Config] Start loading config file /usr/local/MPP/mppd.conf
[17:23:37] 8 [63168] [Config:InitializeList] [Config] insert successful ALL DOMAINS
[17:23:37] 8 [63168] [Config:InitializeList] [debug] dump list
[17:23:37] 8 [63168] [Config:InitializeList] ALL DOMAINS
[17:23:37] 6 [63168] [Daemon] Changing user/group.
[17:23:37] 6 [63168] [Daemon] Switching to daemon mode.
4289 ? Ss 0:00 /usr/lib/postfix/master
Completed setup.
|
Вот, собственно, и все по установке MPP. В конфигурационном файле в /etc/postfix/main.cf почтового сервера Postfix появится следующая запись:
# -- Added for MPP --
content_filter = smtp:localhost:10025
# -- end --
|
Оригинальный файл будет сохранен в /etc/postfix/main.cf.mbk.
Аналогично и master.cf будет скопирован в master.cf.mbk, и в нем появятся следующие строки:
# -- Added for MPP --
localhost:10026 inet n - n - 10 smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o myhostname=localhost.domain.tld
-o smtpd_helo_restrictions=
-o smtpd_client_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
# -- end --
|
Все рабочие файлы MPP будут помещены в /usr/local/MPP/, кроме того, в /etc/init.d/ появится скрипт, предназначенный для управления работой демона mppd:
$ sudo /usr/local/MPP/configure.pl
Starting MPP daemon: mppd.
|
Соответствующие ссылки для его автоматической загрузки будут помещены в каталоги /etc/rcХ.d. Все, MPP установлен и работает с настройками по умолчанию, и в принципе можно вообще ничего больше не трогать.
В репозитарии Ubuntu нет пакета Webmin, поэтому его установку необходимо произвести вручную. Пакет, собранный для Debian, будет работать и в Ubuntu.
$ wget –c http://switch.dl.sourceforge.net/sourceforge/webadmin/webmin_1.310_all.deb
Устанавливаем пакеты, необходимые для удовлетворения зависимостей:
$ sudo apt-get install libauthen-pam-perl libio-pty-perl libmd5-perl
$ sudo dpkg -i /media/win_e/webmin_1.310_all.deb
По окончании процесса будет выдано следующее сообщение.
Webmin install complete. You can now login to https://grinder:10000/
as root with your root password, or as any user who can use sudo to run commands as root.
|
Что свидетельствует о том, что Webmin уже настроен и править конфигурационные файлы не придется. Поэтому просто вызываем веб-браузер и набираем https://имя_компьютера:10000/.
Работа с Webmin описана в [4], поэтому подробно о нем говорить не будем.
Для установки модуля MPP заходим в «Webmin Configuration» (настройка Webmin) и переходим в «Модули Webmin». Модуль находится в архиве, хотя на сайте проекта MPP может быть более свежий вариант:
$ wget -c ftp://ftp.messagepartners.com/pub/mpp/webmin/rae-mpp.wbm.gz
И указываем на него в «Установка модуля». В случае успеха в категории «Службы» (Service) появится новый пункт «RAE Internet MPP Panel». Здесь 6 вкладок: «Control», «Configure», «Templates», «Monitor», «Virus/Error Quarantine» и «Spam Quarantine». Дальнейшую настройку работы MPP можно производить, выбрав «Configure» либо напрямую редактируя конфигурационный файл /usr/local/MPP/mppd.conf.
Рисунок 1. Настройка MPP через Webmin
Конфигурационный файл mppd.conf
Некоторые параметры удобнее редактировать все-таки через веб-интерфейс, выбирая одно из предложенных значений или занося их в соответствующие поля. Но все параметры трогать не будем, обратим внимание только на некоторые из них.
Так, несмотря на присутствие слова virus в virus_scanner, сюда прописываем средство для борьбы с вирусами и спамом, указав одно или через через пробел несколько значений из clamav, clamd и spamassassin. В email_server должно стоять имя используемого почтового сервера. В моем случае это postfix, возможны варианты: sendmail, cgp, surgemail или qmail. В blacklist указываем имя файла, в который будет заноситься «черный» список адресатов по одному в строке, можно указывать домены. По умолчанию используется /usr/local/MPP/blacklist, просто снимаем комментарий со строки и идем дальше.
Аналогично параметр:
donot_scan_users = /usr/local/MPP/donotscanlist
позволяет занести в файл адреса пользователей, сообщения которых на вирусы проверяться не будут. По умолчанию параметр scan_domains установлен в all domains, что означает, что MPP будет проверять почту всех пользователей всех доменов. Домены можно конкретизировать, прописав их через запятую:
scan_domains = mycompany.com, test.com
Если нужно проверять почту конкретных пользователей указанных доменов, их можно занести в scan_users. Архивы во вложениях по умолчанию проверяются:
scan_archives = yes
Что делать в случае обнаружения вируса или спама, определяется значением параметра on_infection, а в случае невозможности удаления вируса из вложения – on_disinfection_failure. Здесь могут быть использованы следующие варианты (они используются и в некоторых других параметрах):
- quarantine – сообщение помещается в карантин без уведомления отправителя;
- discard – сообщение удаляется также без уведомления;
- reject – сообщение удаляется с отсылкой уведомления отправителю;
- disinfect – производится попытка удалить вирус;
- delete – зараженный файл удаляется и заменяется предупреждающим сообщением.
Все сообщения, создаваемые при работе MPP, занесены в три шаблонных файла alert_template_admin.txt, alert_template_reciver.txt и alert_sender_admin.txt, которые можно отредактировать как вручную, так и выбрав «Templates» в Webmin. Аналогично при включенном параметре add_signature = yes, после сканирования в файл добавляется сигнатура – signature_template.txt, а подключив параметр message_header и дополнительный заголовок в письмо, которые также можно изменить по своему усмотрению, показав, что администратор на месте и все контролирует. Зашифрованное сообщение по умолчанию проходит без проверки:
on_encrypted_message = pass
Хотя в этом случае разрешено использование тех же значений, что и в on_infection. Максимально разрешенный размер вложений, которые будет проверять MPP на наличие вирусов, в установках по умолчанию равен 10 Мб. Изменить это значение можно в max_file_size, указав число в мегабайтах. Действие при превышении этого предела устанавливается в on_max_file_size_exceeded и может принимать значение pass (по умолчанию), quarantine или discard. Аналогично и max_recursion_level с on_max_recursion_level_exceeded отвечает за рекурсивную проверку вложений. Число 50, стоящее по умолчанию, мне кажется, несколько завышено. Как уже говорилось во введении, MPP может блокировать вложения с указанными расширениями. За это отвечает параметр block_extensions, в качестве значений которого через запятую прописываются все расширения файлов, которые администратор считает опасными. Реакция при обнаружении такого файла описана в block_extensions_action. Целый блок параметров alert_admin, alert_sender, alert_receiver определяет отсылку уведомлений соответствующим участникам пересылки. От имени кого отсылаются сообщения, указываем в alert_message_sender.
Параметр quarantine_method определяет форму хранения файлов, содержащих вирусы или спам, в карантине. По умолчанию такие сообщения хранятся в текстовом файле:
quarantine_method = file
Если планируется использование для этих целей MySQL, измените его на sql. Для создания необходимых баз в архиве имеется скрипт spam-mysql.sql. В этом случае активируйте и следующие параметры, установив необходимые значения:
sql_type = mysql
sql_database = spam
sql_host = localhost
sql_user = user
sql_password = password
Далее в файле идут настройки проверки почты SpamAssassin:
spam_filter = yes
Определяем реакцию при обнаружении спама: marksubject, markheader, forward, quarantine, discard:
spam_action = marksubject
И конкретизируем значение поля тема:
spam_marksubject = SPAM-%SUBJECT%
При необходимости можно указать адрес, на который будет пересылаться весь обнаруженный спам, который можно будет использовать, например, при обучении фильтров:
spam_forwardaddr = %EMAILID%-spam@%DOMAIN%
Аналогично ситуации с вирусами, используя инструкцию spam_inbound_whitelist и spam_outbound_whitelist, можно указать белый список адресатов, входящие или исходящие сообщения которых не будут проверяться на спам. Максимальный размер сообщений, проверяемых SpamAssassin, по умолчанию равен 32 Кб, изменить его можно в spam_max_scan_size.
Рисунок 2 Редактирование шаблона
После изменений параметров перезапускаем демон mppd. Для проверки правильности настройки работы антивируса и антиспам-подсистем в архиве MPP имеются файлы gtube- eicar-test.msg и test.msg. Обновления ClamAV производятся стандартными методами, кроме того, в поставке MPP есть скрипт clamavupdate.sh, с помощью которого новые базы берутся с сайта разработчика MPP (ftp://ftp.raeinternet.com/pub/clamav), запуская его через cron (это можно настроить прямо из Webmin), так и вручную, воспользовавшись меню «Control» и нажав кнопку «Virus Update».
Не смотря на то что написано много, MPP можно настроить за полчаса, естественно, при условии, что все остальные компоненты уже готовы к работе. После чего она исправно будет отсеивать вирусы и распознавать спам, защищая пользователей.
Успехов.
- Сайт проекта MPP Free Edition – http://messagepartners.com/products/mpp_free_edition.html.
- Сравнительная таблица версий Free Edition и MPP v3 – http://messagepartners.com/products/compare-mpp.php.
- GPL версия QReview – ftp://ftp.raeinternet.com/pub/mpp/qreview-0.6.tar.
- Яремчук С. Упрощаем себе жизнь с Webmin. //«Системный администратор», № 7, 2004 г. – C. 34-37.
- Яремчук С. Roaring Penguin CanIt: ведём борьбу со спамом. //«Системный администратор», № 7, 2006 г. – C. 16-22.
- Яремчук С. Защищаем электронную почту средствами MailScanner. //«Системный администратор», № 12, 2005 г. – C. 45-51.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|