Pull to refresh

Comments 33

Дело в том, что rspamd разрабатывался с расчетом на автоматическое управление через веб-морду. Поэтому вещи, которые легко и часто меняются, настраиваются через xml, который с одной стороны более-менее удобно править руками, а с другой — легко распарсить и сгенерировать автоматически. Да, я знаю, что решение перевести конфигурацию с lex/yacc разбираемого формата, напоминающего конфиг bind, на xml было спорным. Однако, сейчас желающие могут настроить практически любые параметры из lua, оставив xml конфигурацию по умолчанию (настройки lua перекрывают настройки xml).
Как обучить систему? Ручками скормить ей набор спам писем?
Да, либо создать собственную статистику «с нуля», либо скачать мои статфайлы и, взяв их за основу, дообучить собственным набором. Доработать систему автообучения у меня в ближайших планах — существующая система, взятая из SA, как показала практика, скорее зло, чем полезная фича. В планах создать более гибкую систему, чем обучение на основе баллов, которые набрало письмо. Скорее всего, это будет lua скрипт, в задачи которого войдет мониторинг различных параметров письма: баллов, символов, степени «доверия» к ip адресу отправителя, «полезность» письма для статистики (бесполезно обучать статистику слишком большими или слишком маленькими текстовыми данными).
а система автообучения зависит от конкретного пользователя — вот эти емайлы он пометил как хорошие, а эти убрал в спам?
Нет, сейчас возможность per-user статистики (если я правильно Вас понял) не реализована. Сейчас есть только возможность загружать пользовательские настройки — число баллов, пороги срабатывания действий по письмам, «белые» и «черные» списки. Подробно об этом написано тут. Но если Вы всерьез решили использовать rspamd и единственное, чего Вам не хватает, — это per-user статистика, то я могу эту возможность реализовать в следующей версии, так как в текущую архитектуру статистики это вписывается без проблем.
Нельзя ли требования к версии glib2 уменьшить до 2.12, то на CentOS 5.x не заводится, а это достаточно большая доля серверов.
В glib2.14 и glib2.16 были добавлены такие фичи, как обертка вокруг PCRE (GRegex), которая довольно часто используется в rspamd, библиотека хеширования (GCheckSum) и некоторые другие возможности. Встроить их в rspamd для совместимости не позволяет лицензия (LGPL несовместима с BSD). Но я подумаю, что можно сделать, — все эти зависимости достаточно легко реализовать с нуля.
Даже проще сделать так: если glib версии меньше, чем 2.16, то компилировать нехватающие возможности отдельно и линковаться с ними динамически, не нарушая лицензионных требований.
Буду премного благодарен, и да… уберите генерацию spec файла в cmake :)
был несказанно удивлен когда написав свой spec принялся делать rpmbuild и увидел, что cmake-ом Вы генерируете свой :)
Генерация собственных спеков никогда особо не использовалась, так как я решил, что намного лучше сконцентрироваться на стабильности, документировании и популяризации проекта, чем создание пакетов, которые никто не использует.
Я допилил сборку со старым glib и проверил ее на CentOS 5.5. Можете попробовать собрать tip репозитория, и если все будет нормально, то я сделаю новую версию.
Если на обучение подать набор спама с целого ряда аккаунтов, как это скажется на качестве фильтрации?
Ответить на этот вопрос довольно сложно — иногда даже человек с трудом может понять, спам это или же легитимная рассылка. Я сам обучаю систему спамом с разнообразных источников, предварительно удостоверившись в том, что это действительно спам, и результат мне кажется достаточно неплохим. Но нужно иметь в виду, что для стабильной работы статистики не стоит делать перекос в сторону спама — количество хама должно быть соизмеримым, чтобы статистика работала в обе стороны.
Извините, я неточно сформулировал вопрос.
Предположим я пишу сервис, связанный с электронной почтой.
Могу я «прикрутить» к сервису ваш демон. Это возможно?
Если да, то тогда вот какой вопрос. Обслуживая сразу большое количество аккаунтов, качество фильтрации спама повысится, или снизится? Если сравнивать с качеством фильтрации одного аккаунта.
Прикрутить можно как угодно. Если это веб сервис, то, наверное, проще использовать rspamd в виде HTTP сервера, который выдает результат в виде json объекта (это настраивается в секции ), если почтовый — то проще использовать описанные в документации способы.
Если обучать статистику спамом с разных аккаунтов, то ее качество, безусловно, повысится, т.к. это даст больше разнообразных спам токенов, которые будут в дальнейшем оцениваться. Главное — обучать реальным спамом, а не тем, что считают «спамом» пользователи — практика показывает, что зачастую это диаметральные противоположности.
А если сравнивать с SA который запущен через amavisd?
Гм, я, конечно, не тестировал amavisd, но мне кажется, что он не решает основную проблему SA — отсутствия оптимизации и использование регулярных выражений в совсем неподходящих местах. Например, в SA для разбора Received заголовков в письме последовательно применяется примерно 20 регулярных выражений, соответствующих различным MTA.
а как это сделано в rspamd?
Вначале письмо разбирается gmime, в котором парсинг построен на базе конечных автоматов. Далее конечным автоматом в rspamd разбираются Received заголовки, из которых извлекаются полезные для фильтров данные. Но дело даже не в конкретном случае, а в общем подходе — в SA очень мало думают об оптимизации.
В доке по интеграции с экзимом написано что нужно накатывать патч…
Доделайте в портах фряхи это дело как опцию конфигурации порта
пропатчил екзим но так и не удалось заставить работать под фрей, порт сыроват.
А в чем заключается проблема? У нас на всем кластере ставится rspamd из этого порта.
экзим 4.76
первый вариант интеграции Using spam.c patch — экзим не мог разобрать ответы от rspamd
второй вариант Using local scan — отваливался по таймауту local_scan() function timed out — message temporarily rejected (size 14277)
третий вариант Using dlfunc — некомпилится со свежей версией.

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

По поводу интеграции с exim, я думаю, лучше продолжить общение по электронной почте. Пожалуйста, опишите, какие в точности ошибки возникли при компиляции и дамп общения exim'а и rspamd при неверной работе. Заранее спасибо!

Я просто везде использую postfix, и у меня нет особо возможности проверять функционал rspamd с exim'ом.
логи выслал хабропочтой.
А вобще есть люди в теме кому удалось настроить работу экзима? Интересен вид интеграции. Как по мне, то наиболее удачный тот который
spamd_address = 127.0.0.1 11333
acl_smtp_data = acl_check_spam
Это не опция порта rspamd, это опция порта exim'а. Можно попросить мейнтейнера включить патч для работы с rspamd в OPTIONS.
Это не опция конфигурации порта rspamd, это должна быть опция конфигурации порта exim'а. Можно попробовать попросить мейнейнера включить патч rspamd в порт exim'а в виде опции.
попробуем… у меня минимум 1000 спам писем в день, среди 5000-10000 тысяч валидных из разных рассылок.
сейчас сделаю билд для exherbo. не поделитесь линком на патч для exim?
а можно ли систему доработать для определения спама в комментариях на сайте
Это и так присутствует. В настройке воркера можно сказать
<mime>no</mime>
и использовать http и json для общения (хотя для этого лучше использовать последнюю версию из hg, так как недавно я исправлял в этом месте некоторые проблемы).
А есть ли возможность подружить rspamd с amavisd? Если да, то как?
Sign up to leave a comment.

Articles