0

Zmscanner — это модульный фильтр для почтовых систем Zmailer и Sendmail. Архитектура этого фильтра позволяет использовать его на высоко-нагруженных почтовых системах (>1'500'000 писем в сутки). Модульность фильтра позволяет гибко конфигурировать его функциональность, добавляя нужные вам модули и отключая не нужные.

Автор: Eugene Crosser
Домашняя страница:  http://www.average.org/zmscanner
Дополнительные модули: http://kocmuk.ru/zmscanner

Существующие стандартные модули:

Автор:  Eugene Crosser

  • check_ct (входит в zmscanner) — позволяет  использовать регулярные выражения, для фильтрации сообщений по «Content-Type».  Вы можете заблокировать HTML сообщения или сообщения с опасными вложениями (*.exe, *.pif и подобные).
  • zms_dehtml (отдельный модуль) — преобразует HTML сообщение в текстовый вид, для дальнейшего анализа следующими фильтрами.
  • zms_pcre (отдельный модуль) — PCRE библиотека от Philip Hazel используется для фильтрации писем по регулярным выражениям. Анализируется только текстовое тело письма. Для анализа HTML сообщений следует использовать модуль zms_dehtml для преобразования HTML в текстовый вид.
  • zms_clamav (отдельный модуль) — используется библиотека антивируса ClamAV для проверки вложений на вирусы.(Замечание: сам clamd демон не используется, проверка идёт через низкоуровневые вызовы библиотеки).

Дополнительные модули:

Авторы: kocmuk.ru и Mike Fandorin

  • zms_dcc (отдельный модуль) — адаптер Zmailer и Sendmail MTA к DCC-клиенту. Позволяет организовать проверку входящей почты через контекстный антиспам фильтр Distributed Checksum Clearinghouse (DCC). А так же возможность использовать DCC greylisting механизм для Zmailer.
  • zms_restage (отдельный модуль) — PCRE библиотека используется для фильтрации писем по регулярным выражениям. Анализируются: EHLO/HELO, env_From, env_To и wholeRFC822 сообщение. Фильтр позволяет задать условия передачи сообщений для обработки в другие программы (”| exec”).

0

Некоторое время назад, исследуя средства, которыми сейчас борются со спамом, я натолкнулся на DCC (Distributed Checksum Clearinghouse). Основная идея этой методики заключается в том, что на каждое, приходящее на почтовый сервер письмо, вычисляется контрольная сумма (checksum). Далее эта сумма передаётся на распределённый DCC-сервер хранения этих сумм. В ответ почтовый сервер получает данные о количестве уже существующих таких же сумм на DCC-сервере. Получив этот ответ, почтовый сервер может принять решение о дальнейшей судьбе этого письма: пропустить, отвергнуть или пометить как подозрительное.

Эта технология антиспама хорошо работает, когда есть общее распределённое хранилище сумм, и много клиентов, которые сообщают в этот сервер суммы своих писем. Спам обычно рассылается большим количеством одинаковых писем. И если несколько почтовых серверов сообщили о том, что какое-то письмо с такой контрольной суммой уже прошло большое количество раз, то наш сервер может попросту отвергнуть его, как массовую рассылку. При подсчёте контрольных сумм используется несколько параметров письма, но основные и чаще всего используемые это: Body, Fuz1 и Fuz2. Body — это контрольная сумма тела письма, а для подсчёта Fuz1 и Fuz2 используется fuzzy механизм, который позволяет игнорировать некоторые аспекты письма, которыми пользуются спамеры для усложнения обнаружения таких рассылок (hashbuster).


dcc-public dcc-public2

(статистика с сайта DCC )

Для общения MTA с DCC-сервером используется DCC-клиент, который получает на вход письмо от почтового сервера, высчитывает контрольные суммы, передаёт их DCC-серверу, получает от него ответ, анализирует ответ и сообщает MTA как поступить с письмом. DCC-клиент чаще всего устанавливается непосредственно на почтовый сервер, а DCC-сервер чаще всего удалённый. Давайте попробуем установить DCC и настроить его для разных типов работы.

Читать полностью »

1

В фильме «21» режисёра Robert Luketic упоминается задача теории вероятности:

