Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Igor Karpov
2011/3/1 Vsevolod Stakhov 

> On 02/28/2011 10:48 PM, Igor Karpov wrote:
>
>> Меня давно терзает мысль о том, насколько перспективной могла бы быть
>> реализация Exim на Erlang. :)
>>
>
> Я считаю, что принципиально добиться этим ничего не удастся. Чистый Си
> быстрее erlang'а, а в концепции exim/postfix/sendmail на каждого клиента
> делается fork, в рамках которого делаются все необходимые обработки. MTA на
> erlang будет, скорее, по концепции походить на qmail, что автоматически
> увеличит накладные расходы на IPC.
>

Это возможно. Но концепция может быть изменена. А вот насчет расходов на
IPC, то нет смысла связываться с IPC, имея в своем распоряжении такой
инструмент, как Erlang.


>
> Мы, например, перед реальным MTA используем балансирующий прокси, который
> делает первоначальные ограничения по RBL, а также выполняет необходимые DNS
> преобразования (т.к. в рамках блокирующегося MTA это очень затратная
> операция). Сейчас этим прокси служит nginx+policy, а когда SMTP прокси в
> rspamd будет достаточно оттестирован, переведем все на него.
>
> В целом же, реализовать все состояния и переходы SMTP протокола будет
> трудно на любом языке. На erlang будет меньше проблем с памятью, зато больше
> накладных расходов на коммуникации.
>
>
Не могу согласиться. Кстати, вот пара ссылок по поводу вопросов
производительности в Erlang:

http://www.sics.se/~joe/apachevsyaws.html

http://stackoverflow.com/questions/2708033/technically-why-is-processes-in-erlang-more-efficient-than-os-threads


> Ну а "живая" замена кода - это вообще концепция, элементарно реализуемая в
> виде fork'ов. Пример - soft update в nginx.
>
>
Я никогда не использовал nginx. :)


> В общем, мое мнение, что писать MTA на эрланге ради эрланга - это не более,
> чем академический эксперимент :)
>
>
:) Exim тоже в свое время был чистым экспериментом :)

Только не поймите меня неправильно, Erlang ни в коей мере не является
панацеей от всех бед, у него своих проблем достаточно. Для реализации MTA,
как мне кажется, главной проблемой будет отсутствие работы со строками, ну и
Unicode тоже, конечно.

Но было бы крайне любопытно :)
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Vsevolod Stakhov

On 02/28/2011 10:48 PM, Igor Karpov wrote:

Меня давно терзает мысль о том, насколько перспективной могла бы быть
реализация Exim на Erlang. :)


Я считаю, что принципиально добиться этим ничего не удастся. Чистый Си 
быстрее erlang'а, а в концепции exim/postfix/sendmail на каждого клиента 
делается fork, в рамках которого делаются все необходимые обработки. MTA 
на erlang будет, скорее, по концепции походить на qmail, что 
автоматически увеличит накладные расходы на IPC.


Мы, например, перед реальным MTA используем балансирующий прокси, 
который делает первоначальные ограничения по RBL, а также выполняет 
необходимые DNS преобразования (т.к. в рамках блокирующегося MTA это 
очень затратная операция). Сейчас этим прокси служит nginx+policy, а 
когда SMTP прокси в rspamd будет достаточно оттестирован, переведем все 
на него.


В целом же, реализовать все состояния и переходы SMTP протокола будет 
трудно на любом языке. На erlang будет меньше проблем с памятью, зато 
больше накладных расходов на коммуникации.


Ну а "живая" замена кода - это вообще концепция, элементарно реализуемая 
в виде fork'ов. Пример - soft update в nginx.


В общем, мое мнение, что писать MTA на эрланге ради эрланга - это не 
более, чем академический эксперимент :)


--
Vsevolod Stakhov

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Victor Ustugov
Igor Karpov wrote:
> Ну тогда попробую еще предложить pl.dir
> из http://lua-users.org/wiki/FileSystemOperations

по сути это тоже отдельный кусок. даже два.

один - на C:
https://github.com/downloads/keplerproject/luafilesystem/luafilesystem-1.5.0.tar.gz

второй - уже на lua:
http://luaforge.net/frs/download.php/4463/pl.0.8b.zip

после сборки и установки lfs и установки pl уже можно использовать
функции из pl.dir

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

проще заказать Всеволоду еще одну функцию :)

просто изначально отключать отдельные правила было хлопотно. нужно было
найти в файлах в /usr/local/etc/rspamd/lua/regexp нужные правила,
закомментировать их, потом найти в /usr/local/etc/rspamd.xml, также
закомментировать их, потом уже перегружать rspamd.

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

для подключения пользовательских файлов с наборами правил в
/usr/local/etc/rspamd/lua/rspamd.lua было добавлено опциональное
включение файла /usr/local/etc/rspamd/lua/rspamd.local.lua:

if file_exists('rspamd.local.lua') then
dofile('rspamd.local.lua')
end

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

так вот свои правила уже можно включать в этот rspamd.local.lua. либо
непосредственно описывать их в этом файле, либо с помощью dofile()
инклудить отдельные файлы с отдельными наборами.

но т. к. закомментировать один dofile() в rspamd.local.lua на много
проще, чем комментировать правила в файле с ними и потом еще
комментировать описания этих правил в rspamd.xml, то похоже, что
актуальность проблемы получения средствами lua списка файлов по маске
уже достаточно низка.

кстати, в lua нет штатной функции проверки существования файла. поэтому
для использования в вышеописанном фрагменте была описана крошечная
функция (в том же rspamd.lua):

local function file_exists(filename)
local file = io.open(filename)
if file then
io.close(file)
return true
else
return false
end
end

вот так вот, как оказалось, придется еще велосипеды изобретать :)

> Если снова не то, перестаю умничать :)

да можно и поумничать :)


> 2011/2/28 Vsevolod Stakhov  >
> 
> On 02/28/2011 10:09 PM, Igor Karpov wrote:
> 
> Прежде всего, спасибо за столь интересный и объемный пост. :)
> 
> 
>я не нашел, как в lua получить список файлов по маске.
>можно было бы реализовать подключение правил из всех файлов из
>определенного каталога.
> 
> Я ни разу не программист на lua, но вот что дает беглый поиск:
> 
>*To grab the filenames of all *.txt files in a given
> directory, this
>seems to be the most effective way:*
>*allfiles=murgaLua.readDirectory("/home/mik")*
>*for i=1,table.maxn(allfiles) do*
>*if string.find(allfiles[i],"%.txt$") then print(allfiles[i])
> end*
>*end*
>*
>*
>*Apparently table.getn(table) has the same result as
> table.maxn(table)*
>*I dunno if one is actually better than the other.*
>*
>*
>*http://www.murga-projects.com/forum/showthread.php?tid=43*
> 
> Подойдет? :)
> 
> 
> Ну, это вызов некой C функции объекта. Из си, разумеется, все
> сделать очень просто. Если будет потребность, добавлю :)
> 
> -- 
> Vsevolod Stakhov
> 
> 
> ___
> 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


-- 
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

2011-02-28 Пенетрантность Igor Karpov
Exim statistics from 2010-05-13 06:49:00 to 2011-02-28 20:31:54

Grand total summary
---
  At least
