Расширяем возможности MailScanner::Журнал СА 1.2006
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Архив номеров
Контакты
   

  Опросы
  Статьи

Электронный документооборот  

5 способов повысить безопасность электронной подписи

Область применения технологий электронной подписи с каждым годом расширяется. Все больше задач

 Читать далее...

Рынок труда  

Системные администраторы по-прежнему востребованы и незаменимы

Системные администраторы, практически, есть везде. Порой их не видно и не слышно,

 Читать далее...

Учебные центры  

Карьерные мечты нужно воплощать! А мы поможем

Школа Bell Integrator открывает свои двери для всех, кто хочет освоить перспективную

 Читать далее...

Гость номера  

Дмитрий Галов: «Нельзя сказать, что люди становятся доверчивее, скорее эволюционирует ландшафт киберугроз»

Использование мобильных устройств растет. А вместе с ними быстро растет количество мобильных

 Читать далее...

Прошу слова  

Твердая рука в бархатной перчатке: принципы soft skills

Лауреат Нобелевской премии, специалист по рынку труда, профессор Лондонской школы экономики Кристофер

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 9956
Комментарии: 0
Потоковая обработка данных

 Читать далее...

19.03.2018г.
Просмотров: 8164
Комментарии: 0
Релевантный поиск с использованием Elasticsearch и Solr

 Читать далее...

19.03.2018г.
Просмотров: 8264
Комментарии: 0
Конкурентное программирование на SCALA

 Читать далее...

19.03.2018г.
Просмотров: 5233
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 5920
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

Друзья сайта  

 Расширяем возможности MailScanner

Архив номеров / 2006 / Выпуск №1 (38) / Расширяем возможности MailScanner

Рубрика: Администрирование /  Продукты и решения

Сергей Яремчук СЕРГЕЙ ЯРЕМЧУК, фрилансер. Автор более 800 статей и шести книг. С «СА» с первого номера. Интересы: сетевые технологии, защита информации, свободные ОС

Расширяем возможности MailScanner

В прошлой статье вы рассмотрели возможности и установили почтовый сканер MailScanner. Сегодня мы познакомим вас с дополнительными программами, позволяющими просмотреть статистику работы системы защиты электронной почты.

Веб-интерфейс MailWatch

MailWatch [2] представляет собой инструмент, предназначенный для работы и настройки MailScanner, использующий веб-технологии. Написан на PHP, MySQL и JpGraph, распространяется под лицензией GNU GPL. Для записи в базу данных применяются свои собственные функции пользователя (CustomFunctions).

Основные возможности:

  • Отображение очереди входящей и исходящей почты (пока только для Sendmail/Exim), вывод информации о средней загрузке и количестве сообщений за текущий день, спаме, вирусах и блокированного контента.
  • Подсвечивание недавно обработанной почты.
  • Вывод подробной информации по каждому сообщению.
  • Управление почтой, попавшей в карантин (т.е. ее можно просматривать, разрешать, удалять, переобучать спам-фильтры).
  • Просмотр статуса работы вирус-сканера (пока только для Sophos), базы данных MySQL и вывод файла настроек MailScanner.
  • При работе с Sendmail имеется возможность проверить и вывести размеры очереди почты и информацию о пересылке.
  • Разграничение информации для пользователей, домена и администратора. Поддержка XML-RPC позволяет использовать несколько инсталляций MailScanner/MailWatch как единое целое.
  • Вывод самых разнообразных отчетов.

Настройка MailWatch

Процесс настройки MailWatch можно условно разделить на три части: создание необходимых баз и таблиц в MySQL, изменение параметров доступа веб-сервера и редактирование конфигурационного файла MailScanner.conf. В документации этот процесс описан подробно, но некоторые параметры объяснены плохо, поэтому пройдем все три этапа. Для работы потребуются права суперпользователя. Распаковываем файл с архивом в рабочий каталог.

# tar xzvf mailwatch-1.0.2.tar.gz

# su mailwatch

И приступаем к созданию баз и таблиц.

# /etc/init.d/mysqld start

Starting safe_mysqld service:    [ DONE ]

Таблицы можно создавать и вручную, но проще воспользоваться готовым скриптом.

# mysql –u root -p < create.sql

Enter password: ******

Создаем пользователя, от имени которого MailWatch будет работать с базой данных.

# mysql –u root –p

Enter password: ******

mysql>  GRANT ALL ON mailscanner.* TO mailwatch@localhost IDENTIFIED BY "password";

Query OK, 0 rows affected (0.12 sec)

Для интереса посмотрим созданные таблицы.

mysql> SHOW TABLES;

+----------------------------+

