Oye. Nosotros, el equipo del proyecto CrowdSec, nos complace anunciar el lanzamiento de CrowdSec 1.0.0. Esta versión es extremadamente importante porque además de agregar algunas características nuevas, todo el proyecto ha experimentado cambios arquitectónicos importantes para ser más rápido, más alto y más fuerte.
En primer lugar, nos complace presentarle el cambio principal en este parche: la introducción de la API REST local. Gracias a él, todo el proyecto ha cambiado seriamente su arquitectura para simplificar y facilitar la interacción de componentes a nivel local. Sin embargo, la facilidad de uso general no se ha visto afectada: utilizar CrowdSec sigue siendo fácil y agradable.
Para aquellos que no conocen CrowdSec o se preguntan cómo terminó la startup francesa en Habré, hagamos una pequeña digresión:
, , , Fail2Ban: «CrowdSec — Fail2Ban ».
, , IT-. . , — .
, . , , . 1.0.0 :)
Cómo fue y cómo se convirtió
Lo principal que sucedió con el lanzamiento de la versión 1.0 fue la introducción de cambios en la arquitectura, lo que sucedió debido a la introducción de la API REST local en el trabajo. Desde un punto de vista arquitectónico, nuestro sistema consta de tres componentes principales:
- un servicio CrowdSec en ejecución constante que monitorea registros, ataques, etc.;
- línea de comando, interfaz para interactuar con el servicio;
- módulos de integración (porteros) para asegurar el bloqueo de direcciones de ataque.
A continuación se muestra un diagrama de cómo funcionaba CrowdSec antes:
Como puede ver en el diagrama, al menos tres elementos del sistema accedían constantemente a la base de datos directamente. En el diagrama, estas direcciones están marcadas con círculos rojos (cwcli-DB, plugins de salida-DB, Bouncers-DB). Al mismo tiempo, "Bouncers" significa al menos cinco módulos que se comunican constantemente entre la base de datos de reputación y la base de datos de direcciones IP prohibidas.
Cuando desarrolla un proyecto desde cero, estas muletas son una forma fácil, rápida y económica de crear un prototipo funcional de un sistema. Sin embargo, si hablamos de estabilidad y rapidez de trabajo, tantos puntos de acceso a la base de datos no son la mejor solución. Esta arquitectura del proyecto condujo a la aparición de una serie de limitaciones que encontramos en las etapas de desarrollo posterior de CrowdSec. Por lo tanto, queríamos deshacernos de ellos lo más rápido posible.
Tras rediseñar el proyecto a nivel arquitectónico, llegamos a la decisión de que la mejor opción sería una API REST local, por la que ya pasará la comunicación de los componentes anteriores y la base de datos.
Como resultado, obtuvimos la siguiente arquitectura:
ahora todos los módulos internos se comunican entre sí y con la base de datos exclusivamente a través de la API REST.
La principal ventaja de la API sobre la implementación anterior es la simplificación de los módulos (Bouncers) en comparación con la versión anterior de CrowdSec. Si antes el portero accedió directamente a varias bases de datos, ahora, gracias al trabajo a través de la API REST, solo necesita una solicitud HTTP-get con un token API. Todo el resto del trabajo ocurre en el lado de la API.
Esquema de nube de CrowdSec
En la vista clásica, se supone que una de las máquinas tendrá desplegada la parte del servidor de CrowdSec, la cual, a través de la nueva API, podrá gestionar módulos en otras máquinas dentro de la red definida por el administrador. Si lo desea, el usuario puede utilizar su propia base de datos de direcciones prohibidas o acceder a nuestra base de datos de forma pagada. Sin embargo, la creación de un único punto de comunicación entre la API REST local y nuestra propia API crea una nueva oportunidad: la operación de CrowdSec en un modelo cercano al SaaS en la nube.
Ahora el administrador no necesita implementar una parte de servidor CrowdSec completa con una API REST local en su máquina. En su lugar, puede usar nuestra API CrowdSec central externa y solo usar gorilas para proteger la red.
Adicionalmente
Para aquellos que han usado CrowdSec antes, sugerimos que revisen la lista completa de cambios en la versión 1.0.0 en relación con la versión 0.3.x en GitHub .
Se recomienda a los nuevos usuarios que consulten la información de nuestro repositorio en GitHub .
Nos gustaría señalar que CrowdSec es una herramienta de código abierto que se publica bajo la licencia gratuita MIT. Por lo tanto, cualquiera puede usarlo absolutamente gratis. El proyecto aún no se ha monetizado , estamos en la etapa de desarrollar nuestra propia lista de prohibiciones y planes de tarifas. En nuestro sitio web hub.crowdsec.net, especialmente para nuevos usuarios, se recopilan colecciones, configuraciones y gorilas listos para usar para facilitar la configuración y comenzar a usar CrowdSec.
Puede hacer cualquier pregunta sobre nuestro proyecto aquí mismo en los comentarios. El uso del inglés simplificará la comunicación, no tenemos que usar Google. Traduzca o pida a sus amigos de habla rusa que nos traduzcan su mensaje.