Courier Mail Server Forum Index Courier Mail Server
www.courierms.ru
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

v2,3| Выравнивание нагрузки при обработке почтового трафика

 
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Готовые решения
View previous topic :: View next topic  
Author Message
GrAnd
CMS Master
CMS Master


Joined: 21 Oct 2005
Posts: 766
Location: г. Коломна

PostPosted: 16 Sep 2008 16:57 (Tue)    Post subject: v2,3| Выравнивание нагрузки при обработке почтового трафика Reply with quote

После того, как количество спама, поступающего в наш домен, превысило 95% и стало составлять от 1 до 10 тысяч писем в сутки, я понял, что выполнять всю обработку (антиспам, антивирус, архивирование) на шлюзе совершенно не реально. Мало того, что сама обработка производится медленно, так она еще тормозит прокси-сервер и существенно замедляет доступ клиентов в Инет вообще. В первую очередь это связано с тем, что антивирусный сканер обычно запускается в привилегированном режиме и на несколько секунд загружает компьютер на 100%. Архиваторы работают не так требовательно к ресурсам, но стоит кому-то кинуть письмо с вложением на несколько десятков мегабайт, как добавление новых писем к архиву становится тоже очень длительной процедурой, причем существенно нагружает именно файловую систему. Что приводит к существенному замедлению в обращениях к кэшу прокси-сервера.
Ну а падение почтового сервера в результате DoS-атаки или высокого почтового трафика с зомбированных компьютеров (есть и такие спамботы, которые работают не напрямую через NAT, а через локальный почтовый сервер) приводит к блокированию всего доступа в Интернет.

В связи с этим было принято решение распределить обработку на 2 сервера. На самом шлюзе производить предварительную обработку каким-нибудь мощным антиспам-фильтром с отсеиванием львиной доли спама. А тяжелую обработку антивирусами и архиваторами производить собственно на отдельном почтовом сервере.

В качестве антиспам-фильтра была выбрана связка из бесплатного SMTP-прокси Spamooborona-1024 и опять-таки бесплатной трехпользовательской версии CMS. Т.к. SO-1024 (так же как и полная коммерческая версия SO) не удаляет письма самостоятельно, а только их маркирует спам-флагом, то эта обязанность возложена на MTA.
Пропущенные таким спам-фильтром письма поступают на собственно почтовый сервер предприятия, где и проходят дополнительную проверку антивирусным сканером и архивирование внешним архиватором.

Вот схема такой связки. А потом я опишу особенности настроек компонентов данной системы и ее недостатки.



Распределение нагрузки.GIF
 Description:
 Filesize:  15.48 KB
 Viewed:  36704 Time(s)

Распределение нагрузки.GIF



_________________
Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец!
Back to top
View user's profile Send private message
GrAnd
CMS Master
CMS Master


Joined: 21 Oct 2005
Posts: 766
Location: г. Коломна

PostPosted: 16 Sep 2008 17:22 (Tue)    Post subject: Настройки, особенности, недостатки. Reply with quote

SO-1024.

Настройка этого компонента проста до невозможности. Дело в том, что сложные настройки в бесплатной версии напрочь отсутствуют. Поэтому все сведено к минимуму.

  1. Указываем использовать SO-1024 в качестве SMTP-прокси. В этом режиме гарантируется почти прозрачная трансляция SMTP-команд между внешним SMTP-клиентом и MTA посредством PortMap или сходной технологии.
  2. В качестве адреса MTA указываем 127.0.0.1, т.к. вторая ступень фильтра в виде трехпользовательской версии CMS будет установлена тоже на шлюзовом компьютере.
  3. Т.к. порт TCP#25 будет занят SO-1024, то в качестве порта MTA указываем, например, 10025.


3-пользовательская версия CMS.