| Tables_in_mailscanner      |

+----------------------------+

| audit_log                  |

| blacklist                  |

| geoip_country              |

| inq                        |

| maillog                    |

| mcp_rules                  |

| mtalog                     |

| outq                       |

| sa_rules                   |

| saved_filters              |

| user_filters               |

| users                      |

| whitelist                  |

+----------------------------+

13 rows in set (0.00 sec)

Все пользователи для доступа через веб-интерфейс должны иметь запись в таблице users.

mysql> DESCRIBE users;

+-------------------+---------------------------+------+-----+---------+-------+

| Field             | Type                      | Null | Key | Default | Extra |

+-------------------+---------------------------+------+-----+---------+-------+

| username          | varchar(60)               |      | PRI |         |       |

| password          | varchar(32)               | YES  |     | NULL    |       |

| fullname          | varchar(50)               |      |     |         |       |

| type              | enum("A","D","U","R","H") | YES  |     | NULL    |       |

| quarantine_report | tinyint(1)                | YES  |     | 0       |       |

+-------------------+---------------------------+------+-----+---------+-------+

5 rows in set (0.10 sec)

Поле username должно устанавливаться в зависимости от значения поля type. Для обычных пользователей оно содержит почтовый адрес и используется при регистрации и работе с почтой. Поле password, думаю, понятно без объяснений, а в fullname заносят реальное имя пользователя. Поле type указывает на привилегии, которые будет иметь пользователь. Так, U (User) означает обычные привилегии, такой пользователь будет способен работать с почтой, редактировать черный и белый списки только для указанного почтового адреса, совпадающего с username. При установке типа D (Domain Administrator) в поле username в таком случае указывается домен, а пользователь может работать с письмами и спам-листами для всего домена. Тип A (Administrator) – администратор предназначен для работы с самим MailWatch, H зарезервирован для остальных случаев. И наконец R (user Regular expression) предназначен для тех случаев, когда у пользователя имеется несколько почтовых адресов, используя этот тип, он получает возможность работать одновременно с несколькими. Поле quarantine_report позволяет просматривать данные карантина. Для первоначальной работы достаточно создать администратора, для всех остальных можно использовать веб-интерфейс (остальные подробности смотрите в файле USER_FILTERS документации). К сожалению, готовых скриптов, позволяющих импортировать пользователей в комплекте, нет, что при большом их количестве неудобно. Поэтому этим придется заниматься самому.

mysql> INSERT INTO users VALUES ("grinder@test.ru",md5("pasword"),"sergej","A","1");

Query OK, 1 row affected (0.46 sec)

С базой все, выходим.

mysql> quit

Теперь файл MailWatch.pm, в котором редактируем следующие параметры (по умолчанию почему-то используется root).

my($db_name) = "mailscanner";

my($db_host) = "localhost";

my($db_user) = "mailwatch";

my($db_pass) = "password";

Затем перемещаем его в каталог CustomFunctions.

# mv MailWatch.pm /opt/MailScanner/lib/MailScanner/MailScanner/CustomFunctions

Аналогичные параметры редактируем и в скрипте SQLBlackWhiteList.pm, который позволяет пользователю самому создавать белый и черный списки и заносить их в базу данных. После чего помещаем его на место:

# mv SQLBlackWhiteList.pm /opt/MailScanner/lib/MailScanner/MailScanner/CustomFunctions

И переходим к следующему этапу.

Папку mailscanner, содержащую php-скрипты, помещаем в рабочий каталог веб-сервера.

# mv mailscanner /var/www/html/

И устанавливаем необходимые права доступа для каталогов, в которых будут создаваться и храниться графики.

# chown root:apache /var/www/html/mailscanner/images

# chmod ug+rwx /var/www/html/mailscanner/images

# chown root:apache /var/www/html/images/cache

# chmod ug+rwx  /var/www/html/images/cache

Для настройки параметров доступа к базе данных используется файл conf.php. Берем в качестве основы conf.php.example и редактируем его.

// Database settings

