The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Выпуск системы фильтрации спама rspamd 1.2

21.03.2016 20:37

Состоялся выпуск системы фильтрации спама Rspamd 1.2, предоставляющей средства для оценки сообщений по различным критериям, включая правила, статистические методы и чёрные списки, на основе которых формируется итоговый вес сообщения, используемый для принятия решения о необходимости блокировки. Код системы написан на языке Си и распространяется под лицензией BSD.

В новой версии: поддержка динамического обновления правил блокировки, поддержка динамической загрузки модулей и обработчиков, возможность использования регулярных выражений в таблицах сопоставления, улучшенная производительность (поддержка pcre2, более быстрая работа с хэшами и деревьями, использование инструкций AVX2, ускорение выборок по IP) и стабильность (включены исправления ошибок, выявленных в процессе статического анализа проектом Coverity).

Rspamd построен с использованием событийно-ориентированной архитектуры (Event-driven) и изначально рассчитан на применение в высоконагруженных системах, позволяя обрабатывать сотни сообщений в секунду. Правила для выявления признаков спама отличаются высокой гибкостью и в простейшем виде могут содержать регулярные выражения, а в более сложных ситуациях могут оформляться на языке Lua. Расширение функциональности и добавление новых типов проверок реализуется через модули, которые могут создаваться на языках Си и Lua. Например, доступны модули для проверки отправителя с использованием SPF, подтверждения домена отправителя через DKIM, формирования запросов в списки DNSBL. Для упрощения настройки, создания правил и отслеживания статистики предоставляется административный web-интерфейс.



  1. Главная ссылка к новости (https://rspamd.com/announce/20...)
  2. OpenNews: Вышла версия 1.1 системы фильтрации спама rspamd
  3. OpenNews: Выпущена версия 1.0 системы фильтрации спама rspamd
  4. OpenNews: Вышла новая версия системы для отсеивания спама - SpamAssassin 3.3.0
  5. OpenNews: Современные методы борьбы со спамом и шифрование переписки
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/44088-rspamd
Ключевые слова: rspamd, spam
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (17) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 22:02, 21/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Кто нибудь пользовался, если сравнивать с спамассассином помимо производительности есть плюсы ?
     
     
  • 2.2, Аниним (?), 23:26, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Кроме автора и пары контор для которых он это пилит не кто больше не пользует.
     
  • 2.3, Аноним (-), 23:37, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Кто нибудь пользовался, если сравнивать с спамассассином помимо производительности есть плюсы ?

    Чисто субъективно - конфиги более понятные и структурированные. Не вызывают рвотного рефлекса.

     
  • 2.4, ононим88 (?), 23:49, 21/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    я пользуюсь и доволен на 100%. отлично фильтрует, спама проходит минимум и то, потому что нет обучения от основного мейл сервера.

    после DSPAM это решение просто великолепно.

     
  • 2.7, Аноним (-), 02:23, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    На любителя. Регекспы тут убогие. RAW использовать "нирикамендуется", PART матчит только в текстовой части, URL ...но без query part и не всегда находит ссылки. Вместо raw предлагается trie, ...но оно только для заранее известных строк.

    Как например отловить вот такое: http://google.XX/?query<куча-ереси>&redir=htt%68:/%2fsite.tk& -- загадка сия велика есть.

    Документация также убогая, она как бы есть, но ничего толком не объясняет. Доходит до того, что за списком допустимых параметров модуля приходится лазить в код самого модуля. И хорошо если он написан на lua, а не на си. Возьмите например ratelimit и попробуйте найти в доках как именно ему задать адрес redis-сервера.

    Ещё - конфиг ломают КАЖДУЮ минорную версию, поэтому обновляться следует возможно реже, с внимательным курением changelog'а, багзиллы и выделением дней-двух на мониторинг отвалившегося.

    Из примеров - нет гарантированного способа переопределить score для какого-то символа, в следующей версии его могут переименовать. А через одну - переименовать ещё раз. Просто потому что "автор так видит".

    Эпопея с user_settings, который как бы есть, и как бы предназначен для переопределения того самого score, но как бы периодически ломается.

    Action=greylist не имеет state. Это означает, что есть mta поверил антиспаму и дал 4XX, оно так и будет его отшивать до истечения retry на той стороне или до изменения в лучшую сторону настроек почтовика отправителя, что маловероятно.

    Зато работает в разы быстрее ассассина, это да.

     
     
  • 3.10, cebka (?), 12:08, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Хочу только поинтересоваться: вы, часом, не журналист - а то у вас получилось написать в каноничном стиле бульварной прессы. Берешь крупицу правда, щедро докладываешь шмат лжи и собственных домыслов, подавая в соусе некомпетентности, придав оттенок самоуверенности, чтобы создать впечатление, что уж автор-то точно в теме. Судя по всему, впечатление у вас получается создать, и это печально.

    По пунктам:

    > Регекспы тут убогие.

    А ничего, что rspamd поддерживает весь набор регэкспов SA?

    > RAW использовать "нирикамендуется", PART матчит только в текстовой части,

    Да, а вы хотите еще один SA? Впрочем, с hyperscan это вообще не имеет значения (если не использовать бектрекинг, но даже в этом случае fallback на pcre - не самое страшное, что может случиться) - вы можете задавать хоть десятки тысяч регэкспов без влияния на производительность.

    > URL ...но без query part и не всегда находит ссылки.

    Ложь - rspamd матчит url целиком.

    > Как например отловить вот такое: http://google.XX/?query<куча-ереси>&redir=htth://site.tk//exploit.scr -- загадка сия велика есть.

    Да нет, загадки в этом никакой нет. Можно попробовать документацию почитать, например.

    > Документация также убогая, она как бы есть, но ничего толком не объясняет. Доходит до того, что за списком допустимых параметров модуля приходится лазить в код самого модуля.
    > И хорошо если он написан на lua, а не на си. Возьмите например ratelimit и попробуйте найти в доках как именно ему задать адрес redis-сервера.

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

    > Ещё - конфиг ломают КАЖДУЮ минорную версию, поэтому обновляться следует возможно реже, с внимательным курением changelog'а, багзиллы и выделением дней-двух на мониторинг отвалившегося.

    Последние 2 года конфиг не ломался ни разу. Во времени 0.5, 0.6 и 0.7 такое было. В минорных версиях конфиг не ломался никогда, а все изменения описаны тут: https://rspamd.com/doc/migration.html

    > Из примеров - нет гарантированного способа переопределить score для какого-то символа, в следующей версии его могут переименовать. А через одну - переименовать ещё раз. Просто потому что "автор так видит".

    Символы никогда не переименовываются (опять же за последние 2+ года). Способов переопределить символ есть множество, но ведь у вас документации "как бы нет", поэтому сложно что-то посоветовать.

    > Эпопея с user_settings, который как бы есть, и как бы предназначен для переопределения того самого score, но как бы периодически ломается.

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

    > Action=greylist не имеет state. Это означает, что есть mta поверил антиспаму и дал 4XX, оно так и будет его отшивать до истечения retry на той стороне или до изменения в лучшую сторону настроек почтовика отправителя, что маловероятно.

    Ну да, потому что стейт есть у rmilter/exim. Сделать хранение ключей грейлистинга очень просто, но это никому не было нужно.

     
     
  • 4.17, Аноним (-), 06:29, 23/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Бздyн? Бздyн.

    > А ничего, что rspamd поддерживает весь набор регэкспов SA?

    Смотрим в текст, видим фигу. К диалекту регекспов у меня нет претензий, вопросы к тому как оно матчит в итоге.

    > Ложь - rspamd матчит url целиком.

    Мне пофиг, что там написано в документации, я смотрю как оно работает по факту.

    > Можно попробовать документацию почитать, например.

    Ну как только она будет - так сразу. Всё что там есть - я уже прочёл и не по одному разу.

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

    Вот например цитата из официальной "документации" про модуль regex:

    > We strongly discourage from using of raw message regexps as they are expensive and should be replaced by trie rules if possible.

    Видишь слово "expensive"? Так что ты со своими "десятками тысяч регэкспов" жидко обгадился.

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

    О, отмазки пошли. Ну мне нужно, дальше что? Вот не хочу я разводить зоопарк компонентов перемотанный изолентой на пустом месте.

    Я разговаривал с vstakhov в прошлой теме, показывал пальцем в этот момент. До моего объяснения "зачем это надо" он демонстрировал незамутнённость, и в итоге отписался в стиле "когда-нибудь".

     
     
  • 5.19, cebka (?), 12:02, 23/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мне пофиг, что там написано в документации, я смотрю как оно работает по факту

    Бага с матчингом url'ей была. Примерно год или больше назад.

    > Ну как только она будет - так сразу. Всё что там есть - я уже прочёл и не по одному разу.

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

    > Видишь слово "expensive"? Так что ты со своими "десятками тысяч регэкспов" жидко обгадился.

    Я об этом: https://highsecure.ru/rspamd-hyperscan.pdf ну и можно еще послушать мое выступление с фосдема, где я об этом рассказываю: https://www.youtube.com/watch?v=_fl9i-az_Q0

    А с pcre это реально expensive.

    > О, отмазки пошли. Ну мне нужно, дальше что? Вот не хочу я разводить зоопарк компонентов перемотанный изолентой на пустом месте.

    Так открой тикет - сделать это несложно, но я не могу понять, зачем такое нужно и в какой ситуации (например, в postfix + rmilter + rspamd это нафиг не нужно).

     
  • 4.18, Аноним (-), 06:48, 23/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Последние 2 года конфиг не ломался ни разу. Во времени 0.5, 0.6 и 0.7 такое было.
    > Символы никогда не переименовываются (опять же за последние 2+ года).

    Ты сейчас нагло врёшь. гемор с 0.8 -> 0.9, 0.9 -> 1.0 я прекрасно помню. Вот здесь описаны грабли перехода с 0.8, 0.9, 1.0 и 1.1 => https://rspamd.com/doc/migration.html

    Переход xml -> ucl - это вообще всё с нуля.

    Это теперь называется "не ломался с 0.7"? Кроме того я прекрасно помню ежерелизное переделывание DNSBL_*

    Вот целые секции из ченжлога, посвящённые фиксам самых примитивных case:

      * RBL fixes (by @fatalbanana):
        - silence errors;
        - yield unknown results from RBLs;
        - fix scoring for DNSWL;
        - fix use of RBL name as symbol;  # << !!!
        - ignore RBL names that would not be yielded;

      * Multiple fixes to URL detection:
        - support port definition;                # <<
        - fix query and path recognition;         # <<
        - fix parsing of multiple slashes in URL; # <<
        - fix parsing query just after port;      # <<
        - fix path field in 'url:to_table' method;
        - improve support of IP based URLs.

    Это только за один минорный релиз. Сколько там подобного осталось - только п-треку известно.

     
  • 3.15, Аноним (-), 16:38, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    RAW и в SA очень не рекомендуется.
     

  • 1.5, SubGun (??), 00:20, 22/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Интересненько. Жаль не занимаюсь сейчас почтовыми серверами, а так попробовал бы.
     
  • 1.9, ГеккоШтат (?), 08:39, 22/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    годная штука, есть косячки. Но главное - работает из коробки.
    Кто-то обновлялся с 1.0 версии?
     
  • 1.11, Аноним (-), 13:26, 22/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    не работает на линукс arm (armv7 debian wheezy) платформе ,если еспользовать sqlite backend. после запуска падает процесс controller process, затем он перезапускается родителем и так по кругу. пробовал версии 1.1.4 и 1.2 и разные libsqlite - тщетно. написал бы багрепорт на гитхабе, но в англиском не шибко силен.
     
     
  • 2.12, cebka (?), 13:31, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Есть некое впечатление, что это сочетание wheezy со старым openssl и армом. Я попробую посмотреть, если у меня есть доступ на scaleway, в чем там может быть проблема. Спасибо за репорт.
     
     
  • 3.13, Аноним (-), 15:06, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Спасибо за ответ. Выложил немного отладочной информации:

    лог: https://paste.ee/p/1dxmR

    бактрейс:  https://paste.ee/p/Jxip5


    Впринципе, если проблема действительно в окружении дебиана, то попробую собрать статически на какой-нибудь убунте и потом перенести обратно. Очень уж понравилась ваша программа - для маленького сервера альтернатив и нет (SA очень толст и неповоротлив).

     
     
  • 4.14, cebka (?), 16:10, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Спасибо за ответ. Выложил немного отладочной информации:
    > лог: https://paste.ee/p/1dxmR
    > бактрейс:  https://paste.ee/p/Jxip5
    > Впринципе, если проблема действительно в окружении дебиана, то попробую собрать статически
    > на какой-нибудь убунте и потом перенести обратно. Очень уж понравилась ваша
    > программа - для маленького сервера альтернатив и нет (SA очень толст
    > и неповоротлив).

    Спасибо, я воспроизвел проблему. Вот этот патч ее у меня исправил: https://github.com/vstakhov/rspamd/commit/c6836066bd90451f97c4db256385e23f2e92

    Кстати, rspamd очень плохо оптимизирован по 32-х битные системы, поэтому там очень многое будет работать медленно. В принципе, можно подумать и решить эту проблему тоже.

     
     
  • 5.16, Аноним (-), 18:44, 22/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Только что проверил в qemu - отлично работает. Выражаю вам благодарность за столь оперативное решение проблемы!

    То что медленно - не страшно. У меня сервер маленький, всего на 5 человек. Да и арм сами по себе не могут похвастаться большой производительностью. Но даже при всем этом, работает разы быстрее SA и легче настраивается.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру