Re: [Exim-users] аналог spamassasin
On 12.02.2011 22:43, Victor Ustugov wrote: t...@irk.ru wrote: а есть что-нибудь некоммерческое к чему exim может ходить через spamd_address? http://bitbucket.org/vstakhov/rspamd/ разработчик из России, работает в Рамблере Так как я также подписан на эту рассылку, то прокомментирую некоторые моменты. баги сабмитит в основном один пользователь, плюс несколько анонимусов, т. е. пока rspamd скорее всего мало кем используется Увы, да - rspamd получился довольно сложным в развертывании, что зачастую отталкивает пользователей. что касается интеграции с exim, то есть как минимум три способа: 1. работа по протоколу SpamAssassin'а RSPAMC (не пробовал) Протокол SpamAssassin'а - это все-таки spamc, а не rspamc. 2. работа по протоколу RSPAMC через одну из двух предлагаемых функций local_scan (пробовал, работает, но local_scan для меня неприемлем) 3. на основе штатных local_scan функций легко можно написать свою dlfunc (в том числе благодаря простоте протокола RSPAMC, см. выше) Кроме этого, начиная с 0.3.5 можно использовать библиотеку librspamdclient. Или же приложенный патч. уровень false positives и false negatives выше, чем у SpamAssassin, правда ситуация немного выравнивается после дообучения местного Bayes фильтра. Думаю, что статистика SA, использующая униграммы (то есть, одиночные слова) намного хуже, чем статистика rspamd, которая использует алгоритм OSB на окне из 5-ти слов (то есть, анализируются не только слова, но и их сочетания). Похожие алгоритмы используются также, например, в dspam или в crm114. свои правила писать не то чтобы сложнее, скорее неудобней. само правило лежит в одном месте, его подключение и вес в другом, проверка корректности синтаксиса считает синтаксис некорректным, если правило описано, а вес не указан. и если приходится использовать несколько метрик, при этом в тестовых целях нужно одну закомментировать, то нужно в других файлах закомментировать и все правила, которые используются только в этой метрике. На самом деле такой подход появился в результате следования логике разбиения правил в SA. Кроме того, была потребность повесить на некоторое правило функцию lua (например, правило EMPTY_IMAGE в примере конфигурации). для правил нет строки описания, как в SpamAssassin, т. е. в ответе демона фигурируют лишь названия правил, без весов и описания. как в этом отношении ведет себя rspamd работая по протоколу SPAMC, я не проверял, т. к. работа по протоколу SPAMC подразумевает, что контент сканер сам получает информацию об адресе клиента, HELO, адресе отправителя и адресе получателя из заголовков письма. а в случае использования протокола RSPAMC эти данные передаются демону в явном виде. Вообще, добавить описания к правилам - хорошая, годная, а главное - легко реализуемая идея, например, сделав в описании правил атрибут description: symbol weight=1.0 description=Some symbolSYMBOL/symbol синтаксис регексповых правил отдаленно напоминает используемый в SpamAssassin, вплоть до того, что можно написать конвертор. в регекспах не работают конструкции \1, \2 и т. д. моих знаний программирования на C не хватило, чтобы понять, виноват rspamd или pcre. Просто для ускорения работы отключены capture group. Опять же можно добавить крыжик в конфигурацию, чтобы их можно было включать. плагины написаны на LUA. в принципе, синтаксис получается более компактным, чем в плагинах на Perl для SpamAssassin. в плагине check_forged_headers есть ошибки, из-за чего правило FORGED_RECIPIENTS ложно срабатывает время от времени. Был бы признателен за подробности: в каких случаях оно ложно срабатывает? я наткнулся уже на пару писем, при обработке которых возникаются проблемы при описании более одной метрики в rspamd.xml. демон пишет в сокет ответ с данными по первой метрике и начинает потреблять около 90% процессорного времени. тестирование проводилось в виртуалке, на физической машине может меньше начнет отжирать, но от этого не легче. после этого приходилось демона убивать по kill -9. пока отложил проблему в сторону, т. к. вторая метрика была создана в тестовых целях и для штатной работы пока вполне хватит одной метрики. Спасибо за репорт, я попробую создать такую конфигурацию. Ну и в целом, я всегда готов рассмотреть пожелания по улучшению rspamd или же по устранению багов, в нем обнаруженных :) --- src/spam.c.orig 2011-01-20 19:29:51.179597017 +0300 +++ src/spam.c 2011-01-20 19:40:42.818516872 +0300 @@ -21,6 +21,9 @@ int spam_ok = 0; int spam_rc = 0; +/* push formatted line into vector */ +static int push_line(struct iovec *iov, int i, const char *fmt, ...); + int spam(uschar **listptr) { int sep = 0; uschar *list = *listptr; @@ -211,14 +214,26 @@ } /* now we are connected to spamd on spamd_sock */ - (void)string_format(spamd_buffer, - sizeof(spamd_buffer), - REPORT SPAMC/1.2\r\nUser: %s\r\nContent-length: %ld\r\n\r\n, - user_name, - mbox_size); + int r, request_p = 0; + const char
Re: [Exim-users] аналог spamassasin
Не думаю, что это такой уж оффтопик. Пока, во всяком случае, никто не выражал своего негодавания по этому поводу. Кстати, если есть реальный интерес, то можно сегодня же создать рассылку, специально посвященную вопросам фильтрации спама. Не конкретно SA, а более общей тематики. 2011/2/13 Victor Ustugov vic...@corvax.kiev.ua p. s. нас сейчас погонят отсюда за оффтопик (и будут правы). так что нужно бы перебираться или в личку или в другой лист. ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
On 13.02.2011 2:46, Victor Ustugov wrote: Vsevolod Stakhov wrote: с CRM114 вообще отдельный разговор. демона нет. сканер написать на своем же языке. для испльзования libcrm114 нужно писать обертку такой сложности, что проще использовать готовый контент сканер. вот как раз RSPAMD таким и является. Ну crm114 пишется математиком, оттого и такие странности :) в SA свои правила можно оформлять, не разнося описания правил и соответствующие баллы в разные файлы. поэтому если мне нужно что-то отключить, я могу или файл просто убрать из соответствующего каталога, или закомментировать несколько подряд идущих строк. в RSPAMD для отключения метрики мне нужно кроме правки /usr/local/etc/rspamd.xml еще найти все описания правил и закомментировать их. Сейчас можно использовать dynamic rules: [ { rule: file:///test/rP, symbol: R_TMP_1, factor: 1.1, networks: [!192.168.1.0/24, 172.16.0.0/16], enabled: false } ] Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде: conf['module']['symbol'] = 'rule' metrics['name']['symbol'] = weight т. е. интересует что-то типа такого: local MAILMAN_MSGID = 'From,Message-ID=/([^\\@]+\\@[^]+),mailman\\.\\d+\\.\\d+\\.\\d+\\.\\1$/' Опять же сделать это функцией на lua должно быть весьма просто (функции могут писаться прямо в правилах). временно я отбился заменой условия сравнения адресов на следующее: string.find(string.lower(mr), string.lower(sr), 1, true) Ага, спасибо! документация касается в основном администрирования того, что можно получить из коробки. в ней мало что есть о том, как допилить систему под себя. Документация по lua API на подходе. p. s. нас сейчас погонят отсюда за оффтопик (и будут правы). так что нужно бы перебираться или в личку или в другой лист. Да, по конкретным вопросам и предложениям лучше писать мне лично. -- Vsevolod Stakhov ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
Andrey N. Oktyabrski wrote: On 02/13/11 02:46, Victor Ustugov wrote: p. s. нас сейчас погонят отсюда за оффтопик (и будут правы). так что нужно бы перебираться или в личку или в другой лист. Не надо в личку, мне тоже интересно :-) ну... я был бы склонен все же в листе обсуждать rspamd. и если бы пришлось создавать новый лист, то ты был бы одним из первых, кто был бы на него подписан принудительно ;-) ну а раз нас Игорь пока не гонит отсюда, то можно продолжить. если Всеволод поддержит общение тут, то я опишу уже выложенные примеры писем, при проверке которых возникали проблемы с SPF записями и двумя метриками в rspamd.xml. глядишь, и ты повернешься лицом к контент сканерам :) кстати в этом случае, вполне логичным будет с твоей стороны со временем подготовить pkgsrc и протолкнуть в дерево. проталкивание rspamd в дерево портов OpenBSD уже не актуально для тебя, на сколько я понимаю... -- Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua public GnuPG/PGP key:http://victor.corvax.kiev.ua/corvax.asc ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
Я только за! 13.02.2011 11:43, Igor Karpov пишет: Не думаю, что это такой уж оффтопик. Пока, во всяком случае, никто не выражал своего негодавания по этому поводу. Кстати, если есть реальный интерес, то можно сегодня же создать рассылку, специально посвященную вопросам фильтрации спама. Не конкретно SA, а более общей тематики. 2011/2/13 Victor Ustugov vic...@corvax.kiev.ua mailto:vic...@corvax.kiev.ua p. s. нас сейчас погонят отсюда за оффтопик (и будут правы). так что нужно бы перебираться или в личку или в другой лист. ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
On 02/13/11 12:43, Igor Karpov wrote: Не думаю, что это такой уж оффтопик. Пока, во всяком случае, никто не выражал своего негодавания по этому поводу. Кстати, если есть реальный интерес, то можно сегодня же создать рассылку, специально посвященную вопросам фильтрации спама. Не конкретно SA, а более общей тематики. Их же уже есть несколько, все мёртвые. Что-то про cyrus вроде было, и та, которая на тему перевода документации. По-моему, рассылку делить надо при избытке трафика, чего в данном конкретном случае, к сожалению, не наблюдается. ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
Роман Николенко wrote: А если посмотреть не в сторону spamd_address, а в сторону смтп прокси? Я у себя использую http://www.magicvillage.de/~Fritz_Borgstedt/assp/ http://www.magicvillage.de/%7EFritz_Borgstedt/assp/ настройка полностью простая через веб. тогда возможно лучше давать вот эти ссылки: http://assp.sourceforge.net/ http://sourceforge.net/projects/assp/ Будут вопросы без проблем обращайтесь. (обслуживает 11 доменов, трафик более 30к полезных писем в месяц ) тысяча писем в сутки - эта нагрузка по силах для любого контент сканера на не совсем убитом сервере. думаю, что из-за такой нагрузки не каждый из подписчиков этого листа поставит перед exim'ом такую прокладку как ASSP. ибо это сделает или невозможным или бесполезным использование всех тех средств фильтрации, которые уже были реализованы средствами exim. при этом работоспособность системы вцелом будет зависеть от еще одной перлового скрипта. и если в случае проблем со spamd exim может просто продолжить работу, то в случае проблем с ASSP доставка почты может быть попросту прекращена. все это лично мое мнение. 12.02.2011 21:43, Victor Ustugov пишет: t...@irk.ru wrote: а есть что-нибудь некоммерческое к чему exim может ходить через spamd_address? http://bitbucket.org/vstakhov/rspamd/ разработчик из России, работает в Рамблере баги сабмитит в основном один пользователь, плюс несколько анонимусов, т. е. пока rspamd скорее всего мало кем используется в портах rspamd появился совсем недавно, там версия 0.3.5. порт из архива исходников использовать нельзя - там какие-то старые обломки, смесь 0.2.9 и 0.3.0 интерфейс демона достаточно просто, нужно просто залить в сокет одним блоком заголовок со служебной информацией (тип запроса, размер письма, queue id, адрес отправителя, количество адресов получателей, адреса получателей, HELO и IP клиента) и текст письма. ответ также приходит одним блоком. т. е. проверить письмо можно вообще скриптом, заливающим эти данные в сокет через nc. что касается интеграции с exim, то есть как минимум три способа: 1. работа по протоколу SpamAssassin'а RSPAMC (не пробовал) 2. работа по протоколу RSPAMC через одну из двух предлагаемых функций local_scan (пробовал, работает, но local_scan для меня неприемлем) 3. на основе штатных local_scan функций легко можно написать свою dlfunc (в том числе благодаря простоте протокола RSPAMC, см. выше) работает rspamd быстрее, чем spamd, ресурсов требует меньше. ощущения субъективные. сравнительные тесты не проводились, т. к. к SpamAssassin у меня прикручено очень большое количество своих правил и несколько плагинов. а у rspamd и штатный набор правил ощутимо меньше, чем у SpamAssassin, да и своих правил я портировал на rspamd считанные единицы. уровень false positives и false negatives выше, чем у SpamAssassin, правда ситуация немного выравнивается после дообучения местного Bayes фильтра. свои правила писать не то чтобы сложнее, скорее неудобней. само правило лежит в одном месте, его подключение и вес в другом, проверка корректности синтаксиса считает синтаксис некорректным, если правило описано, а вес не указан. и если приходится использовать несколько метрик, при этом в тестовых целях нужно одну закомментировать, то нужно в других файлах закомментировать и все правила, которые используются только в этой метрике. для правил нет строки описания, как в SpamAssassin, т. е. в ответе демона фигурируют лишь названия правил, без весов и описания. как в этом отношении ведет себя rspamd работая по протоколу SPAMC, я не проверял, т. к. работа по протоколу SPAMC подразумевает, что контент сканер сам получает информацию об адресе клиента, HELO, адресе отправителя и адресе получателя из заголовков письма. а в случае использования протокола RSPAMC эти данные передаются демону в явном виде. синтаксис регексповых правил отдаленно напоминает используемый в SpamAssassin, вплоть до того, что можно написать конвертор. в регекспах не работают конструкции \1, \2 и т. д. моих знаний программирования на C не хватило, чтобы понять, виноват rspamd или pcre. плагины написаны на LUA. в принципе, синтаксис получается более компактным, чем в плагинах на Perl для SpamAssassin. в плагине check_forged_headers есть ошибки, из-за чего правило FORGED_RECIPIENTS ложно срабатывает время от времени. я наткнулся уже на пару писем, при обработке которых возникаются проблемы при описании более одной метрики в rspamd.xml. демон пишет в сокет ответ с данными по первой метрике и начинает потреблять около 90% процессорного времени. тестирование проводилось в виртуалке, на физической машине может меньше начнет отжирать, но от этого не легче. после этого приходилось демона убивать по kill -9. пока отложил проблему в сторону, т. к. вторая метрика была создана в тестовых целях и для штатной работы пока вполне хватит одной метрики. ___ Exim-users mailing list Exim-users@mailground.net
Re: [Exim-users] аналог spamassasin
13 февраля 2011 г. 13:33 пользователь Andrey N. Oktyabrski a...@bestmx.ru написал: On 02/13/11 12:43, Igor Karpov wrote: Не думаю, что это такой уж оффтопик. Пока, во всяком случае, никто не выражал своего негодавания по этому поводу. Кстати, если есть реальный интерес, то можно сегодня же создать рассылку, специально посвященную вопросам фильтрации спама. Не конкретно SA, а более общей тематики. Их же уже есть несколько, все мёртвые. Что-то про cyrus вроде было, и та, которая на тему перевода документации. По-моему, рассылку делить надо при избытке трафика, чего в данном конкретном случае, к сожалению, не наблюдается. Абсолютно согласен и поддерживаю двумя руками. Не стОит распылять силы и внимание, не тот случай. В этой рассылке действительно тишь да гладь. Так что предлагаю наоборот - расширить корридор этой рассылки с только Эксим на Эксим и вся около-эксимная тематика, в том числе и антиспам. Началось с обсуждения Эксима, перешло в детали - ну так и нет никакой проблемы :) -- Sincerely yours, Oleg Kostyuk (CUB-UANIC) ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
Vsevolod Stakhov wrote: в SA свои правила можно оформлять, не разнося описания правил и соответствующие баллы в разные файлы. поэтому если мне нужно что-то отключить, я могу или файл просто убрать из соответствующего каталога, или закомментировать несколько подряд идущих строк. в RSPAMD для отключения метрики мне нужно кроме правки /usr/local/etc/rspamd.xml еще найти все описания правил и закомментировать их. Сейчас можно использовать dynamic rules: [ { rule: file:///test/rP, symbol: R_TMP_1, factor: 1.1, networks: [!192.168.1.0/24, 172.16.0.0/16], enabled: false } ] учитывая идею дать возможность добавлять описания символов в rspamd.xml в виде symbol weight=1.0 description=Some symbolSYMBOL/symbol нужно и в json массиве для dynamic rules предусмотреть соответсвующий индекс. т. е. использовать что-то типа: [ { rule: file:///test/rP, symbol: R_TMP_1, description: Some symbol, factor: 1.1, networks: [!192.168.1.0/24, 172.16.0.0/16], enabled: false } ] Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде: conf['module']['symbol'] = 'rule' metrics['name']['symbol'] = weight в этом случае тоже нужно предусмотреть возможность указывать описания правил. видимо примерно так: metrics['name']['symbol']['description'] = 'Some symbol' если нет желания смешивать веса и описания правил, можно описывать описания по-другому: description['metric_name']['symbol'] = 'Some symbol' -- Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua public GnuPG/PGP key:http://victor.corvax.kiev.ua/corvax.asc ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
On 02/13/2011 05:12 PM, Victor Ustugov wrote: Vsevolod Stakhov wrote: учитывая идею дать возможность добавлять описания символов в rspamd.xml в виде symbol weight=1.0 description=Some symbolSYMBOL/symbol нужно и в json массиве для dynamic rules предусмотреть соответсвующий индекс. т. е. использовать что-то типа: [ { rule: /test/rP, symbol: R_TMP_1, description: Some symbol, factor: 1.1, networks: [!192.168.1.0/24, 172.16.0.0/16], enabled: false } ] Да, конечно, как только сделаю описания, добавлю их и в json. Кроме того, я, наверное, ошибся в примере - несколько dynamic rules добавляются весьма просто: [ { rule1: /some_regexp/Flags ..., ...}, { rule2: other_expression, ...}, ... ] Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде: conf['module']['symbol'] = 'rule' metrics['name']['symbol'] =weight в этом случае тоже нужно предусмотреть возможность указывать описания правил. видимо примерно так: metrics['name']['symbol']['description'] = 'Some symbol' Да, так и сделаю. Минус этого подхода в том, что в lua необходимо вначале объявить эту таблицу: metrics['default'] = {} metrics['default']['symbol'] = weight metrics['default']['symbol2'] = {} metrics['default']['symbol2']['weight'] = weight metrics['default']['symbol2']['description'] = 'string' По идее, поддержку такого подхода я уже добавил. -- Vsevolod Stakhov ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users
Re: [Exim-users] аналог spamassasin
Vsevolod Stakhov wrote: кстати в этом случае, вполне логичным будет с твоей стороны со временем подготовить pkgsrc и протолкнуть в дерево. В основное дерево - это непросто. Попыхтеть придётся изрядно. Сначала всё появляется тут: http://pkgsrc-wip.sf.net/ Только после того, как оно несколько лет там поболтается, не подохнет, будет оттестировано на всех платформах, где теоретически живёт pkgsrc, будет регулярно обновляться, и т.д. и т.п. в том же духе, есть шанс перенести в основное дерево. тогда проще будет сделать свой pkgsrc и поддерживать. Я имею доступ к pkgsrc-wip и попробую добавить pkgsrc туда. Ну а протолкнуть в дерево, я думаю, поможет знакомый с коммит битом, если это будет нужно кому-то :) ну вот... оказалось, что все не так уж плохо. а ценность pkgsrc уже скорее в том, что те же exim/rspamd/etc можно собрать под всякими Solaris/Open Solaris/Mac OS X со всеми зависимостями без особых проблем. В целом, rspamd тестировался на Solaris/Darwin/FreeBSD и Linux. Также один человек запустил его на arm'е (правда, после некоторых моих правок в код memory_pools насчет выравнивания указателей). Поэтому надеюсь, что с портированием rspamd ужасных проблем быть не должно. тогда вероятность того, что pkgsrc возьмут со временем в официальное дерево, увеличивается. -- Best wishes Victor Ustugov mailto:vic...@corvax.kiev.ua public GnuPG/PGP key:http://victor.corvax.kiev.ua/corvax.asc ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC ___ Exim-users mailing list Exim-users@mailground.net http://mailground.net/mailman/listinfo/exim-users