define(DB_TYPE, "mysql’);

define(DB_USER, "mailwatch");

define(DB_PASS, "password");

define(DB_HOST, "localhost");

define(DB_NAME, "mailscanner");

Также следует проверить значение переменной MS_LIB_DIR, которая должна указывать на каталог, в который установлен MailScanner, в нашем случае это /opt/MailScanner. А переменная MS_CONFIG_DIR на каталог, в котором расположен конфигурационный файл MailScanner.conf, т.е. /opt/MailScanner/etc/, иначе может произойти такая ошибка.

Warning: fopen(/etc/MailScanner/MailScanner.conf):

failed to open stream: No such file or directory in /var/www/html/mailscanner/functions.php on line 860

Cannot open MailScanner configuration file

Переименовываем файл.

# mv conf.php.example conf.php

Для MailScanner версии 4.43 и выше можно использовать флаг управления карантином, но в этом случае необходимо отключить используемый самим MailScanner скрипт clean.quarantine, запускаемый через cron. Далее активируем QUARANTINE_USE_FLAG, т.е. меняем false на true. Ниже настраиваем параметры отправки сообщения по электронной почте о поступлении письма в карантин.

Для вывода очереди сообщений (Sendmail и Exim) необходимо активировать переменную MAILQ. Затем скрипт mailq.php запускаем через cron.

# cp /var/www/html/mailscanner/mailq.php /usr/local/bin

# crontab -e

0-59 * * * *     /usr/local/bin/mailq.php

Редактируем MailScanner.conf:

Always Looked Up Last = &MailWatchLogging

Detailed Spam Report = yes

Quarantine Whole Message = yes

Quarantine Whole Message As Queue Files = no

Include Scores In SpamAssassin Report = yes

Quarantine User = root

QuarantineGroup = apache # т.е. та же что и у веб-сервера

Quarantine Permissions = 0660

# И для редактирования спам-списков.

Is Definitely Not Spam = &SQLWhitelist

Is Definitely Spam = &SQLBlacklist

После чего запускаем MailScanner:

# /opt/MailScanner/bin/check_mailscanner

В /var/log/maillog должна появится запись о работе с MailWatch и соединении с MySQL.

Jan 2 10:48:12 grinder MailScanner[26388]: MailScanner E-Mail Virus Scanner version 4.45.4-1 starting...

Jan 2 10:48:13 grinder MailScanner[26388]: Config: calling custom init function MailWatchLogging

Jan 2 10:48:14 grinder MailScanner[26388]: Initialising database connection

Jan 2 10:48:14 grinder MailScanner[26388]: Finished initialising database connection

Теперь пробуем зайти на MailWatch, набрав в строке веб-браузера http://localhost/mailscanner/ и использовав в качестве логина и пароля данные администратора, созданного ранее и занесенного в таблицу users. Все, теперь можете заводить пользователей (рис. 1), просматривать отчеты, редактировать спам-листы и прочее. В документации довольно подробно описан процесс настройки MailScanner и MailWatch для работы с байесовскими фильтрами и настройка просмотра релейных сообщений для Sendmail, поэтому говорить о них не будем.

Рисунок 1. Создание нового пользователя для доступа к MailWatch

Рисунок 1. Создание нового пользователя для доступа к MailWatch

Мониторинг почтового сервера при помощи MRTG

Если MailWatch больше ориентирован на работу и более тонкую настройку самого MailScanner, то mailscanner-mrtg [3] помогает разобраться с работой почтового сервера в целом, выводя различные статистики о работе последнего. Используя его, можно получить следующую информацию:

  • Mail Relayed – общее число сообщений, обработанных системой, синяя линия указывает на количество полученных сообщений, затененная область – количество получателей (одно сообщение может иметь многочисленных получателей).
  • Spam Identified – число сообщений, определенных как спам. Затененная область включает все сообщения, заблокированные всеми возможными средствами: правилами MTA, RBL в MailScanner и SpamAssassin. Синяя линия показывает сообщения, заблокированные только на уровне MTA.
  • Spam as Percentage of Total Mail – процент представленной почты, определенной как спам. Отличие заключается в том, что представленная почта включает сообщения, отвергнутые MTA, т.е. не дошедшая до MailScanner.
  • Mail Containing a Virus or Failing Content Checks – общее число обнаруженных сообщений, содержащих вредный контент. Затененная область представляет заблокированные, изолированные, удаленные сообщения, содержащие вирусы, запрещенные расширения, имена и типы файлов, html-код. Синяя линия показывает обнаруженные вирусными сканерами.
  • MTA Processes Running и Copies Of MailScanner Running – индикаторы работы MTA и MailScanner.
  • Bytes of Mail Transferred – этот граф, показывающий количество информации, прошедшей через MTA, позволяет оценить нагрузку, вызванную внешней почтой. В течение дня график должен расти равномерно, резкие всплески или плоский график могут свидетельствовать о проблемах.
  • Ram Usage – использование памяти. Затененная линия показывает количество ОЗУ с используемым дисковым кешем, синяя область – общее количество затребованной памяти, включая своп.
  • Number Of Files In Incoming Queue и Number Of Files In Outgoing Queue – вывод количества файлов во входящей и исходящей очередях, резкие изменения в любом из этих графиков могут свидетельствовать о проблеме.
  • Number Of Files / Messages In Quarantine – количество файлов (затененная область) и сообщений (синяя линяя) в карантине.
  • Machine Load Average и CPU Utilization Percentage – показатели загрузки системы.
  • Processing Speed – скорость обработки почты MailScanner. Для работы этого параметра необходимо выставить Log Speed = yes в MailScanner.conf. В отличие от большинства других графов, низкий показатель предполагает проблему.
  • Average Number of Messages Per Batch – среднее количество сообщений при обработке пакета помогает разобраться в Processing Speed, поскольку скорость обработки зависит и от размера.
  • Viruses and Blocked Content as Percentage of Total Mail – показывает процент обработанной почты, содержащей запрещенный контент или вирус. Синяя линия указывает на вирусы, затененная область суммарно запрещенный контент и вирус.
  • Disk Space Used in / – занятость в процентном отношении корневой файловой системы.
  • Disk Space Used in Work Filesystem – занятость в процентном отношении файловой системы рабочего каталога MailScanner (на него указывает переменная MailScanner Work Directory в конфигурационном файле). Чаще всего его значение совпадает со следующим, но введен из-за того, что часто рабочий каталог для ускорения обработки выносят в tmpfs.
  • Disk Space Used in Spool Filesystem – занятость в процентном отношении файловой системы рабочего каталога MTA (на него указывает переменная Spool Directory в конфигурационном файле).
  • Server Network Traffic – общий сетевой трафик для указанных сетевых интерфейсов (определяется переменной Interfaces to Monitor в конфигурационном файле).

С работой этой системы можно ознакомиться, обратившись к [7], правда, на момент написания статьи там была установлена более ранняя версия (текущая 0.10). Установка никаких сложностей не представляет. Скачиваем архив размером 64 Кб, распаковываем и даем команду ./install.pl внутри каталога (некоторые опции можно просмотреть, используя ключ-help). После чего скрипт выведет текущие настройки.

Location of perl:             /usr/bin

Installation Prefix:          /usr

Program Location:             ${prefix}/sbin

Libraries Location:           ${prefix}/lib

Documentation Location:       ${prefix}/share/doc

Man pages Location:           ${prefix}/share/man

MRTG Config directory:        /etc/mrtg

MailScanner Config directory: /etc/MailScanner

WWW root:                     /var/www/html

Apache configuration dir:     /etc/httpd/conf

Location of mrtg:             /usr/bin/mrtg

Location of uptime:           /usr/bin/uptime

Use SNMP:                     n

Cron job in cron.d:           /etc/cron.d

Далее все файлы будут скопированы на свои места, и будет предложено отредактировать конфигурационный файл mailscanner-mrtg.conf, который затем будет помещен на свое место, т.е. в /etc/mrtg. Файл хорошо комментирован, имеются готовые шаблоны, некоторые опции приведены выше, некоторые совпадают с MailScanner.conf, поэтому особенных трудностей при его редактировании возникнуть не должно. Обязательно проверьте правильность всех путей в файле и установки MTA. В крайнем случае картинки с неправильными параметрами будут пустыми, и вы сами сможете быстро определить проблему. Главным является Perl-скрипт /usr/sbin/mailscaner-mrtg с модулями, расположенными в каталоге /usr/lib/MailScanner-MRTG/MSMRTG. MRTG традиционно генерирует графики через определенное время. Для этого используется скрипт mailscanner-mrtg.crond, который после установки должен лежать в /etc/cron.d.

*/5 * * * * root /usr/bin/mrtg /etc/mrtg/mailscanner-mrtg

То есть скрипт будет выполняться каждые 5 минут. Для проверки работоспособности лучше выполнить эту команду в консоли и проследить за отсутствием ошибок.

Перезапускаем веб-сервер и заходим по адресу http://localhost/mailscanner-mrtg (рис. 2). По щелчку на конкретном графике будет выдана статистическая информация за день, неделю, месяц и год.

Рисунок 2. Вывод статистики MailScanner-MRTG

Рисунок 2. Вывод статистики MailScanner-MRTG

Анализ почты с Vispan

Vispan (VIrus and SPam ANalyser), представляющий собой Perl-скрипт, анализирующий файлы журналов и использующий библиотеку GD для построения графиков (полный список зависимостей найдете на сайте). Последняя версия 2.0.2 датирована 6 января 2004 года, поэтому можно предположить о приостановке работ. Тем не менее Vispan имеет свои особенности, о которых следует рассказать. Проект [4] немного похож по возможностям на предыдущий, только его графики больше ориентированы на статистику сообщений, и меньше выводят системную информацию. С его помощью получите полную статистику о размере очереди входящих и исходящих сообщений, включая спам и вирусы (количество и процент от общего числа), времени прохождения по MailScanner, количестве блокированных IP-адресов, времени последнего обновления антивирусных баз. Кроме того, будет выведен список наиболее часто попадающихся вирусов и спама. Кроме вывода статистики сценарий может автоматически добавлять адреса спамеров в конфигурационный файл sendmail или в правила iptables. Этот адрес может автоматически удаляться после указанного промежутка времени. Если с этого адреса спам будет получен вторично, то промежуток времени нахождения в черном списке будет каждый раз удваиваться. Ознакомительная версия доступна по адресу [8].

Установка также проста.

# wget -c http://www.while.homeunix.net/mailstats/Vispan-2.0.2.tar.gz

# tar xzvf Vispan-2.0.2.tar.gz

# cd Vispan-2.0.2

# perl Makefile.PL

Checking if your kit is complete...

Looks good

Writing Makefile for Vispan

Здесь могут быть сообщения о ненайденных модулях, их необходимо будет установить.

# make install

И приступаем к редактированию конфигурационного файла /etc/Vispan.conf. Основные параметры которого приведены ниже.

# Использование sendmail для блокировки спамерских адресов

UseAccess = 0

# Использование IPtables для блокировки спамерских адресов.

# Одновременное использование  UseAccess и UseIPTables смысла не имеет

UseIPTables = 1

# Использование эвристического удаления адресов из блокировки. Иначе будет сохраняться весь список спамеров

UseHeuristics = 1

# Первичная блокировка адреса в минутах, далее время будет постоянно удваиваться

BlockTime = 7200 # 5 дней

# Адреса, которые не будут блокироваться. Можно задать одиночный IP или диапазон:

# 192.168.0.0-192.168.0.10 или 192.168.0.1/24

WhiteList = 192.168.0.1 192.168.0.2

Далее проверяем правильность путей в переменных, выставляем почтовый адрес, на который будут высылаться уведомления. Perl-скрипт Vispan запускается при помощи cron. После установки в каталоге /etc/cron.d должен лежать файл vispan.cron следующего содержания.

*/10 * * * *     root   /usr/local/bin/Vispan

Первый раз его также желательно запустить самому и  отследить ошибки. После этого в веб-браузере набираем http://localhost/vispan/, результат смотрите на рис. 3.

Рисунок 3. Вывод статистики Vispan

Рисунок 3. Вывод статистики Vispan

Задачу настройки самого MailScanner может существенно упростить модуль для Webmin [5], который после установки появится в закладке «Службы». Далее необходимо его сконфигурировать, прописав в настройках пути к конфигурационному и исполняемым файлам и месту, куда установлен сам MailScanner. После этого выбираем необходимый пункт (рис. 4) и редактируем параметры, в большинстве случаев, только устанавливая кнопки в «Да» или «Нет».

Рисунок 4. Модуль webmin позволяет настроить работу MailScanner

Рисунок 4. Модуль webmin позволяет настроить работу MailScanner

Рисунок 5. При помощи модуля webmin настройка многочисленных параметров заметно упрощена

Рисунок 5. При помощи модуля webmin настройка многочисленных параметров заметно упрощена

MailScanner является мощным средством для защиты электронной почты, а имеющиеся дополнения позволяют заметно упростить работу с ним и расширить его возможности. Да, кстати, 1 января 2006 года вышла новая 4.49 версия MailScanner.

Литература и ссылки:

  1. Яремчук С. Защита электронной почты средствами MailScanner. – Журнал «Системный администратор», №12, декабрь 2005 г. – 45-51 с (http://www.samag.ru/cgi-bin/go.pl?q=articles;n=12.2005;a=09).
  2. Сайт проекта MailWatch – http://mailwatch.sourceforge.net.
  3. Сайт проекта mailscanner-mrtg – http://mailscannermrtg.sourceforge.net.
  4. Сайт проекта Vispan – http://www.while.homeunix.net/mailstats.
  5. Сайт проекта mailscanner-webmin – http://lushsoft.dyndns.org/mailscanner-webmin или http://sourceforge.net/projects/msfrontend.
  6. Яремчук С. Упрощаем себе жизнь с Webmin. – Журнал «Системный администратор», №7, июль 2004 г. – 34-37 с (http://www.samag.ru/cgi-bin/go.pl?q=articles;n=07.2004;a=07).
  7. Ознакомительная версия MailScanner-mrtg – http://mailscannermrtg.sourceforge.net/mailscanner-mrtg.
  8. Ознакомительная версия Vispan – http://hosting.boys-brigade.org.uk/mrtg.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru