Dr.Web MailD

Компонент обработки почты Dr.Web MailD является комплексными. Он состоит из группы совместно работающих модулей, предназначенных для приема и передачи почтовых сообщений и их антивирусной и антиспам-проверки.

Комплексный компонент Dr.Web MailD может исполнять функции:

Прокси-сервера для протоколов SMTP и LMTP (режим SMTP/LMTP-прокси);

Фильтра сообщений для почтовых систем. Поддерживается интеграция со следующими почтовыми системами:

oSendmail;

oPostfix;

oExim;

oCommuniGate Pro;

oCourier;

oZmailer;

oQmail.

Прокси-сервера клиентских почтовых протоколов (POP3, IMAP), выполняющего роль фильтра-посредника между почтовой системой и почтовым клиентом пользователя.

Настройка параметров функционирования комплексного компонента обработки почты Dr.Web MailD (как в целом, так и его отдельных модулей) осуществляется при помощи конфигурационных файлов. Доступно также интерактивное управление работой Dr.Web MailD через интерфейс управления наподобие командной строки.

Структура компонента обработки почты

Общая структура программного комплекса Dr.Web для почтовых серверов UNIX приведена во Введении.

На рисунке ниже изображена структура комплексного компонента Dr.Web MailD и схема его взаимодействия с почтовыми системами (MTA и MTA/MDA).

maild_scheme

Рис. 17. Структура комплексного компонента Dr.Web MailD

Краткое описание компонентов, входящих в состав комплексный компонент обработки почты Dr.Web MailD, приведено в таблице.

Компонент

Описание

Receiver

Компонент предназначен для приема почтовых сообщений от почтовых серверов (MTA) или почтовых систем (MDA) для антивирусной и/или антиспам-проверки. Функции этого компонента реализуются разными модулями (drweb-receiver, drweb-milter, drweb-cgp-receiver и т.п.), включаемыми в состав программного комплекса в зависимости от того, с какой почтовой системой интегрирован Dr.Web для почтовых серверов UNIX.

Поддерживается возможность одновременной работы в составе комплекса нескольких модулей, реализующих функции компонента Receiver, что позволяет получать и обрабатывать почту сразу из нескольких источников.

Некоторые модули также поддерживают возможность модификации/отправления полученных сообщений, принимая результаты проверки писем от компонента MailD core (например, такой возможностью обладает модуль drweb-milter, что позволяет ему возвращать почтовой системе Sendmail результат проверки писем до окончания SMTP-сессии).

MailBase

Специальная база данных, хранящая принятые письма до момента окончания их проверки подключаемыми модулями и отправки получателю, если они работают в асинхронном режиме. Для хранения писем используется файловое хранилище (письма хранятся в виде файлов).

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

MailD core

Основной компонент системы обработки почты. Он производит MIME-разбор поступивших сообщений, передает письма на обработку подключаемым модулям (plug-ins) и отвечает за хранение писем в базе данных. Результаты проверки отправляются либо компоненту Receiver (если идет обработка письма в асинхронном режиме и еще не истекло время ожидания результата проверки), либо компоненту Sender. Само проверенное письмо, если оно не было отвергнуто в процессе проверки, отправляется компоненту Sender для доставки получателю.

Функции компонента реализует модуль drweb-maild

Quarantine

Карантин – специальный каталог файловой системы, временно хранящий письма, не прошедшие проверку подключаемыми модулями (если в результате проверки письмо не было удалено или отвергнуто). Вместо каталога может быть использовано хранилище DBI.

Sender

Компонент отвечает за отправление всех исходящих писем, включая уведомления, отчеты и DSN. Письма отправляются либо напрямую в сопряженную почтовую систему, либо по протоколам SMTP/LMTP. В зависимости от используемых почтовых систем и протоколов, функции компонента Sender выполняют разные модули (drweb-sender, drweb-cgp-sender и т.п.). Как правило, модуль, используемый в качестве компонета Sender, является парным модулю, используемому в качестве компонента Receiver.

Компонент Sender может получать запросы на отправление писем и уведомлений от компонентов MailD core, Notifier и Monitor

Notifier

Компонент отвечает за создание и отправку служебных писем двух типов:

Уведомлений MailD – представляет собой письмо, направленное с адреса, указанного в параметре FilterMail настроек Dr.Web MailD, и содержащее некоторое сообщение Dr.Web MailD (например, о наличии вирусов в полученном письме);

DSN (delivery status notification) – представляет собой письмо, автоматически формируемое MTA при возникновении тех или иных неполадок и содержащее служебную информацию. В соответствии с требованиями имеет пустой заголовок FROM.

Уведомления формируются в процессе работы комплекса. Запрос на отправку уведомлений могут отправлять как подключаемые модули (например, при обнаружении вируса), так и другие компоненты системы в случае их соответствующей настройки. Например, компонент MailD core может посылать запрос на создание общего отчета со статистикой работы всех используемых подключаемых модулей, а компонент Sender может посылать запрос на формирование DSN о невозможности отправить письмо.

