
Ei. Nós, a equipe do projeto CrowdSec, temos o prazer de anunciar o lançamento do CrowdSec 1.0.0. Esta versão é extremamente importante porque, além de adicionar alguns novos recursos, todo o projeto passou por grandes mudanças arquitetônicas para se tornar mais rápido, mais alto e mais forte.
Em primeiro lugar, temos o prazer de apresentar a você a principal mudança neste patch - a introdução da API REST local. Graças a ele, todo o projeto mudou seriamente sua arquitetura para simplificar e facilitar a interação de componentes em nível local. No entanto, a facilidade de uso geral não foi prejudicada - usar CrowdSec ainda é fácil e agradável.
Para quem não conhece o CrowdSec ou está se perguntando como a startup francesa acabou em Habré, vamos fazer uma pequena digressão:
, , , Fail2Ban: «CrowdSec — Fail2Ban ».
, , IT-. . , — .
, . , , . 1.0.0 :)
Como era e como se tornou
O principal acontecimento com o lançamento da versão 1.0 foi a introdução de mudanças na arquitetura, que aconteceram com a introdução da API REST local na obra. Do ponto de vista arquitetônico, nosso sistema consiste em três componentes principais:
- um serviço CrowdSec em execução constante que monitora registros, ataques, etc;
- linha de comando, interface para interagir com o serviço;
- módulos de integração (bouncers) para garantir o bloqueio de endereços de ataque.
Abaixo está um diagrama de como o CrowdSec funcionava antes:

Como você pode ver no diagrama, pelo menos três elementos do sistema acessavam constantemente o banco de dados diretamente. No diagrama, essas direções são marcadas com círculos vermelhos (cwcli-DB, plug-ins de saída-DB, Bouncers-DB). Ao mesmo tempo, "Bouncers" significa pelo menos cinco módulos que se comunicam constantemente entre o banco de dados de reputação e o banco de dados de endereços IP proibidos.
Quando você desenvolve um projeto do zero, essas muletas são uma maneira fácil, rápida e barata de criar um protótipo funcional de um sistema. Porém, se falamos de estabilidade e velocidade de trabalho, tantos pontos de acesso ao banco de dados não são a melhor solução. Esta arquitetura do projeto levou ao surgimento de uma série de limitações que encontramos nos estágios de desenvolvimento do CrowdSec. Portanto, queríamos nos livrar deles o mais rápido possível.
Após redesenhar o projeto no nível arquitetônico, chegamos à decisão de que a melhor opção seria uma API REST local, pela qual já passará a comunicação dos componentes acima e do banco de dados.
Como resultado, obtivemos a seguinte arquitetura:

Agora todos os módulos internos se comunicam entre si e com o banco de dados exclusivamente através da API REST.
A principal vantagem da API em relação à implementação antiga é a simplificação dos módulos (Bouncers) em relação à versão antiga do CrowdSec. Se antes o segurança acessava vários bancos de dados diretamente, agora, graças ao trabalho por meio da API REST, ele só precisa de uma solicitação HTTP-get com um token de API. Todos os outros trabalhos acontecem no lado da API.
Esquema de nuvem CrowdSec
Na visão clássica, assume-se que uma das máquinas terá a parte servidor do CrowdSec, que, através da nova API, será capaz de gerenciar módulos em outras máquinas dentro da rede definida pelo administrador. Se desejar, o usuário pode usar seu próprio banco de dados de endereços proibidos, ou acessar nosso banco de dados em regime de pagamento. No entanto, a criação de um único ponto de comunicação entre a API REST local e nossa própria API cria uma nova oportunidade: a operação de CrowdSec em um modelo próximo ao SaaS em nuvem.
Agora o administrador não precisa implantar uma parte de servidor CrowdSec completa com uma API REST local em sua máquina. Em vez disso, ele pode usar nossa API CrowdSec central externa e apenas usar seguranças para proteger a rede.
Além disso
Para aqueles que já usaram o CrowdSec antes, sugerimos que você verifique a lista completa de mudanças na versão 1.0.0 em relação à versão 0.3.x no GitHub .
Novos usuários são aconselhados a consultar as informações de nosso repositório no GitHub .
Gostaríamos de salientar que CrowdSec é uma ferramenta de código aberto lançada sob a licença gratuita do MIT. Assim, qualquer pessoa pode usá-lo de forma totalmente gratuita. O projeto ainda não foi monetizado , estamos em fase de desenvolvimento de nossa própria lista de proibição e planos de tarifas. Em nosso site hub.crowdsec.net especialmente para novos usuários, coleções, configurações e bouncers prontos são coletados para facilitar a configuração e começar a usar CrowdSec.
Você pode fazer qualquer pergunta sobre o nosso projeto aqui mesmo nos comentários. Usar o inglês simplificará a comunicação - não precisamos usar o Google.Translate ou pedir a amigos que falam russo para traduzir sua mensagem para nós.