Обновлены хелперы для CGP
После начала активного использования моих CGP-хелперов на Solaris — произвел небольшие правки.
Обновились:
Общие обновления коснулись более корректной работы с трэдами. Под линуксом проблем не было, а вот под солярисом проявились. Так же в dspam-cgp.c появилась возможность указывать произвольное имя для X-Junk-Score заголовка. А в findattach-cgp.c добавлены инструкции для сборки под solaris и включен chomp () для типов расширений.
Так же хочу обратить внимание, что вышел релиз 2.2 со всеми нужными изменениями, так что начиная с этой версии хелпер findattach-cgp.c работает нормально.
dcc-cgp helper
В предыдущей статье DCC для CGP я описывал свой патч для dcc-cgp. В настоящий момент в виде патча мои изменения поддерживать не так удобно, потому я сделал свой тарболл dcc-cgp-1.1.2-dcc-1.3.140.tar.gz
Это модифицированная версия dcc-cgp v1.1.2 и плюс исправленные патчи для накатывания на dcc-1.3.140.
Мои модификации dcc-cgp v1.1.2:
- изменил коды ошибок GREY_XCODE и DCC_XCODE на x.9.9. Это позволяет сообщать отправляющей стороне о причине ошибки в момент работы greylist-инга;
- изменил dcc_mk_su () для работы с новыми версиями dcc;
- изменил GCP_PROTOCOLS – список протоколов, которыми сообщение может попасть в систему и будет обработано этим хелпером. В него добавлены некоторые WEB протоколы, но удалён RPOP;
- немного исправлены информационные сообщения;
- переименована функция strcasestr в _strcasestr.
Я уже больше года использую эти модификации на своей системе и пока доволен.
Если вы хотите пользоваться не модифицированной версией от автора 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 хелпера.
Find Attachments хелпер для CGP: обновление
$ rm /tmp/mu*
Find Attachments хелпер для CGP
После месячного тестирования решил опубликовать еще один «хелпер» для CGP: findattach-cgp.c
Использовать этот «хелпер» можно для запрещение прохождения через почтовую систему определённых типов файлов. Например так, как .
Работа фильтра сводится к поиску вложений в проходящих через него сообщениях. Фильтр добавляет в сообщение заголовок с расширением вложенных файлов. Например для *.exe вложений будет добавлен заголовок: «X-AttachExt: exe». Добавляется только один заголовок для каждого типа файлов.
По функционалу фильтр похож на фильтр от компании . Он написан на C, потому имеет высокую скорость работы.
DSPAM для CGP v1.0.1

Обновил dspam-cgp.c до версии 1.0.1.
Добавлен традиционный для CGP заголовок вида: X-Junk-Score: 90 [XXXX]. Его удобно использовать для применения различных действий к письмам с разным уровнем «вероятности» спама. Этот заголовок автоматически используется в разделе . Так же это можно использовать и в своих правилах вида:
Header Field is X-Junk-Score:*[XXXX* Store in Junk Discard
Подробнее о том как использовать этот заголовок можно прочитать на сайте CGP в описании настроек для фильтра .
Для задания граничных точек уровня вероятности используется массив чисел:
/* 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 в режиме добавления заголовков
DSPAM для CGP в режиме добавления заголовков
DSPAM — это свободное программное обеспечение, представляющее собой статистический спам фильтр.
Проект , который некоторое время оказался заброшенным, вот уже больше полугода активно развивается dspam-сообществом. В 2007 году его бывший автор Jonathan Zdziarski передал свои права компании Sensory Networks. А в январе 2009 года компания Sensory Networks объявила, что перестаёт заниматься этим проектом и полностью передала все права dspam-сообществу.
Про настройку, обучение и работу с dspam-ом есть много статей, я хочу написать об изменениях, которыми пользуюсь я для связки dspam-а и CGP.
Белые списки для CGP
Наравне с технологией DNS blacklisting () существует технология DNS whitelisting (). Это списки ip-адресов, хранимые с использованием системы архитектуры DNS. Но в отличии от «чёрных списков»(blacklist), которые хранят ip-адреса распространителей спама, «белые списки»(whitelist) хранят ip-адреса тех, кто в рассылках спама не замечен.
Основная идея «белых списков» — уменьшить количество ложных срабатываний остальных антиспам фильтров.
Мне показалось, что наиболее полную базу «белых адресов» имеет ресурс . Этот ресурс, помимо самого факта «чистоты» ip-адреса, хранит так же уровень этой чистоты(Trust Level).
Всего уровней четыре:
- High – никогда не рассылал спам;
- Medium – крайне редки случаи спама, быстро реагируют на проблемы;
- Low – иногда рассылают спам, активно реагируют на проблемы, но менее оперативно;
- None – легитимный почтовый сервер, но может рассылать спам.
Применение этого белого списка может быть таким:
- не применять технологию «серых списков» для всех ip-адресов с уровнями None-High;
- не применять технологию «черных списков» для всех ip-адресов с уровнями None-High;
- не проверять письма на спам (или проверять в меньшей степени) для ip-адресов с уровнями Medium-High.
Вся остальная почта с адресов, которых нет в DNSWL, пройдёт полную проверку.
Для CGP я написал dnswl-cgp.c фильтр (cgp helper), который делает запрос в DNSWL и добавляет в сообщение заголовок: «X-DNSWL-Status: <Trust Level>».