one address
  TOTAL   Volume   Messages Addresses Hosts  Delayed
  Failed
  Received  84MB  11862 4121838 15.5%
1907 16.1%
  Delivered435MB  92399168545   439
  Rejects  59371228
  Temp Rejects   32  31

Deliveries by transport
---
  VolumeMessages
  address_pipe 837KB 131
  local_delivery5347   2
  mailman_transport 13MB2354
  remote_smtp  421MB   89912

Messages received per hour (each dot is 71 messages)


00-01124 .
01-02 95 .
02-03 98 .
03-04472 ..
04-05112 .
05-06   3566 ..
06-07   1820 .
07-08344 
08-09403 .
09-10709 .
10-11279 ...
11-12858 
12-13577 
13-14405 .
14-15339 
15-16356 .
16-17162 ..
17-18122 .
18-19169 ..
19-20120 .
20-21207 ..
21-22178 ..
22-23215 ...
23-24132 .

Deliveries per hour (each dot is 177 deliveries)


00-01832 
01-02 22
02-03405 ..
03-04911 .
04-05454 ..
05-06   4929 ...
06-07   4860 ...
07-08   5282 .
08-09   5493 ...
09-10   7571 ..
10-11   4303 
11-12   6061 ..
12-13   8043 .
13-14   7757 ...
14-15   8874 ..
15-16   7480 ..
16-17   3203 ..
17-18   1276 ...
18-19   2541 ..
19-20   2836 
20-21   4620 ..
21-22   1944 ..
22-23   2104 ...
23-24598 ...

Time spent on the queue: all messages
-
-

Under   1m 9697  81.9%   81.9%
5m  528   4.5%   86.4%
   15m   41   0.3%   86.8%
   30m  169   1.4%   88.2%
1h  262   2.2%   90.4%
3h  122   1.0%   91.4%
6h   69   0.6%   92.0%
   12h  150   1.3%   93.3%
1d  133   1.1%   94.4%
Over1d  663   5.6%  100.0%

Time spent on the queue: messages with at least one remote delivery
---

Under   1m 6406  81.1%   81.1%
5m  517   6.5%   87.6%
   15m   33   0.4%   88.1%
   30m  163   2.1%   90.1%
1h  250   3.2%   93.3%
3h   86   1.1%   94.4%
6h   57   0.7%   95.1%
   12h  110   1.4%   96.5%
1d   81   1.0%   97.5%
Over1d  196   2.5%  100.0%

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

2011/2/28 

> > From: Igor Karpov 
>
> > Если кто-то
> > еще подтвердит наличие проблемы, пойду смотреть логи. Никаких
> искусственных
> > задержек в конфигурации нет.
>
> Подтверждаю. Я себе включила acknowledgements, так вот они
> приходят сразу же, а само сообщение приходит только при следующем
> queue run сервера mailground.net, с задержкой до 20 минут.
>
> > > кстати, что-то после переезда рассылки на mailground.net я с большой
> > > задержкой стал получать письма из нее. это только у меня так?
> > >
> > > я первое свое сегодняшнее письмо отправил в 20:50:29 +0200, к mailman'у
> > > это письмо попало в 18:52:38 +, судя по Received, в 18:52:50 +
> > > mailman залил письмо обратно exim'у. на мой же MX письмо было
> доставлено
> > > через 20 с лишним минут. причем в течении этих 20 минут никаких попыток
> > > доставки, закончившихся темпфейлами, не было. первый коннект с
> > > 204.109.60.111 был в 21:13:54 +0200.
>
> ___
> 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

2011-02-28 Пенетрантность Lena
> From: Igor Karpov 

> Если кто-то
> еще подтвердит наличие проблемы, пойду смотреть логи. Никаких искусственных
> задержек в конфигурации нет.

Подтверждаю. Я себе включила acknowledgements, так вот они
приходят сразу же, а само сообщение приходит только при следующем
queue run сервера mailground.net, с задержкой до 20 минут.

> > кстати, что-то после переезда рассылки на mailground.net я с большой
> > задержкой стал получать письма из нее. это только у меня так?
> >
> > я первое свое сегодняшнее письмо отправил в 20:50:29 +0200, к mailman'у
> > это письмо попало в 18:52:38 +, судя по Received, в 18:52:50 +
> > mailman залил письмо обратно exim'у. на мой же MX письмо было доставлено
> > через 20 с лишним минут. причем в течении этих 20 минут никаких попыток
> > доставки, закончившихся темпфейлами, не было. первый коннект с
> > 204.109.60.111 был в 21:13:54 +0200.

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Igor Karpov
Erlang мне кажется привлекательнее, учитывая распараллеливание на несколько
узлов, заложенное в самом языке, и возможность модификации кода приложения
без его остановки или перезапуска :)

2011/2/28 Andrey N. Oktyabrski 

> On 02/28/11 22:48, Igor Karpov wrote:
>
>> Меня давно терзает мысль о том, насколько перспективной могла бы быть
>> реализация Exim на Erlang. :)
>>
> Ой... Я думал, я один такой мечтатель :-) Только я в последнее время больше
> на ocaml поглядываю почему-то.
>
>
> ___
> 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

2011-02-28 Пенетрантность Andrey N. Oktyabrski

On 02/28/11 22:48, Igor Karpov wrote:

Меня давно терзает мысль о том, насколько перспективной могла бы быть
реализация Exim на Erlang. :)
Ой... Я думал, я один такой мечтатель :-) Только я в последнее время 
больше на ocaml поглядываю почему-то.


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Igor Karpov
пользователь удален.

2011/2/28 вова гордеев 

> На хуй ты мне шлешь свои дебильные письма
>
>
>
> 3 февраля 2011 г. 7:54 пользователь  написал:
>
> а есть что-нибудь некоммерческое к чему exim может ходить через
>> spamd_address?
>>
>> ___
>> 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
>
>
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Igor Karpov
У меня вроде все нормально, но я теперь крайне редко сюда пишу. Если кто-то
еще подтвердит наличие проблемы, пойду смотреть логи. Никаких искусственных
задержек в конфигурации нет.

2011/2/28 Victor Ustugov 

> Vsevolod Stakhov wrote:
> > On 02/28/2011 10:09 PM, Igor Karpov wrote:
> >> Прежде всего, спасибо за столь интересный и объемный пост. :)
> >>
> >>
> >> я не нашел, как в lua получить список файлов по маске.
> >> можно было бы реализовать подключение правил из всех файлов из
> >> определенного каталога.
> >>
> >> Я ни разу не программист на lua, но вот что дает беглый поиск:
> >>
> >> *To grab the filenames of all *.txt files in a given directory, this
> >> seems to be the most effective way:*
> >> *allfiles=murgaLua.readDirectory("/home/mik")*
> >> *for i=1,table.maxn(allfiles) do*
> >> *if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
> >> *end*
> >> *
> >> *
> >> *Apparently table.getn(table) has the same result as
> >> table.maxn(table)*
> >> *I dunno if one is actually better than the other.*
> >> *
> >> *
> >> *http://www.murga-projects.com/forum/showthread.php?tid=43*
> >>
> >> Подойдет? :)
> >
> > Ну, это вызов некой C функции объекта. Из си, разумеется, все сделать
> > очень просто. Если будет потребность, добавлю :)
>
> если найдутся желающие писать много своих правил, то можно было бы
> добавить такую функцию.
>
> пока же (как лично мне кажется) вполне хватит того опционального инклуда
> rspamd.local.lua
>
>
> кстати, что-то после переезда рассылки на mailground.net я с большой
> задержкой стал получать письма из нее. это только у меня так?
>
> я первое свое сегодняшнее письмо отправил в 20:50:29 +0200, к mailman'у
> это письмо попало в 18:52:38 +, судя по Received, в 18:52:50 +
> mailman залил письмо обратно exim'у. на мой же MX письмо было доставлено
> через 20 с лишним минут. причем в течении этих 20 минут никаких попыток
> доставки, закончившихся темпфейлами, не было. первый коннект с
> 204.109.60.111 был в 21:13:54 +0200.
>
> --
> 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
>
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность вова гордеев
На хуй ты мне шлешь свои дебильные письма



3 февраля 2011 г. 7:54 пользователь  написал:

> а есть что-нибудь некоммерческое к чему exim может ходить через
> spamd_address?
>
> ___
> 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

2011-02-28 Пенетрантность Victor Ustugov
Vsevolod Stakhov wrote:
> On 02/28/2011 10:09 PM, Igor Karpov wrote:
>> Прежде всего, спасибо за столь интересный и объемный пост. :)
>>
>>
>> я не нашел, как в lua получить список файлов по маске.
>> можно было бы реализовать подключение правил из всех файлов из
>> определенного каталога.
>>
>> Я ни разу не программист на lua, но вот что дает беглый поиск:
>>
>> *To grab the filenames of all *.txt files in a given directory, this
>> seems to be the most effective way:*
>> *allfiles=murgaLua.readDirectory("/home/mik")*
>> *for i=1,table.maxn(allfiles) do*
>> *if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
>> *end*
>> *
>> *
>> *Apparently table.getn(table) has the same result as
>> table.maxn(table)*
>> *I dunno if one is actually better than the other.*
>> *
>> *
>> *http://www.murga-projects.com/forum/showthread.php?tid=43*
>>
>> Подойдет? :)
> 
> Ну, это вызов некой C функции объекта. Из си, разумеется, все сделать
> очень просто. Если будет потребность, добавлю :)

если найдутся желающие писать много своих правил, то можно было бы
добавить такую функцию.

пока же (как лично мне кажется) вполне хватит того опционального инклуда
rspamd.local.lua


кстати, что-то после переезда рассылки на mailground.net я с большой
задержкой стал получать письма из нее. это только у меня так?

я первое свое сегодняшнее письмо отправил в 20:50:29 +0200, к mailman'у
это письмо попало в 18:52:38 +, судя по Received, в 18:52:50 +
mailman залил письмо обратно exim'у. на мой же MX письмо было доставлено
через 20 с лишним минут. причем в течении этих 20 минут никаких попыток
доставки, закончившихся темпфейлами, не было. первый коннект с
204.109.60.111 был в 21:13:54 +0200.

-- 
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

2011-02-28 Пенетрантность Igor Karpov
Меня давно терзает мысль о том, насколько перспективной могла бы быть
реализация Exim на Erlang. :)

2011/2/28 Victor Ustugov 

> Igor Karpov wrote:
> > Прежде всего, спасибо за столь интересный и объемный пост. :)
>
> ну так пару последних недель на работу с rspamd потрачено ощутимое
> количество времени. на самом деле, как я уже писал, вопрос замены
> SpamAssassin чем-то менее прожорливым и менее тормозным давно настал.
>
> да и Всеволод более чем охотно отвечал на вопросы, реализовывал
> предложенный функционал и исправлял баги. с такой оперативной реакцией
> разработчика пока сталкиваться не приходилось. за что ему большое спасибо.
>
> > я не нашел, как в lua получить список файлов по маске.
> > можно было бы реализовать подключение правил из всех файлов из
> > определенного каталога.
> >
> > Я ни разу не программист на lua, но вот что дает беглый поиск:
> >
> > *To grab the filenames of all *.txt files in a given directory, this
> > seems to be the most effective way:*
> > *allfiles=murgaLua.readDirectory("/home/mik")*
> > *for i=1,table.maxn(allfiles) do*
> > *if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
> > *end*
> > *
> > *
> > *Apparently table.getn(table) has the same result as
> table.maxn(table)*
> > *I dunno if one is actually better than the other.*
> > *
> > *
> > *http://www.murga-projects.com/forum/showthread.php?tid=43*
> >
> > Подойдет? :)
>
> это не совсем lua. на lua здесь написан лишь разбор массива (точнее
> таблицы, но в данном контексте это просто массив), который возвращает
> некая функция murgaLua.readDirectory, явно внешняя по отношению к самому
> lua.
>
> я сам уже давно не программист. а lua в первый раз увидел с месяц назад,
> как раз когда в первый раз взглянул на конфиги rspamd.
>
> как показал беглый просмотр документации по lua, этот язык не очень
> богат фукционально. по крайней мере это точно касается фукнций работы с
> файловой системой. а вот для описания логики чего-либо его более чем
> достаточно. на самом деле на том же lua без проблем можно было бы
> реализовать описание логики работы того же exim'а.
>
> --
> 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
>
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Victor Ustugov
Igor Karpov wrote:
> Прежде всего, спасибо за столь интересный и объемный пост. :)

ну так пару последних недель на работу с rspamd потрачено ощутимое
количество времени. на самом деле, как я уже писал, вопрос замены
SpamAssassin чем-то менее прожорливым и менее тормозным давно настал.

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

> я не нашел, как в lua получить список файлов по маске.
> можно было бы реализовать подключение правил из всех файлов из
> определенного каталога.
> 
> Я ни разу не программист на lua, но вот что дает беглый поиск:
> 
> *To grab the filenames of all *.txt files in a given directory, this
> seems to be the most effective way:*
> *allfiles=murgaLua.readDirectory("/home/mik")*
> *for i=1,table.maxn(allfiles) do*
> *if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
> *end*
> *
> *
> *Apparently table.getn(table) has the same result as table.maxn(table)*
> *I dunno if one is actually better than the other.*
> *
> *
> *http://www.murga-projects.com/forum/showthread.php?tid=43*
> 
> Подойдет? :)

это не совсем lua. на lua здесь написан лишь разбор массива (точнее
таблицы, но в данном контексте это просто массив), который возвращает
некая функция murgaLua.readDirectory, явно внешняя по отношению к самому
lua.

я сам уже давно не программист. а lua в первый раз увидел с месяц назад,
как раз когда в первый раз взглянул на конфиги rspamd.

как показал беглый просмотр документации по lua, этот язык не очень
богат фукционально. по крайней мере это точно касается фукнций работы с
файловой системой. а вот для описания логики чего-либо его более чем
достаточно. на самом деле на том же lua без проблем можно было бы
реализовать описание логики работы того же exim'а.

-- 
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

2011-02-28 Пенетрантность Igor Karpov
Ну тогда попробую еще предложить pl.dir из
http://lua-users.org/wiki/FileSystemOperations

Если снова не то, перестаю умничать :)

2011/2/28 Vsevolod Stakhov 