Представьте, что вы стали участником игры, в которой вам нужно выбрать одну из трех дверей. За одной из дверей находится автомобиль, за двумя другими дверями — козы. Вы выбираете одну из дверей, например, номер 1, после этого ведущий, который знает, где находится автомобиль, а где — козы, открывает одну из оставшихся дверей, например, номер 3, за которой находится коза. После этого он спрашивает вас, не желаете ли вы изменить свой выбор и выбрать дверь номер 2. Увеличатся ли ваши шансы выиграть автомобиль, если вы примете предложение ведущего и измените свой выбор ?

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

Парадокс Монти Холла — одна из известных задач теории вероятностей, решение которой, на первый взгляд, противоречит здравому смыслу. Задача формулируется как описание гипотетической игры, основанной на американском телешоу «Let’s Make a Deal», и названа в честь ведущего этой передачи. Варианты решения и ключи к пониманию достаточно подробно описаны в Википедии.

Мы же попробуем написать программу, которая бы загадывала двери с машинами и козами, случайно выбирала бы одну из дверей и подсчитывала проигрыши и выигрыши.

Читать полностью »

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

Сразу хочу уточнить мои критерии выбора CMS: для не большого сайта с каталогом (без магазина) нужна бесплатная CMS с открытым кодом. Всё это должно сносно работать на виртуальном хостинге обычного провайдера (apache, php, mysql). То есть что-нибудь не большое, быстрое и  при этом функциональное. С простой внутренней структурой  и документацией.

Поискав и посмотрев обзоры в сети — я выбрал: TYPO3,  Joomla, Drupal и Cms Made Simple.

Читать полностью »

Выбор лучшей CMS системы для ведения дневника встал для меня еще год назад. Подумав и прикинув своё свободное время, я решил сделать выбор в пользу уже готовой системы управления (англ. Content management system, CMS).  Писать свою с нуля — это здорово, но хотелось быстро, всё и сразу.

Первый выбор был между движками:  InTerra Blog Machine от Dull.ru и e2 от Ильи Бирмана.  Поставив оба и покрутив, я оставил InTerra. Как-то оно мне показалось ближе. А у Ильи уж очень пугающая лицензия. :) Но через 2 месяца я снова начал поиски. Нехватающий функционал надо было дописывать самому и прямо в движок — системы plugin'ов не было. Потому следующим (и пока последним) движком для моего блога стал WordPress. Обилие уже готовых решений, дополнительных модулей и тем, перевод на русский язык, документация. Я быстро смог сделать свой блог таким, каким мне хотелось его видеть. И всё это легко обновлять при выходе очередной версии WordPress.

Потому для меня лучшая CMS для блога — WordPress. Отдельное спасибо порталу WordPress Россия — все о ВордПресс на русском языке.  Плагины и темы для Вордпресс. Форумы поддержки и документация.

Вспомнил, что давно уже хотел прикрутить плагин к WordPress, который бы формировал ссылки на Google Translate. Показалось, что это будет удобно тем, кому трудно читать на моём родном языке. Поискав, нашёл два подходящих плагина: google-ajax-translation и google-translate. Но они не понравились. Первый переводит только топики, и только первые 500 символов. Второй немного глючит (не верно определяет url текущей страницы) и сложен и неудобен в конфигурировании.

Потому сделал свой плагин: Google Translate2

Читать полностью »

0

В очередном продолжении рассказов про построения web-сервисов, хочу рассмотреть вопросы безопасности и аутентификации общения soap-клиента и soap-сервера.

Пусть условия таковы:

  1. сервер и клиент общаются друг с другом через публичный интернет, который наполнен снифферами;
  2. сервер имеет статический ip-адрес, а клиент находится за nat-ом;
  3. вместе с клиентом за тем же nat-ом находятся опасные соседи, которые могут и хотят получить к чему-нибудь не авторизованный доступ;
  4. и пусть клиента за этим nat-ом два: у них разное по функциональности ПО, с разными возможностями по построению soap-клиентов;
  5. ну а мы, естественно, обмениваемся супер секретными данными. :)

И так, как было рассмотрено в предыдущих постах, собираем soap-сервер на apache2:

Читать полностью »