24
Авг
2010

dcc-cgp helper

В предыдущей статье DCC для CGP я описывал свой патч для dcc-cgp. В настоящий момент в виде патча мои изменения поддерживать не так удобно, потому я сделал свой тарболл dcc-cgp-1.1.0-dcc-1.3.130.tar.gz

Это модифицированная версия dcc-cgp v1.1.0 и плюс исправленные патчи для накатывания на dcc-1.3.130.

Мои модификации dcc-cgp v1.1.0:

  • изменил коды ошибок GREY_XCODE и DCC_XCODE на x.9.9. Это позволяет сообщать отправляющей стороне о причине ошибки в момент работы greylist-инга;
  • изменил dcc_mk_su () для работы с новыми версиями dcc;
  • изменил GCP_PROTOCOLS – список протоколов, которыми сообщение может попасть в систему и будет обработано этим хелпером. В него добавлены некоторые WEB протоколы, но удалён RPOP;
  • немного исправлены информационные сообщения.

Я уже больше года использую эти модификации на своей системе и пока доволен.

Если вы хотите пользоваться не модифицированной версией от автора dcc-cgp, то вам надо заменить dcc-cgp/dcc-cgp.c на версию из оригинального дистрибутива и модифицировать одну строку:

-      dcc_mk_su(DCCsu, hp->h_addrtype, hp->h_addr, Port);
+      dcc_mk_su(DCCsu, hp->h_addrtype, hp->h_addr, 0, Port);

Установка модифицированной версии аналогична оригинальной:

  • скачать и развернуть архивы dcc и dcc-cgp;
  • содержимое dcc-cgp перенести в дерево dcc;
  • накатить dcc-CGP.patch и для не FreeBSD систем не забыть накатить dcc-CGP-nonFreeBSD.patch;
  • для перехода к не модифицированной версии dcc-cgp заменить dcc-cgp/dcc-cgp.c из оригинального дистрибутива и изменить одну строку как это описано чуть выше;
  • собрать, установить и настроить dcc как это описано в его документации;
  • скопировать получившийся dcc-cgp/dcc-cgp в рабочую папку CGP и настроить его запуск как CGP хелпера.
0
Небольшое, но важное обновление хелпера поиска вложений для CGP: включено mu_message_destroy (). До этого оно было выключено по причине утечек памяти, которые вызывало. Но отсутствие mu_message_destroy () приводило к замусориванию /tmp директории. Сегодня в git версии mailutils появились исправления этих утечек и я включил mu_message_destroy (). После обновления findattach-cgp.c надо удалить мусор в /tmp:
 $ rm /tmp/mu*

После месячного тестирования решил опубликовать еще один «хелпер» для CGP: findattach-cgp.c

Использовать этот «хелпер» можно для запрещение прохождения через почтовую систему определённых типов файлов. Например так, как описано на сайте РГУ.

Работа фильтра сводится к поиску вложений в проходящих через него сообщениях. Фильтр добавляет в сообщение заголовок с расширением вложенных файлов. Например для *.exe вложений будет добавлен заголовок: «X-AttachExt: exe». Добавляется только один заголовок для каждого типа файлов.

По функционалу фильтр похож на фильтр от компании Niversoft. Он написан на C, потому имеет высокую скорость работы.

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

0
28
Дек
2009

DSPAM для CGP v1.0.1

949d805d531e

Обновил dspam-cgp.c до версии 1.0.1.

Добавлен традиционный для CGP заголовок вида: X-Junk-Score: 90 [XXXX]. Его удобно использовать для применения различных действий  к письмам с разным уровнем «вероятности» спама. Этот заголовок автоматически используется в разделе «Упрощённые Правила по Обработке Спама». Так же это можно использовать и в своих правилах вида:

Header Field is   X-Junk-Score:*[XXXX*
Store in  Junk
Discard

Подробнее о том как использовать этот заголовок можно прочитать на сайте CGP в описании настроек для фильтра CGPSpamCatcher.

Для задания граничных точек уровня вероятности используется массив чисел:

/* Defines the bar score ranges. By default the following ratios are used:
 * digital    Bar score
 * 0          []
 * 1-49       [X]
 * 50-70      [XX]
 * 71-89      [XXX]
 * 90-94      [XXXX]
 * 95-99      [XXXXX]
 * 100        [XXXXXX]
*/
int BARSCORERANGES[] = {0,49,70,89,94,99,100,      -1};

Вероятность может быть от 0 до 100. Количество диапазонов может быть любым. Вероятность вычисляется исходя из результатов, которые сообщает dspam.  Пока мне кажется оптимальным такое распределение вероятностей. Но вы можете сами изменить их, отредактировав BARSCORERANGES[]. Конечный «-1» всегда должен присутствовать последним элементом, он используется для определения конца массива.

О том как изменить dspam и использовать его для CGP читать в предыдущей статье: DSPAM для CGP в режиме добавления заголовков

0

dspam-logo-eyes DSPAM — это свободное программное обеспечение, представляющее собой статистический спам фильтр.

Проект DSPAM, который некоторое время оказался заброшенным, вот уже больше полугода активно развивается dspam-сообществом. В 2007 году его бывший автор Jonathan Zdziarski передал свои права компании Sensory Networks. А в январе 2009 года компания Sensory Networks объявила, что перестаёт заниматься этим проектом и полностью передала все права dspam-сообществу.

Про настройку, обучение и работу с dspam-ом есть много статей, я хочу написать об изменениях, которыми пользуюсь я для связки dspam-а и CGP.

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

0

whitelistНаравне с технологией DNS blacklisting (DNSBL) существует технология DNS whitelisting (DNSWL). Это списки ip-адресов, хранимые с использованием системы архитектуры DNS. Но в отличии от «чёрных списков»(blacklist), которые хранят ip-адреса распространителей спама, «белые списки»(whitelist) хранят ip-адреса тех, кто в рассылках спама не замечен.

Основная идея «белых списков» — уменьшить количество ложных срабатываний остальных антиспам фильтров.

Мне показалось, что наиболее полную базу «белых адресов» имеет ресурс dnswl.org. Этот ресурс, помимо самого факта «чистоты» ip-адреса, хранит так же уровень этой чистоты(Trust Level).

Всего уровней четыре:

  1. High – никогда не рассылал спам;
  2. Medium – крайне редки случаи спама, быстро реагируют на проблемы;
  3. Low – иногда рассылают спам, активно реагируют на проблемы, но менее оперативно;
  4. None – легитимный почтовый сервер, но может рассылать спам.

Применение этого белого списка может быть таким:

  • не применять технологию «серых списков» для всех ip-адресов с уровнями None-High;
  • не применять технологию «черных списков» для всех ip-адресов с уровнями None-High;
  • не проверять письма на спам (или проверять в меньшей степени) для ip-адресов с уровнями Medium-High.

Вся остальная почта с адресов, которых нет в DNSWL, пройдёт полную проверку.

Для CGP я написал dnswl-cgp.c фильтр (cgp helper), который делает запрос в DNSWL и добавляет в сообщение заголовок: «X-DNSWL-Status: <Trust Level>».

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

0

clam_av_logo

Как известно для прикручивания антивируса ClamAV к CGP есть два открытых helper’а: clamav-cgp и cgpav.

Есть еще один платный от  "Niversoft", но его мы рассматривать не будем.

Как выяснилось, работают они не одинаково. При рассылке большого потока одинаковых сообщений, заметили, что письма уходят медленно — в среднем 1 в секунду. Анализ SMTP диалога отправки сообщений показал, что тормозит проверка антивирусом. При отключенном антивирусе трафик вырос до 30 писем в секунду.

Исследования показали, что сам антивирус не потребляет особо много ресурсов. Тогда возникла мысль про тормоза «прокладки» между CGP и ClamAV. В это время у нас работал cgpav, решили попробовать  clamav-cgp. И о чудо, с новым helper`ом трафик вырос до 15 писем в секунду. Спасибо Andy Igoshin’у за замечательный продукт!

У себя я выложил слегка модифицированную «под себя» версию:

  1. Добавлено отрезание CGP-ных заголовков перед отправкой письма на проверку к ClamAV (рекомендации Николая Варинова из рассылки mx.ru: http://mx.ru/Lists/CGatePro/Message/17475-P.txt).
  2. Немного изменена логика работа helper’а. В случае каких-то внутренних проблем он всегда пропускает сообщение. В логи пишется диагностика ошибки.
  3. Если ClamAV сообщает, что письмо инфицировано, то вместо молчаливого удаления сообщения, генерируется ответ с причиной: в сообщении <YYYYY> найден <XXXXX> вирус.

Комментарии к изменениям: Читать полностью »