> On 02/28/2011 10:09 PM, Igor Karpov wrote:
>
>> Прежде всего, спасибо за столь интересный и объемный пост. :)
>>
>>
>>я не нашел, как в lua получить список файлов по маске.
>>можно было бы реализовать подключение правил из всех файлов из
>>определенного каталога.
>>
>> Я ни разу не программист на lua, но вот что дает беглый поиск:
>>
>>*To grab the filenames of all *.txt files in a given directory, this
>>seems to be the most effective way:*
>>*allfiles=murgaLua.readDirectory("/home/mik")*
>>*for i=1,table.maxn(allfiles) do*
>>*if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
>>*end*
>>*
>>*
>>*Apparently table.getn(table) has the same result as table.maxn(table)*
>>*I dunno if one is actually better than the other.*
>>*
>>*
>>*http://www.murga-projects.com/forum/showthread.php?tid=43*
>>
>> Подойдет? :)
>>
>
> Ну, это вызов некой C функции объекта. Из си, разумеется, все сделать очень
> просто. Если будет потребность, добавлю :)
>
> --
> Vsevolod Stakhov
>
>
> ___
> 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

2011-02-28 Пенетрантность Vsevolod Stakhov

On 02/28/2011 10:09 PM, Igor Karpov wrote:

Прежде всего, спасибо за столь интересный и объемный пост. :)


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

Я ни разу не программист на lua, но вот что дает беглый поиск:

*To grab the filenames of all *.txt files in a given directory, this
seems to be the most effective way:*
*allfiles=murgaLua.readDirectory("/home/mik")*
*for i=1,table.maxn(allfiles) do*
*if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
*end*
*
*
*Apparently table.getn(table) has the same result as table.maxn(table)*
*I dunno if one is actually better than the other.*
*
*
*http://www.murga-projects.com/forum/showthread.php?tid=43*

Подойдет? :)


Ну, это вызов некой C функции объекта. Из си, разумеется, все сделать 
очень просто. Если будет потребность, добавлю :)


--
Vsevolod Stakhov

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Igor Karpov
Прежде всего, спасибо за столь интересный и объемный пост. :)


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

Я ни разу не программист на lua, но вот что дает беглый поиск:

*To grab the filenames of all *.txt files in a given directory, this seems
to be the most effective way:*
*allfiles=murgaLua.readDirectory("/home/mik")*
*for i=1,table.maxn(allfiles) do*
*if string.find(allfiles[i],"%.txt$") then print(allfiles[i]) end*
*end*
*
*
*Apparently table.getn(table) has the same result as table.maxn(table)*
*I dunno if one is actually better than the other.*
*
*
*http://www.murga-projects.com/forum/showthread.php?tid=43*

Подойдет? :)
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-28 Пенетрантность Victor Ustugov
приветствую

скатились мы с Севолодом таки в личку. но все те две сотни писем,
которыми мы обменялись вряд ли были бы тут всем интересны.

теперь о результатах

>>> баги сабмитит в основном один пользователь, плюс несколько анонимусов,
>>> т. е. пока rspamd скорее всего мало кем используется
>>
>> Увы, да - rspamd получился довольно сложным в развертывании, что
>> зачастую отталкивает пользователей.
> 
> на самом деле из портов FreeBSD ставится почти без проблем. правда порт
> нормальный в официальном дереве появился только второго февраля. до
> этого приходилось свой делать из тех обломков, что есть в рипозитарии
> исходников. худо-бедно, но развернуть можно было.

при установке rspamd из порта FreeBSD настройки дефолтового конфига
согласованы с дефолтовыми настройками стартового скрипта. в стартовый
скрипт добавлена переменная rspamd_flags для указания доп. параметров
демона в /etc/rc.conf

так что из коробки rspamd уже вполне юзабелен.
нужно только обучить статистический фильтр.

>>> уровень false positives и false negatives выше, чем у SpamAssassin,
>>> правда ситуация немного выравнивается после дообучения местного Bayes
>>> фильтра.
>>
>> Думаю, что статистика SA, использующая униграммы (то есть, одиночные
>> слова) намного хуже, чем статистика rspamd, которая использует алгоритм
>> OSB на окне из 5-ти слов (то есть, анализируются не только слова, но и
>> их сочетания).
> 
> в данном случае я совсем не сравнивал статистику статистических
> фильтров. в SA реализация Bayes мне нравится меньше всего.

как и ожидалось, эффективность статистического фильтра выше, чем у Bayes
фильтра SpamAssassin. больше напоминает работу DSPAM и Mailreaver из
состава CRM114. впечатления чисто субъективные, специальных
сравнительных тестов я не проводил.

>>> свои правила писать не то чтобы сложнее, скорее неудобней. само правило
>>> лежит в одном месте, его подключение и вес в другом, проверка
>>> корректности синтаксиса считает синтаксис некорректным, если
>>> правило описано, а вес не указан. и если приходится использовать
>>> несколько метрик, при этом в тестовых целях нужно одну закомментировать,
>>> то нужно в других файлах закомментировать и все правила, которые
>>> используются только в этой метрике.
>>
>> На самом деле такой подход появился в результате следования логике
>> разбиения правил в SA. Кроме того, была потребность повесить на
>> некоторое правило функцию lua (например, правило EMPTY_IMAGE в примере
>> конфигурации).
> 
> в SA свои правила можно оформлять, не разнося описания правил и
> соответствующие баллы в разные файлы. поэтому если мне нужно что-то
> отключить, я могу или файл просто убрать из соответствующего каталога,
> или закомментировать несколько подряд идущих строк.

благодаря возможности описывать привязку правил к метрикам прямо в lua
теперь можно правила полностью оформлять в отдельных файлах, не трогая
rspamd.xml. также можно в lua переопределять описание и вес правил,
описанных в rspamd.xml.

> в RSPAMD для отключения метрики мне нужно кроме правки
> /usr/local/etc/rspamd.xml еще найти все описания правил и
> закомментировать их.
> 
> спасет только генерация и rspamd.xml и инклудов для
> /usr/local/etc/rspamd/lua/rspamd.lua из предопределенных блоков. с
> помощью чего-нибудь типа m4. поэтому для меня это менее критично.

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

пока же в файл /usr/local/etc/rspamd/lua/rspamd.lua опционально
включается содержимое файла /usr/local/etc/rspamd/lua/rspamd.local.lua

а уже в файл /usr/local/etc/rspamd/lua/rspamd.local.lua можно включать
свои правила и другие файлы с правилами.

>>> для правил нет строки описания, как в SpamAssassin, т. е. в ответе
>>> демона фигурируют лишь названия правил, без весов и описания. как в этом
>>> отношении ведет себя rspamd работая по протоколу SPAMC, я не проверял,
>>> т. к. работа по протоколу SPAMC подразумевает, что контент сканер сам
>>> получает информацию об адресе клиента, HELO, адресе отправителя и адресе
>>> получателя из заголовков письма. а в случае использования протокола
>>> RSPAMC эти данные передаются демону в явном виде.
>>
>> Вообще, добавить описания к правилам - хорошая, годная, а главное -
>> легко реализуемая идея, например, сделав в описании правил атрибут
>> description:
>> SYMBOL
> 
> вполне приемлемый вариант. позволит для разных символов в разных
> метриках делать отличающиеся описания. не знаю, пригодится ли это, но
> тем не менее...

описания правил можно указывать или в rspamd.xml или в файлах lua в
/usr/local/etc/rspamd/lua/