По сути, этот компонент нуждается в самой тонкой настройке:

  1. В настройке IP-адресов создаем группу "Self", включающую только адрес 127.0.0.1. Из группы "Local" этот адрес лучше исключить вообще. Или даже удалить всю группу "Local".
  2. Отключаем автоматический запуск сервисов POP3, HTTP, SOCKS. Впрочем, при необходимости их можно и оставить. Главное, чтобы они не перехватывали порты, необходимые для аналогичных сервисов других серверов.
  3. В настройках сервиса SMTP заменяем порт 25 на порт 10025 или какой там указали в SO-1024. Разумеется, оставляем включенным "Автоматический запуск".
  4. На вкладке "Доступ" в настройках сервиса SMTP указываем разрешать подключение только группе "Self". На вкладке "Дополнительно" снимаем галочку с "Разрешить отправку внешней почты" и устанавливаем "Применять антиспам". Остальные выключатели должны быть сняты. Если оставить разрешенной отправку внешней почты с адреса 127.0.0.1, то это приведет к превращению вашего шлюза в открытый релей и получение гигантского входящего трафика.
  5. Создаем почтовый домен, совпадающий по имени с локальным доменом. Указываем все письма для несуществующих пользователей помещать в основную очередь отправки "Main queue".
  6. Заводим при необходимости трех пользователей и потребное число псевдонимов. Я могу и ошибаться, но, кажется, одного пользователя все же придется завести.
  7. В планировщике указываем только задание на отправку из основной очереди "Main queue". Больше никаких заданий, расписаний и интервалов создавать не надо.
  8. В разделе "Отправка" создаем SMTP-сервер с адресом или именем локального почтового сервера. Порт оставляем 25. Если требуется, включаем аутентификацию и указываем аутентификационные данные для подключения к основному MTA.
  9. В свойствах основной очереди "Main queue" указываем использовать этот SMTP-сервер из списка и при 1 письме в очереди запускать задание на отправку из этой очереди. Таким образом вся почта для пользователей домена будет релеиться на основной MTA.
  10. В разделе "Обработка" настраиваем только антиспам. Снимаем галочку "Направлять спам по адресу", чтобы он просто удалялся, и устанавливаем "Применять антиспам после принятия письма". Это позволит анализировать подзаголовки в multipart-сообщениях.
  11. Настраиваем "белый" и "черный" списки. "Белый" настраивается из собственных потребностей - в него вносятся адреса постоянных респондентов. Так-же рекомендую внести в него правило X-Spam-Flag:"DLVR", чтобы пропускать письма, отмеченные SO-1024 как новостные рассылки.
  12. В "черный" список в первую очередь заносим правило X-Spam-Flag:"YES". Оно будет отсекать большую часть спама. Остальные правила настраиваются на основе анализа полей заголовков и их комбинаций. Например, у меня несколько десятков правил отслеживают распространенные сочетания букв в полях "Subject:", "From:", "To:", а так же соответствие этих полей полям "Receved:", "Message-ID", "Date:" и пр. Например, можно включить следующее правило: From:"@локальный_домен". Оно позволит отсекать письма якобы от локальных пользователей, но пришедшие извне.
  13. Разделы "Подключение" и "Настройка" настраиваются в соответствии с особенностями настройки сети и своим предпочтениям. Но лучше снять галочку "Хост зарегистрирован в DNS", т.к. вовне этот сервер отсылать все равно не будет, а для работы в локальной сети внешнее имя не нужно. Наоборот, лучше использовать локальное.


Основной MTA на основе CMS 2.06 (на данный момент).

Здесь все попроще и во многом делается по умолчанию:

  1. В свойствах SMTP-сервиса тоже включается "Применять антиспам". Можно выставить требование аутентификации, ограничение размера и запретить подключение определенной группе адресов по желанию. Отправлять внешнюю почту разрешить группе, в которую входят все локальные адреса, кроме локального адреса шлюза и 127.0.0.1. Проще всего из группы "Local" исключить эти адреса.
  2. В свойствах домена устанавливается не принимать письма для неизвестных пользователей.
  3. Чтобы несколько компенсировать ошибки отправителей в адресах получателей, рекомендую завести для локальных пользователей псевдонимы со схожими написаниями: director->direktor, buhgalter->buxgalter, secretar->sekretar и т.д.
  4. Тоже устанавливаем галочку "Применять антиспам после принятия письма".
  5. В черном списке желательно установить правило Received:"имя_MTA ([127.0.0.1])", где имя_MTA - имя сервера, как оно указано в поле "Хост зарегистрирован в DNS". Это позволит избежать DoS-атаки закольцовкой отправки.
  6. Остальные правила "черного" списка и "белый" список на основном MTA настраивать не нужно.

Остальные настройки остаются такими же, как и при работе MTA без предварительной фильтрации.


Недостатки использования этой связки прежде всего связаны с ограниченным функционалом и жесткими неизменяемыми настройками бесплатной версии SO-1024. Например, проверка по DNSBL осуществляется только по IP непосредственного коннекта, а не по цепочке, указанной в полях "Received:". Поэтому критика в отношении писем, пришедших через релей провайдера, если он указан во вторичной MX-записи, существенно снижена.
Нельзя так же перед SO-1024 установить дополнительный фильтр, т.к. в этом случае коннект к SO-1024 будет производиться с локальных адресов, а они жестко забиты в доверенную зону. В связи с этим все письма, пришедшие с этого предварительного фильтра будут маркироваться, как не спам.

Так же нельзя на SO-1024 настроить аутентификацию по SMTP. В связи с этим нельзя подключать его к MTA, требующему аутентификации, напрямую. Но использовать в качестве промежуточного релея 3-пользовательскую версию CMS в данном случае можно и нужно, т.к. этот релей уже можно подключать к основному MTA с аутентификацией.

_________________
Все, что началось хорошо, закончится плохо.
Все, что началось плохо, закончится еще хуже.
Если вам кажется, что все идет хорошо, значит вы чего-то не замечаете.
Если все закончилось хорошо, то, значит, это еще не конец!
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    Courier Mail Server Forum Index -> Готовые решения All times are GMT + 4 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
You cannot attach files in this forum
You can download files in this forum


Powered by phpBB © 2001, 2005 phpBB Group