Построение надежного сервиса электронной почты  
  Из практического опыта ...  


Настоящие материалы являются авторскими, права автора защищены Законами РФ и международными соглашениями. Для использования настоящих материалов вам необходимо ознакомиться и полностью принять лицензионное соглашение. В случае, если вы не принимаете настоящее лицензионное соглашение полностью, вы не имеете права пользоваться настоящими материалами


В статье описан опыт автора по созданию комплексного сервиса электронной почты, отвечающего требованиям надежности, защиты от вирусов и рекламных рассылок (СПАМа). Материал может быть интересен как специалистам, отвечающим за коммуникационные сервисы - в качестве сборника отлаженных готовых рецептов, так и широкому кругу - в качестве обзорного материала по сопутствующим построению EMail сервиса задачам

Описываемый сервис электронной почты - далеко не первый, создаваемый автором, но первый на момент написания по масштабам и требованиям - и поэтому документриуемый отдельной статьёй. Поставленная задача по созданию почтового сервиса содержала ряд уточняющих требований бизнеса, характерных высокой критичностью для крупной организации. Начать, наверное стоит с начала

К моменту принятия автором направления SMTP почты на администрирование модификация существующего почтового сервиса назрела - существовавшая система однозначно не справлялась с потоком спама и не отвечала требованиям обеспечения высокой доступности сервиса, тогда как бизнес использовал электронную почту довольно интенсивно. Возникавшие несколько раз нештатные ситуации, блокировавшие работу электронной почты на несколько часов, вызывали серъёзную обеспокоенность пользователей. Стоит сказать, что пользователей было много - около трех тысяч только в Москве, и немаленькое количество филиалов (несколько десятков) на просторах России

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

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

А, например, закрытие почты для адресов, не имеющих обратной DNS (PTR) записи на серверах DNS приводило к невозможности отправить почту честным пользователям, провайдеры которых по какой-то причине не обеспечили наличия PTR записи - котороя, кстати, должна присутствовать по стандартам, но совсем не требуется для реальной работы и зачастую не устанавливается провайдерами

Такое положение, конечно, не устраивало потребителей почтового сервиса - пользователей банка, т.к. не обеспечивало ожидаемых коммуникационных возможностей. Большое количество спама захламляло каналы доступа к Интернет, а большое количество корреспондентов сводило на "нет" любые мысли о ручном ведении "белых" и "черных" списков. Требовались другие решения - и они были найдены, а точнее - вытащены из багажника "наработанных" готовых решений автора. Практически все используемые решения являются открытыми, уже много лет применялись автором в различных организациях, а также в типовых коммуникационных серверах разработки автора

По совокупности условий было принято решение на первом этапе нарастить функциональность почтового сервиса за счет введения совершенно новых решений, не исключая при этом решений, использовавшихся ранее. Комплекс дополнительных решений, размещенных на внешнем сервере (DMZ) включал дополнительный антивирусный фильтр на свободном антивирусе ClamAV, а также ряд антиспам фильтров, а именно фильтр контроля существования отправителя (milter-sender), контекстный антиспам фильтр - маркировщик (свободный продукт SpamAssassin), фильтр выборочного удаления промаркированных как спам писем

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

Основной эффект антиспам защиты сыграл фильтр проверки существования корректного отправителя почты. Суть метода, позволивщего отсекать до двух третей входящих в банк писем в том, что при поступлении письма оно притормаживается, и почтовый сервис тут же отправляет описанное в стандартах небольшое тест-сообщение на адрес отправителя. Если сервер отправителя принимает тест-письмо, то отправитель считается честным, его "приторможенное" письмо принимается полностью и передаётся последующим фильтрам. Нужно отметить, что тест-письма не доставляются отправителю и для него как бы не существуют, а объём тест траффика можно считать ничтожным

Такой фильтр обеспечил отсечку до двух третей входящего на сервис почтового траффика до приёма тела письма, существенно снижая объём почтового траффика и совокупную нагрузку на DMZ почтовый сервер, а крайне низкое количество выявленых исключений (около десятка за полгода) позволяет обрабатывать их в ручном режиме - занесением в "белый" список

Контекстный антиспам - фильтр, реализованный на свободном продукте SpamAssassin, показал после некоторого тюнинга и тренинга вдвое лучшую точность и объём распознавания спама, чем аналогичное решение KasperskyAS, имеющее, кстати, стабильные периодические обновления спам баз - в отличие от неимеющего их SpamAssassin. Встроенный в последний продукт механизм тренинга показал себя как существенно более предпочтительный - по конечному результату

Фактически ранее использовавшиеся сервисы антивирусной и антиспам защиты остались не у дел, выполняя функции проверки внутрибанковского почтового траффика. Нужно отдать должное антивирусу DrWEB, который пару раз за год таки отловил пропущенные ClamAV вирусованные письма, пришедшие извне. Вирусами оказалось нежелательное ПО, занесенное в антивирусную базу DrWEB

Следующим этапом было обеспечение высокой доступности сервиса, что решилось установкой двух независимых почтовых серверов в DMZ, и организацией маршрутизации посредством встроенного в SMTP механизма MX - записей. Данное решение обеспечило непрерывное предоставление почтового сервиса корреспондентам банка даже в случае отказа одного из почтовых серверов DMZ и было успешно реализовано и оттестировано

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