>>> синтаксис регексповых правил отдаленно напоминает используемый в
>>> SpamAssassin, вплоть до того, что можно написать конвертор.
>>>
>>> в регекспах не работают конструкции \1, \2 и т. д.
>>> моих знаний программирования на C не хватило, чтобы понять, виноват
>>> rspamd или pcre.
>>
>> Просто для ускорения работы отключены capture group. Опять же можно
>> добавить крыжик в 

Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Victor Ustugov
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


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Victor Ustugov
Vsevolod Stakhov wrote:

>> учитывая идею дать возможность добавлять описания символов в rspamd.xml
>> в виде
>> 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.

ok

> Кроме
> того, я, наверное, ошибся в примере - несколько dynamic rules
> добавляются весьма просто:
> [
>  { "rule1": "// & ...", ...},
>  { "rule2": "", ...},
>  ...
> ]

а пример хоть один реальный в состав rspamd можно включить?

а то теперь не совсем понятно, как таки правилам задавать веса.

>>> Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде:
>>> conf['module']['symbol'] = 'rule'
>>> metrics['name']['symbol'] =
>>
>> в этом случае тоже нужно предусмотреть возможность указывать описания
>> правил. видимо примерно так:
>> 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'
> 
> По идее, поддержку такого подхода я уже добавил.

отлично.

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

-- 
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

2011-02-13 Пенетрантность Vsevolod Stakhov

On 02/13/2011 04:22 PM, Victor Ustugov wrote:

Andrey N. Oktyabrski 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 ужасных проблем быть не должно.


--
Vsevolod Stakhov

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Vsevolod Stakhov

On 02/13/2011 05:12 PM, Victor Ustugov wrote:

Vsevolod Stakhov wrote:

учитывая идею дать возможность добавлять описания символов в rspamd.xml
в виде
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": "// & ...", ...},
 { "rule2": "", ...},
 ...
]


Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде:
conf['module']['symbol'] = 'rule'
metrics['name']['symbol'] =


в этом случае тоже нужно предусмотреть возможность указывать описания
правил. видимо примерно так:
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

2011-02-13 Пенетрантность Andrey N. Oktyabrski

On 02/14/11 00:10, Victor Ustugov wrote:

а ценность pkgsrc уже скорее в том, что те же exim/rspamd/etc можно
собрать под всякими Solaris/Open Solaris/Mac OS X со всеми зависимостями
без особых проблем.

Да, именно в этом и есть главный плюс pkgsrc. Оно вполне себе живёт и на
линуксах, и на солярке.


вот если бы еще для Solaris/Open Solaris в состав pkgsrc ложили файл
манифеста и корректно импортировали его в систему при установке пекаджа...
ну и соответственно удаляли из системы при удалении пекаджа...

Теперь с этим будет проще, ибо вот:
http://www.illumos.org/projects/worsoe

То есть, можно патчи для солярки отдавать туда, а они уже сами 
pkgsrc'шника моск вынесут, или добавят в свою песочницу :-)


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Victor Ustugov
Andrey N. Oktyabrski wrote:

>> а ценность pkgsrc уже скорее в том, что те же exim/rspamd/etc можно
>> собрать под всякими Solaris/Open Solaris/Mac OS X со всеми зависимостями
>> без особых проблем.
> Да, именно в этом и есть главный плюс pkgsrc. Оно вполне себе живёт и на
> линуксах, и на солярке.

вот если бы еще для Solaris/Open Solaris в состав 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


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Andrey N. Oktyabrski

On 02/13/11 16:22, Victor Ustugov wrote:

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

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

на хорошем потоке писем на хорошо засвеченные адреса это стало бы вполне
заметно.

Не спорю, поэтому интересуюсь rspamd. Пока неторопясь.


тогда проще будет сделать свой pkgsrc и поддерживать.

кстати, раз внутри архива исходников есть подкаталог freebsd с портом,
правда устаревшим, в отличии от порта в официальном дереве портов
FreeBSD, может будет точно также вместе с исходниками распространять и
pkgsrc. если конечно Всеволод будет не против.

Не надо. pkgsrc-wip самое подходящее место.


а ценность pkgsrc уже скорее в том, что те же exim/rspamd/etc можно
собрать под всякими Solaris/Open Solaris/Mac OS X со всеми зависимостями
без особых проблем.
Да, именно в этом и есть главный плюс pkgsrc. Оно вполне себе живёт и на 
линуксах, и на солярке.


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Victor Ustugov
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

нужно и в 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'] = 

в этом случае тоже нужно предусмотреть возможность указывать описания
правил. видимо примерно так:
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

2011-02-13 Пенетрантность Victor Ustugov
Andrey N. Oktyabrski wrote:

>> глядишь, и ты повернешься лицом к контент сканерам :)
> Для этого надо, чтобы количество спама в моём почтовом ящике достигло
> хотя бы одного в сутки ;-)

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

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

на хорошем потоке писем на хорошо засвеченные адреса это стало бы вполне
заметно.

>> кстати в этом случае, вполне логичным будет с твоей стороны со временем
>> подготовить pkgsrc и протолкнуть в дерево.
> В основное дерево - это непросто. Попыхтеть придётся изрядно. Сначала
> всё появляется тут: http://pkgsrc-wip.sf.net/
> Только после того, как оно несколько лет там поболтается, не подохнет,
> будет оттестировано на всех платформах, где теоретически живёт pkgsrc,
> будет регулярно обновляться, и т.д. и т.п. в том же духе, есть шанс
> перенести в основное дерево.

тогда проще будет сделать свой pkgsrc и поддерживать.

кстати, раз внутри архива исходников есть подкаталог freebsd с портом,
правда устаревшим, в отличии от порта в официальном дереве портов
FreeBSD, может будет точно также вместе с исходниками распространять и
pkgsrc. если конечно Всеволод будет не против.

>> проталкивание rspamd в дерево портов OpenBSD уже не актуально для тебя,
>> на сколько я понимаю...
> Во-первых, да, надоело бороться с многочисленными закидонами этой
> компании. Требование наличия иксов для сборки портов было последней каплей.
> 
> Во-вторых, технологическое отставание, которое компенсировалось раньше
> надёжностью, становится всё больше. Трудно становится пользоваться
> системой. Опять же, качество кода ухудшилось.
> 
> В общем, ну её нафиг. NetBSD+pkgsrc поприятнее выглядит на данный момент.

ну... лично я считал NetBSD достаточно редко используемой (не исключено,
конечно, что я ошибаюсь). и ценность ее применительно к pkgsrc состоит
именно в том, что pkgsrc родными являются именно для нее.

а ценность pkgsrc уже скорее в том, что те же exim/rspamd/etc можно
собрать под всякими Solaris/Open Solaris/Mac OS X со всеми зависимостями
без особых проблем.

-- 
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

2011-02-13 Пенетрантность Victor Ustugov
Vsevolod Stakhov wrote:

>>> Сейчас можно использовать dynamic rules:
>> это вариант. но на сколько я понимаю, для каждого символа придется
>> создавать отдельный файл. я предполагаю создание достаточно большого
>> количества правил. порядка нескольких сотен как минимум.
> 
> Нет, как раз в файле описывается json массив из правил.

это я понял

я имею ввиду, что для каждого символа в json массиве нужно в поле rule
указать файл с кодом правила. или я неправильно понял синтаксис?
json массив у меня будет один. а вот таких правил - много.

