Состоялся релиз CrowdSec v.1.0.0

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

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



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

В первую очередь, рады представить вам главное изменение этого патча — внедрение локального REST API. Благодаря ему весь проект серьезно изменил свою архитектуру в сторону упрощения и облегчения взаимодействия компонентов на локальном уровне. При этом в целом простота использования не пострадала — пользоваться CrowdSec все еще легко и приятно.

Для тех, кто не знает о CrowdSec или задается вопросом, как вообще французский стартап оказался на Хабре, сделаем небольшое отступление:
Несколько недель назад тут, на Хабре, вышла целая статья о нашем проекте, конкретно в ключе сравнения нас с Fail2Ban: «CrowdSec — современная альтернатива Fail2Ban и коллективный иммунитет для Интернета».

Команда нашего проекта базируется во Франции и хотя для нас русскоязычный сегмент всегда имел большое значение, мы не имели представления, как попасть в него и продемонстрировать наш продукт местному IT-сообществу. Имел место и языковой барьер. Однако оказалось, что существует Хабр и для местных специалистов наш проект оказался весьма интересен — мы зафиксировали достаточно много трафика со стороны РФ и несколько десятков новых пользователей.

Еще больше нас удивила техническая глубина комментариев на Хабре, а также совершенно иной взгляд на многие вещи. И вот, как итог, мы тут. Презентуем вам версию 1.0.0 :)

Как было и как стало


Главное, что случилось с выходом версии 1.0 — внесение изменений в архитектуру, которое произошло из-за внедрения в работу локального REST API. С архитектурной точки зрения наша система состоит из трех основных компонентов:

  • постоянно работающая служба CrowdSec, которая отслеживает логи, атаки и т. д.;
  • командная строка, интерфейс для взаимодействия со службой;
  • модули интеграции (bouncers) для обеспечения блокировки атакующих адресов.

Ниже — схема, как работал CrowdSec раньше:



Как видно из схемы, как минимум три элемента системы постоянно напрямую обращались к базе данных. На схеме эти направления отмечены красными кружками (cwcli-DB, output plugins-DB, Bouncers-DB). При этом под «Bouncers» подразумевается минимум пять модулей, которые постоянно общаются между репутационной БД и БД забаненных IP-адресов.

Когда вы развиваете какой-то проект с нуля, подобные костыли — простой, быстрый и дешевый способ создать рабочий прототип системы. Однако если говорить о стабильности и скорости работы, столько точек обращения к БД — не лучшее решение. Подобная архитектура проекта привела к возникновению ряда ограничений, с которыми мы столкнулись на этапах дальнейшего развития CrowdSec. Следовательно, мы хотели избавиться от них как можно быстрее.

После переработки проекта на архитектурном уровне, мы пришли к решению, что лучшим вариантом будет локальный REST API, через который уже и будет проходить общение указанных выше компонентов и базы данных.

Как итог, мы получили архитектуру следующего вида:



Теперь все внутренние модули общаются между собой и с базой данных исключительно через REST API.

Главное преимущество API перед старой реализацией — упрощение работы модулей (Bouncers) по сравнению со старой версией CrowdSec. Если раньше баунсер обращался к различным базам напрямую, то теперь, благодаря работе через REST API, ему понадобиться всего один HTTP-get реквест с API-токеном. Вся остальная работа происходит на стороне API.

Облачная схема работы CrowdSec


В классическом представлении предполагается, что на одной из машин будет развернута серверная часть CrowdSec, которая через новый API сможет управлять модулями на других машинах внутри определенной администратором сети. При желании, пользователь сможет использовать собственную БД забаненных адресов, либо же обращаться к нашей базе данных на платной основе. Однако создание единой точки общения между локальным REST API и нашим собственным API создает новые возможности: работа CrowdSec по модели, близкой к облачному SaaS.

Теперь администратору не обязательно разворачивать на своей машине полноценную серверную часть CrowdSec с локальным REST API. Вместо этого он может использовать наш внешний центральный API CrowdSec и пользоваться для защиты сети только баунсерами.

Дополнительно


Тем, кто уже пользовался CrowdSec ранее, мы предлагаем ознакомиться с полным списком изменений в версии 1.0.0 относительно версии 0.3.x на GitHub.

Новым пользователям советуем обратиться к информации из нашего репозитория на GitHub.

Хотим отметить, что CrowdSec — опенсорсный инструмент, который выпускается под свободной лицензией MIT. Таким образом, любой желающий может пользоваться им абсолютно бесплатно. Проект пока не монетизируется, мы находимся в стадии разработки собственного бан-листа и тарифных планов. На нашем сайте hub.crowdsec.net специально для новых пользователей собраны коллекции, конфигурации и готовые баунсеры для облегчения настройки и начала использования CrowdSec.



Вы можете задать любой вопрос о нашем проекте прямо здесь, в комментариях. Использование английского упростит коммуникацию — нам не придется использовать Google.Translate или просить русскоязычных знакомых перевести нам ваше сообщение :)
Источник: https://habr.com/ru/company/crowdsec/blog/532280/


Интересные статьи

Интересные статьи

Я давно знаком с Битрикс24, ещё дольше с 1С-Битрикс и, конечно же, неоднократно имел дела с интернет-магазинами которые работают на нём. Да, конечно это дорого, долго, местами неуклюже...
С этим вопросом мы пошли к докладчикам ульяновского PHP-митапа: его можно будет аккуратно посетить или свободно посмотреть в интерактивном формате уже в эти выходные. Зрители субботн...
Недавно на стендапе коллега внес рацпредложение: автоматизировать сборку релизов, взяв за основу готовые уже наработки по взаимодействию с Jira, написанные на Python. Процесс деплоя у нас сле...
Если в вашей компании хотя бы два сотрудника, отвечающих за работу со сделками в Битрикс24, рано или поздно возникает вопрос распределения лидов между ними.
Согласно многочисленным исследованиям поведения пользователей на сайте, порядка 25% посетителей покидают ресурс, если страница грузится более 4 секунд.