Что касается собственно ПО, используемого при создании решения, то в качестве почтовых сервисов на внешних серверах использовался Sendmail, а на внутренних - Exim. Выбор разных почтовых серверов обусловлен историческими особенностями и хвостом дополнительных программных разработок, используемых для обеспечения технологичесикх процессов. Прочее общедоступное ПО было названо в статье выше. Кроме того стоит отметить, что фильтр milter-sender для sendmail является в настоящее время платным продуктом, тогда как при построении почтового сервиса использовалась имевшаяся в банке, но не используемая еще бесплатная версия. Аналогичный milter-sender функционал совершенно бесплатно встроен в Exim и Postfix, но не тестировался автором, ограниченным в выборе ПО заранее установленными рамками

В дальнейшем комплексные антиспам решения вобрали в себя еще две достойные внимания технологии. Первая из них - "серые списки", внедрение которых вкупе с новыми наработками по конфигурированию, позволило довести эффективность антиспам модуля до 90% против прежних 75%. Второй рекомндуемой технологией стала простое выставление greeting pause. Фактически в начале почтового обмена ваш почтовый сервер берет паузу, и если удаленная сторона является неинтеллектуальным рассыльщиком спама, игнорирующим паузу, то соединение тут же сбрасывается. Таких неинтеллектуальных роботов очень много, и их задача - вывалить спам рассылку на максимальное количество адресов в максимально короткое время, иэти роботы не имеют возможности ждать окончания паузы вашего почтового сервера - иначе их эффективность сильно падает ... поэтому простейшая пауза в начале сеанса, даже секунд на 15, отсеивает множество "врагов"

В результате антиспам решение приобрело вид стэка последовательных фильтров, доступных в Интернете как open source решения и отрабатывающих в последовательности greeting pause, "серые списки", проверка существования отправителя, антивирусный фильтр, контент фильтрация (SpamAssassin). Стоит отметить, что все фильтры, кроме последнего, используют существующие в настоящее время фундаментальные отличия спамеров и честных отправителей почты, и обеспечивают довольно качественное отсеивание вредителей. Конечно, существуют отдельные почтовые сервера / отправители, не проходящие корректно через какие - то из фильтров описываемого антиспам решения. Такое случается довольно редко и обходится включением заведомо честного отправителя в белый список соответствующего фильтра. Что касается контент фильтрации, то она не застрахована от ошибок, и пользователю предоставлена альтернатива - либо не принимать распознанное контент фильтром как СПАМ сообщение вообще, либо принимать его с пометкой "СПАМ" в теме для самостоятельного принятия окончательного решения

Ниже приводится типичная статистика, ежедневно собираемая на почтовых серверах и по большей части характеризующая работу созданного почтового сервиса (данные обновлены для редакции 2 статьи на сентябрь 2008 года):

Параметр Значение,
писем в день
некорректная SMTP сессия абонента 14215
вошедших в систему писем 125604
- в т.ч. снаружи 122211
отфильтрованных milter-greylist 59945
отфильтрованных milter-sender 56536
дошло до контент фильтрации 5730
... распознано как СПАМ 806
успешно отправленных исходящих 9414
... в т.ч. внутрь 5730
... в т.ч. наружу 2822

Статистика несколько упрощена, однако отражает особенности функционирования комплекса. Из 122 тысяч писем, вошедших в систему извне (за сутки), технологии серых списков и проверки существования отправителя отфильтровали 116 тысяч, что составляет немного более 95%. Далее отфильтрованный почтовый поток попадает в контент фильтр, настроенный на довольно высокую границу распознавания спама (8 единиц для SpamAssassin), что позволяет отмаркировать еще около 20% от пропущенного ранее потока. Фактическая эффективность системы превышает 95%, и имеется потенциал повышения эффективности за счет введения дополнительной интеллектуальной обработки почтового потока. а также ручной (автоматизированной) обработки почтового потока администратором. Замечу, что эти механизмы не используются в силу признания полученного результата достаточным

Система почтового релеинга со всеми описанными фильтрами выстроена на основе нескольких одновременно работающих почтовых серверов, обеспечивающих балансировку нагрузки и повышенную отказоустойчивость очень "малой кровью". Также каждый почтовый фильтр поддерживает черные и белые списки, сопровождение которых после внедрения стэка автоматических фильтров становится реальной задачей, т.к. проход спама до пользователей относительно невелик, и его количество поддается ручному анализу. Законченное решение позволило в некоторых случаях доводить эффективность фильтрации до 99%

На этом обзор завершен. Особо хочется отметить, что, хотя перспективы развития созданного почтового сервиса не исчерпаны, но полученный результат признан "достаточно хорошим" для обеспечения потребностей бизнеса - особенно по сравнению с имеемой ранее ситуацией, и потому проект считается завершенным. За кадром осталось описание последующих этапов модернизации почтовой системы с переводом сервиса конечного пользователя на кластерные решения LotusNotes, а также описание конкретных конфигураций и описание потребовавшегося тюнинга Sendmail. Всё же обзорный материал - это не детальное техническое руководство, да и реализация описанных возможностей не представляет трудностей для квалифицированного системного администратора

Ремарка. Описанный комплекс специалист может выстроить из доступных в интернете open source решений. У автора также существует свой вариант - но это уже территория авторского права, т.к. эти наработки входят в авторскую систему КоСиКУЛС и основанные на ней коммерческие типовые коммуникационные сервера от автора

(C) Белонин С.С., ноябрь 2006

(даты последующих модификаций не фиксируются)



     
   
   
    Нравится      

(C) Белонин С.С., 2000-2018. Дата последней модификации страницы:2018-01-09 13:25:29