>> компромиссным на мой взгляд вариантом была бы возможность при проверке
>> корректности синтаксиса выводить предупреждения о том, что есть
>> описанные символы без упоминания их в метриках, и наоборот, что в
>> описании метрики есть символы, для которых не сделаны описания. ну и,
>> естественно, такие символы нужно игнирировать.
> 
> Да, я тоже думал об этом, возможно, при проверке конфигурации достаточно
> просто выводить варнинг, и не вываливаться с ошибкой.

для меня этого было бы достаточно. тогда я бы и динамические правила
пока не использовал бы. просто сложил бы свои правила в какой-нибудь
/usr/local/etc/rspamd/lua/regexp/headers.local.lua (по крайней мере в
этот файл я сложил бы правила по проверке полей заголовков) и включил бы
этот файл в /usr/local/etc/rspamd/lua/rspamd.lua сразу за
dofile('regexp/headers.lua')

>>> Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде:
>>> conf['module']['symbol'] = 'rule'
>>> metrics['name']['symbol'] =
>>
>> т. е. по сути можно в rspamd.xml просто описать метрику, а привязку к
>> ней символов с опреденными весами делать в lua?
> 
> Да, именно так. Вообще, xml предполагался для автоматического
> редактирования какими-нибудь скриптами или веб-мордой.

ясно

 т. е. интересует что-то типа такого:

 local MAILMAN_MSGID =
 'From,Message-ID=/<([^\\@]+\\@[^>]+)>,$/'

>>>
>>> Опять же сделать это функцией на lua должно быть весьма просто (функции
>>> могут писаться прямо в правилах).
>>
>> тогда этот вопрос мне придется отложить до изучения работы с регулярными
>> выражениями в lua. да и нужно будет разобраться с использованием
> 
> В lua можно использовать регулярные выражения rspamd через библиотеку
> rspamd_regexp, при этом сохраняются все преимущества rspamd в виде кеша
> компилированных регулярок и кеша результатов для каждого сообщения.

это все будет описано в той документации по lua API, которая была
упомянута в предыдущем письме?

>> писать функциою (если таковой еще нет) для извлечения адреса(ов) из
>> header To (вернее из произвольного поля) и сравнивать адрес из RCPT TO с
>> этими извлеченными адресами. т. е. я имею ввиду аналог эксимовской
>> конструкции ${address:}
> 
> Хорошо, я посмотрю, как это сделано в exim.

ну, по сути нужно просто извлечь значение из угловых скобок и вернуть.
если угловых скобок в строке нет, вернуть всю строку.

в данном конкретном случае можно просто в check_forged_headers внутри
for _,mr in ipairs(mime_rcpt) do из mr извлекать адрес регулярным
выражением.

т. е. вместо

if string.find(mr, sr) then

или

if string.find(string.lower(mr), string.lower(sr), 1, true) then

можно использовать что-то типа этого:

local addr = string.match(mr, '<(.+?)>')
if addr then mr = addr end
if string.lower(mr) == string.lower(sr) then

я не нашел, как все это более компактно записать.
на perl'е две первых строки можно было бы записать без объявления
дополнительно переменной:

$mr = ($mr =~ /<(.+?)>/ ? $1 : $mr);

-- 
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

2011-02-13 Пенетрантность Andrey N. Oktyabrski

On 02/13/11 13:57, Victor Ustugov wrote:

глядишь, и ты повернешься лицом к контент сканерам :)
Для этого надо, чтобы количество спама в моём почтовом ящике достигло 
хотя бы одного в сутки ;-)



кстати в этом случае, вполне логичным будет с твоей стороны со временем
подготовить pkgsrc и протолкнуть в дерево.
В основное дерево - это непросто. Попыхтеть придётся изрядно. Сначала 
всё появляется тут: http://pkgsrc-wip.sf.net/
Только после того, как оно несколько лет там поболтается, не подохнет, 
будет оттестировано на всех платформах, где теоретически живёт pkgsrc, 
будет регулярно обновляться, и т.д. и т.п. в том же духе, есть шанс 
перенести в основное дерево.



проталкивание rspamd в дерево портов OpenBSD уже не актуально для тебя,
на сколько я понимаю...
Во-первых, да, надоело бороться с многочисленными закидонами этой 
компании. Требование наличия иксов для сборки портов было последней каплей.


Во-вторых, технологическое отставание, которое компенсировалось раньше 
надёжностью, становится всё больше. Трудно становится пользоваться 
системой. Опять же, качество кода ухудшилось.


В общем, ну её нафиг. NetBSD+pkgsrc поприятнее выглядит на данный момент.

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Victor Ustugov
Victor Ustugov wrote:

>>> т. е. интересует что-то типа такого:
>>>
>>> local MAILMAN_MSGID =
>>> 'From,Message-ID=/<([^\\@]+\\@[^>]+)>,$/'
>>
>> Опять же сделать это функцией на lua должно быть весьма просто (функции
>> могут писаться прямо в правилах).
> 
> тогда этот вопрос мне придется отложить до изучения работы с регулярными
> выражениями в lua. да и нужно будет разобраться с использованием

гм... не дописал предложение.

имелось ввиду "да и нужно будет разобраться с использованием в функциях
lua всех тех вариантов сравнения заголовков с регулярными выражениями,
которые при обычном сравнении с регекспами достигаются использованием
флагов H, X, r.".

-- 
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

2011-02-13 Пенетрантность Oleg Kostyuk
13 февраля 2011 г. 13:33 пользователь Andrey N. Oktyabrski
 написал:
> 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

2011-02-13 Пенетрантность Vsevolod Stakhov

On 13.02.2011 14:30, Victor Ustugov wrote:

Vsevolod Stakhov wrote:



Сейчас можно использовать dynamic rules:

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


Нет, как раз в файле описывается json массив из правил.


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


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



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


Кроме того, можно в lua добавить поддержку метрик в каком-то таком виде:
conf['module']['symbol'] = 'rule'
metrics['name']['symbol'] =


т. е. по сути можно в rspamd.xml просто описать метрику, а привязку к
ней символов с опреденными весами делать в lua?


Да, именно так. Вообще, xml предполагался для автоматического 
редактирования какими-нибудь скриптами или веб-мордой.



т. е. интересует что-то типа такого:

local MAILMAN_MSGID =
'From,Message-ID=/<([^\\@]+\\@[^>]+)>,$/'


Опять же сделать это функцией на lua должно быть весьма просто (функции
могут писаться прямо в правилах).


тогда этот вопрос мне придется отложить до изучения работы с регулярными
выражениями в lua. да и нужно будет разобраться с использованием


В lua можно использовать регулярные выражения rspamd через библиотеку 
rspamd_regexp, при этом сохраняются все преимущества rspamd в виде кеша 
компилированных регулярок и кеша результатов для каждого сообщения.



писать функциою (если таковой еще нет) для извлечения адреса(ов) из
header To (вернее из произвольного поля) и сравнивать адрес из RCPT TO с
этими извлеченными адресами. т. е. я имею ввиду аналог эксимовской
конструкции ${address:}


Хорошо, я посмотрю, как это сделано в exim.