Уведомления могут рассылаться отправителям и получателям писем, а также администратору системы.

Функции компонента реализует модуль drweb-notifier

plug-in

Дополнительные модули, используемые для анализа писем, в том числе, на содержание вирусов, вредоносного ПО и наличие признаков спама. Обработка писем подключаемыми модулями осуществляется в порядке, определяемом пользователем системы. Состав используемых подключаемых модулей и порядок их вызова могут быть изменены без перезапуска Dr.Web MailD, для этого достаточно изменить соответствующие параметры в конфигурационном файле и отправить сигнал SIGHUP компоненту MailD core или компоненту Dr.Web Monitor.

Основные используемые подключаемые модули (состав зависит от поставки):

Drweb – модуль, осуществляющий антивирусную проверку почты с помощью компонента Dr.Web Daemon, которому сообщения передаются на проверку уже разобранными на части.

Dr.Web HeadersFilter – модуль, осуществляющий фильтрацию сообщений по содержимому заголовков. При задании правил фильтрации можно использовать регулярные выражения (используется синтаксис регулярных выражений Perl).

Vaderetro – модуль, осуществляющий спам-фильтрацию почты через стороннюю библиотеку VadeRetro. Правила распознавания спама, используемые этой библиотекой, динамически обновляются через компонент Dr.Web Updater, что позволяет сохранять стабильно высокое качество фильтрации.

Dr.Web Modifier – модуль, позволяющий осуществлять модификацию сообщения или какой-либо его части в зависимости от содержимого сообщения и его конверта. С его помощью можно, например, добавлять текстовую подпись в проверенные сообщения или удалять картинки из письма, отмеченного как спам.

Конкретный набор модулей, образующих программный комплекс Dr.Web для почтовых серверов UNIX, зависит от поставки, а также от выбранной почтовой системы, с которой он интегрируется и способа интеграции.

Особенности Dr.Web MailD

Dr.Web MailD имеет развитую систему настройки Правил обработки писем (в том числе – их внутренней межмодульной маршрутизации), формирования статистики, отправки отчетов и уведомлений об обработке проверяемых писем, включая как DSN, так и специальные уведомления MailD (о вирусах и т.п.).

В Правилах обработки писем, а также во всех параметрах конфигурации, имеющих специальный тип Lookup, можно использовать информацию, извлекаемую при помощи запросов LDAP, из текстовых файлов, а также из реляционных баз данных. Поддерживаются следующие системы управления базами данных (СУБД):

Oracle

MySQL

PostgreSQL

SQLite

Firebird

CDB

Berkeley

Кроме того, Dr.Web MailD может подключиться через механизм ODBC к любому источнику данных, для которого имеется ODBC-драйвер. Работа с каждым источником данных производится независимо от других, с использованием настроек подключения, индивидуальных для этого источника. Одновременно в Правилах обработки писем и во всех параметрах конфигурации, имеющих тип Lookup, могут извлекаться и использоваться данные из разных источников.

Также Dr.Web MailD позволяет вести внутреннюю базу данных пользователей (адресатов писем), с заданием для каждого пользователя (а также группы пользователей) индивидуальных Правил обработки их сообщений и формирования индивидуальной или групповой статистики.

warning

Работа с базой данных пользователей ведется только через интерфейс интерактивного управления.

Для борьбы со спамом и атаками типа DHA в Dr.Web MailD реализованы технология определения репутации IP-адресов клиентов, технология управления счетом (как соединений, так и каждого письма), а также технология управления SMTP-ограничениями, позволяющая отсеять подозрительного клиента еще на этапе подключения и передачи письма (сразу в рамках SMTP-сессии). Указанные технологии позволяют повысить эффективность борьбы со спамом и снизить нагрузку на защищаемую почтовую систему.

Получатель или отправитель (адресат) сообщения, помещенного в Карантин, имеет возможность дистанционного управления сообщением в нем при помощи отправки на Dr.Web для почтовых серверов UNIX специальных управляющих писем, отправляемых в ответ на уведомления о помещении письма в Карантин, поступившие адресату.

В случае если объем и интенсивность почтового трафика велики, Dr.Web MailD позволяет организовать работу комплекса в режиме кластера, с размещением различных компонентов программного комплекса на нескольких серверах с распределением нагрузки для повышения производительности. Для этого в состав комплекса включены специальные прокси-компоненты (Proxy client и Proxy server), обеспечивающие прозрачное удаленное взаимодействие компонентов Sender и Receiver с центральным компонентом MailD core.

При необходимости может быть обеспечено взаимодействие сразу с несколькими MTA/MDA при помощи механизма одновременной параллельной работы нескольких пар компонентов Sender и Receiver (при этом они могут быть разного типа).