--
Vsevolod Stakhov

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Victor Ustugov
Роман Николенко wrote:
> А если посмотреть не в сторону  spamd_address, а в сторону смтп прокси?
> Я у себя использую http://www.magicvillage.de/~Fritz_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.
>> пока отложил проблему в сторону, т. к. вторая метрика была создана в
>> тестовых целях и для штатной 

Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Andrey N. Oktyabrski

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

2011-02-13 Пенетрантность Victor Ustugov
Vsevolod Stakhov wrote:

>> с CRM114 вообще отдельный разговор. демона нет. сканер написать на своем
>> же языке. для испльзования libcrm114 нужно писать обертку такой
>> сложности, что проще использовать готовый контент сканер. вот как раз
>> RSPAMD таким и является.
> 
> Ну crm114 пишется математиком, оттого и такие странности :)

если оне ошибаюсь, автор 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'] = 

т. е. по сути можно в rspamd.xml просто описать метрику, а привязку к
ней символов с опреденными весами делать в lua?

вот этот вариант очень даже подходит. тогда для выключения какого-либо
текстового блока правил можно просто закомментировать включение файла с
этими правилами без правки rspamd.xml.

>> т. е. интересует что-то типа такого:
>>
>> local MAILMAN_MSGID =
>> 'From,Message-ID=/<([^\\@]+\\@[^>]+)>,$/'
> 
> Опять же сделать это функцией на lua должно быть весьма просто (функции
> могут писаться прямо в правилах).

тогда этот вопрос мне придется отложить до изучения работы с регулярными
выражениями в lua. да и нужно будет разобраться с использованием

>> временно я отбился заменой условия сравнения адресов на следующее:
>> string.find(string.lower(mr), string.lower(sr), 1, true)
> 
> Ага, спасибо!

на самом деле это решение тоже корявое.

если в RCPT TO будет u...@domain.org, а в header To будет
u...@domain.org.ua, то правило FORGED_RECIPIENTS не сработает.

так что нужно или сравнивать адреса с помощью регулярных выражений, либо
писать функциою (если таковой еще нет) для извлечения адреса(ов) из
header To (вернее из произвольного поля) и сравнивать адрес из RCPT TO с
этими извлеченными адресами. т. е. я имею ввиду аналог эксимовской
конструкции ${address:}

>> документация касается в основном администрирования того, что можно
>> получить из коробки. в ней мало что есть о том, как допилить систему под
>> себя.
> 
> Документация по lua API на подходе.

отлично

>> p. s. нас сейчас погонят отсюда за оффтопик (и будут правы).
>> так что нужно бы перебираться или в личку или в другой лист.
> 
> Да, по конкретным вопросам и предложениям лучше писать мне лично.

сейчас в личку отправлю письмо по двум проблемам. думаю, что при
необходимости здесь просто результаты можно будет упомянуть. хотя обе
проблемы касаются багов, а не добавления или изменения функционала. так
что возможно и это не потребуется.

-- 
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

2011-02-13 Пенетрантность Роман Николенко

Я только за!

13.02.2011 11:43, Igor Karpov пишет:
Не думаю, что это такой уж оффтопик. Пока, во всяком случае, никто не 
выражал своего негодавания по этому поводу.


Кстати, если есть реальный интерес, то можно сегодня же создать 
рассылку, специально посвященную вопросам фильтрации спама. Не 
конкретно SA, а более общей тематики.


2011/2/13 Victor Ustugov >


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

2011-02-13 Пенетрантность Victor Ustugov
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

2011-02-13 Пенетрантность Vsevolod Stakhov

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'] = 


т. е. интересует что-то типа такого:

local MAILMAN_MSGID =
'From,Message-ID=/<([^\\@]+\\@[^>]+)>,$/'


Опять же сделать это функцией на 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

2011-02-13 Пенетрантность Igor Karpov
Не думаю, что это такой уж оффтопик. Пока, во всяком случае, никто не
выражал своего негодавания по этому поводу.

Кстати, если есть реальный интерес, то можно сегодня же создать рассылку,
специально посвященную вопросам фильтрации спама. Не конкретно SA, а более
общей тематики.

2011/2/13 Victor Ustugov 

> p. s. нас сейчас погонят отсюда за оффтопик (и будут правы).
> так что нужно бы перебираться или в личку или в другой лист.
>
___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-13 Пенетрантность Vsevolod Stakhov

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


синтаксис регексповых правил отдаленно напоминает используемый в
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 *helo;
+  struct iovec request_v[64];
+  
+  r = 0;

Re: [Exim-users] аналог spamassasin

2011-02-12 Пенетрантность Andrey N. Oktyabrski

On 02/13/11 02:46, Victor Ustugov wrote:

p. s. нас сейчас погонят отсюда за оффтопик (и будут правы).
так что нужно бы перебираться или в личку или в другой лист.

Не надо в личку, мне тоже интересно :-)

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-12 Пенетрантность Victor Ustugov
Vsevolod Stakhov wrote:

>>> а есть что-нибудь некоммерческое к чему exim может ходить через
>>> spamd_address?
>>
>> http://bitbucket.org/vstakhov/rspamd/
>>
>> разработчик из России, работает в Рамблере
> 
> Так как я также подписан на эту рассылку, то прокомментирую некоторые
> моменты.

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

>> баги сабмитит в основном один пользователь, плюс несколько анонимусов,
>> т. е. пока rspamd скорее всего мало кем используется
> 
> Увы, да - rspamd получился довольно сложным в развертывании, что
> зачастую отталкивает пользователей.

на самом деле из портов FreeBSD ставится почти без проблем. правда порт
нормальный в официальном дереве появился только второго февраля. до
этого приходилось свой делать из тех обломков, что есть в рипозитарии
исходников. худо-бедно, но развернуть можно было.

>> что касается интеграции с exim, то есть как минимум три способа:
>> 1. работа по протоколу SpamAssassin'а RSPAMC (не пробовал)
> 
> Протокол SpamAssassin'а - это все-таки spamc, а не rspamc.

согласен. вписывал название протокола уже потом, в первоначальной
формулировке было просто "по протоколу SpamAssassin'а"

>> 2. работа по протоколу RSPAMC через одну из двух предлагаемых функций
>> local_scan (пробовал, работает, но local_scan для меня неприемлем)
>> 3. на основе штатных local_scan функций легко можно написать свою dlfunc
>> (в том числе благодаря простоте протокола RSPAMC, см. выше)
> 
> Кроме этого, начиная с 0.3.5 можно использовать библиотеку
> librspamdclient. Или же приложенный патч.

да в общем и целом протокол RSPAMC позволяет писать клиента на чем
угодно на коленке достаточно быстро. хотя наличие библиотеки не помешает.

>> уровень false positives и false negatives выше, чем у SpamAssassin,
>> правда ситуация немного выравнивается после дообучения местного Bayes
>> фильтра.
> 
> Думаю, что статистика SA, использующая униграммы (то есть, одиночные
> слова) намного хуже, чем статистика rspamd, которая использует алгоритм
> OSB на окне из 5-ти слов (то есть, анализируются не только слова, но и
> их сочетания).

в данном случае я совсем не сравнивал статистику статистических
фильтров. в SA реализация Bayes мне нравится меньше всего.

> Похожие алгоритмы используются также, например, в dspam
> или в crm114.

они оба - чисто статистические фильтры. поэтому по сути не являются
полноценными конкурентами ни для SA ни для RSPAMD.

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

>> свои правила писать не то чтобы сложнее, скорее неудобней. само правило
>> лежит в одном месте, его подключение и вес в другом, проверка
>> корректности синтаксиса считает синтаксис некорректным, если
>> правило описано, а вес не указан. и если приходится использовать
>> несколько метрик, при этом в тестовых целях нужно одну закомментировать,
>> то нужно в других файлах закомментировать и все правила, которые
>> используются только в этой метрике.
> 
> На самом деле такой подход появился в результате следования логике
> разбиения правил в SA. Кроме того, была потребность повесить на
> некоторое правило функцию lua (например, правило EMPTY_IMAGE в примере
> конфигурации).

в SA свои правила можно оформлять, не разнося описания правил и
соответствующие баллы в разные файлы. поэтому если мне нужно что-то
отключить, я могу или файл просто убрать из соответствующего каталога,
или закомментировать несколько подряд идущих строк.

в RSPAMD для отключения метрики мне нужно кроме правки
/usr/local/etc/rspamd.xml еще найти все описания правил и
закомментировать их.

спасет только генерация и rspamd.xml и инклудов для
/usr/local/etc/rspamd/lua/rspamd.lua из предопределенных блоков. с
помощью чего-нибудь типа m4. поэтому для меня это менее критично.

>> для правил нет строки описания, как в SpamAssassin, т. е. в ответе
>> демона фигурируют лишь названия правил, без весов и описания. как в этом
>> отношении ведет себя rspamd работая по протоколу SPAMC, я не проверял,
>> т. к. работа по протоколу SPAMC подразумевает, что контент сканер сам
>> получает информацию об адресе клиента, HELO, адресе отправителя и адресе
>> получателя из заголовков письма. а в случае использования протокола
>> RSPAMC эти данные передаются демону в явном виде.
> 
> Вообще, добавить описания к правилам - хорошая, годная, а главное -
> легко реализуемая идея, например, сделав в описании правил атрибут
> description:
> SYMBOL

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

>> синтаксис регексповых правил отдаленно напоминает используемый в
>> SpamAssassin, вплоть до того, что можно написать конвертор.
>>
>> в регекспах не работают конструкции \1, \2 и т. д.
>> моих знаний п

Re: [Exim-users] аналог spamassasin

2011-02-12 Пенетрантность Vsevolod Stakhov

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


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

в регекспах не работают конструкции \1, \2 и т. д.
моих знаний программирования на C не хватило, чтобы понять, виноват
rspamd или pcre.


Просто для ускорения работы отключены capture group. Опять же можно 
добавить крыжик в конфигурацию, чтобы их можно было включать.



плагины написаны на LUA. в принципе, синтаксис получается более
компактным, чем в плагинах на Perl для SpamAssassin.

в плагине check_forged_headers есть ошибки, из-за чего правило
FORGED_RECIPIENTS ложно срабатывает время от времени.


Был бы признателен за подробности: в каких случаях оно ложно срабатывает?


я наткнулся уже на пару писем, при обработке которых возникаются
проблемы при описании более одной метрики в rspamd.xml.
демон пишет в сокет ответ с данными по первой метрике и начинает
потреблять около 90% процессорного времени.
тестирование проводилось в виртуалке, на физической машине может меньше
начнет отжирать, но от этого не легче. после этого приходилось демона
убивать по kill -9.
пока отложил проблему в сторону, т. к. вторая метрика была создана в
тестовых целях и для штатной работы пока вполне хватит одной метрики.


Спасибо за репорт, я попробую создать такую конфигурацию.

Ну и в целом, я всегда готов рассмотреть пожелания по улучшению rspamd 
или же по устранению багов, в нем обнаруженных :)


--
Vsevolod Stakhov
--- 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 *helo;
+  struct iovec request

Re: [Exim-users] аналог spamassasin

2011-02-12 Пенетрантность Victor Ustugov
Andrey N. Oktyabrski wrote:

>> интерфейс демона достаточно просто, нужно просто залить в сокет одним
>> блоком заголовок со служебной информацией (тип запроса, размер письма,
>> queue id, адрес отправителя, количество адресов получателей, адреса
>> получателей, HELO и IP клиента) и текст письма. ответ также приходит
>> одним блоком. т. е. проверить письмо можно вообще скриптом, заливающим
>> эти данные в сокет через nc.
>>
>> что касается интеграции с exim, то есть как минимум три способа:
>> 1. работа по протоколу SpamAssassin'а RSPAMC (не пробовал)
>> 2. работа по протоколу RSPAMC через одну из двух предлагаемых функций
>> local_scan (пробовал, работает, но local_scan для меня неприемлем)
>> 3. на основе штатных local_scan функций легко можно написать свою dlfunc
>> (в том числе благодаря простоте протокола RSPAMC, см. выше)

> readsocket не пробовал?

нет, не пробовал

мне нужно вливать демону все заголовки письма по состоянию на начало
работы acl_smtp_data, за исключением удаленных с помощью remove_header,
также влить заголовки, добавленные в acl_smtp_data с помощью add_header,
учитывая позицию, куда добавляется заголовок. ну и потом влить тело письма.

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

на самом деле тут вопрос не в том, как отдать данные демону и получить
их обратно. вопрос в том, чтобы поднять эффективность фильтрации rspamd
до нынешней эффективности фильтрации spamd, сохранив преимущество в
производительности.

-- 
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

2011-02-12 Пенетрантность Роман Николенко

А если посмотреть не в сторону  spamd_address, а в сторону смтп прокси?
Я у себя использую http://www.magicvillage.de/~Fritz_Borgstedt/assp/ 
 настройка 
полностью простая через веб.
Будут вопросы без проблем обращайтесь. (обслуживает 11 доменов, трафик 
более 30к полезных писем в месяц )



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
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-12 Пенетрантность Andrey N. Oktyabrski

On 02/12/11 22:43, Victor Ustugov wrote:

интерфейс демона достаточно просто, нужно просто залить в сокет одним
блоком заголовок со служебной информацией (тип запроса, размер письма,
queue id, адрес отправителя, количество адресов получателей, адреса
получателей, HELO и IP клиента) и текст письма. ответ также приходит
одним блоком. т. е. проверить письмо можно вообще скриптом, заливающим
эти данные в сокет через nc.

что касается интеграции с exim, то есть как минимум три способа:
1. работа по протоколу SpamAssassin'а RSPAMC (не пробовал)
2. работа по протоколу RSPAMC через одну из двух предлагаемых функций
local_scan (пробовал, работает, но local_scan для меня неприемлем)
3. на основе штатных local_scan функций легко можно написать свою dlfunc
(в том числе благодаря простоте протокола RSPAMC, см. выше)

readsocket не пробовал?

___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users


Re: [Exim-users] аналог spamassasin

2011-02-12 Пенетрантность 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.
пока отложил проблему в сторону, т. к. вторая метрика была создана в
тестовых целях и для штатной работы пока вполне хватит одной метрики.



-- 
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


[Exim-users] аналог spamassasin

2011-02-02 Пенетрантность tit
а есть что-нибудь некоммерческое к чему exim может ходить через 
spamd_address?


___
Exim-users mailing list
Exim-users@mailground.net
http://mailground.net/mailman/listinfo/exim-users