Implantando o Crowdsec centralmente

Como o tempo voa… já se passaram dois anos desde que falamos pela primeira vez sobre a Crowdsec… Pretendo fazer alguns documentos atualizados sobre as possibilidades de sua implantação, pois é um produto muito interessante para proteger nossas organizações contra ameaças e nos oferece muitas possibilidades interessantes.

En anteriores posts quizá más detallados ya describimos las posibilidades de Crowdsec, pero por hacer una introducción para los que no lo conozcan, es un software que se puede instalar en distintos tipos de máquinas, con SO Windows, Linux… Y el objetivo es proteger dicha máquina (o tu red), leyendo los logs de la máquina tomará decisiones, como pueda ser banear la IP que le ha realizado un intento de ataque, o alguien se haya validado mal, etc…

Son varios componentes, tiene un agente que procesa los logs de la máquina, de los servicios que corra, como por ejemplo puedan ser del visor de sucesos, de um IIS, Nginx, Apache, MariaDB, Troca, Próxima nuvem, PME, RDP… compara los logs con los distintos escenarios y envía las alertas al servicio LAPI (local API); que recibe las alertas y las convierte en decisiones (basándonos en las protecciones que hayamos configurado). Y luego tenemos el bouncer (o Componente de remediação), que consulta las decisiones al LAPI y las aplica; por ejemplo el bouncer del firewall, que creará reglas en el FW del SO denegando el acceso a la dirección IP que ha generado un ataque.

En principio aunque parezca lo contrario es muy sencillo, se instalan todos los componentes juntos al instalar el Agente de Crowdsec (o Engine). Al instalarse el Crowdsec en un Windows o en un Linux detectará los servicios que corre la máquina, y por tanto ya quedarán protegidos, si es un Linux y tiene (Por exemplo) un Nginx ya leerá y tratará los logs del SO, así como los del propio Nginx, buscando patrones que detecten el intento de abuso por parte de vulnerabilidades, escaneos, accesos no debidosAdemás se podrán añadir otros tipos de ‘coleccionespara leer otro tipo de logs, por si en ese Nginx corre un Nextcloud, y queremos que Crowdsec trate también los logs de Nextcloud

O que eu disse, es sencillo, es nuevo si no lo conoces, pero está muy bien planteado, si lo instalamos en un Windows Server, ídem, detectará si tenemos por ejemplo un IIS instalado, o un SQL Servery según instalemos el Agente de Crowdsec detectará patrones en los logs del visor de sucesos para protegernos. E o que eu disse, si ese IIS corre algún servicio en particular, pues también podremos protegerlo, sea por ejemplo un Exchange (tanto OWA como SMTP) pudiendo leer sus logs específicos.

Lo que nos quedaría es poder aplicar las acciones, que si lee algo que no le gusta en un log, actúe. Para fazer isso,, habitualmente en Windows y Linux necesitamos instalar posteriormente el bouncer del firewall, Como eu disse, para que este componente de remediación pueda crear una regla en el firewall del sistema operativo, del Windows o del Linux, una regla temporal, de denegación, bloqueando el acceso de la dirección IP atacante.

Así tenemos protegidas nuestras máquinas Windows o Linux, pero entre ellas no se hablan, y sería interesante que se puedan comunicar entre ellas. Así que este paso es opcional, quizá para entornos pequeños, pero por supuesto totalmente recomendado para cualquier organización. Podremos crear fácilmente en un contenedor de Docker un servidor de Crowdsec, por decir, este servidor compartirá mediante LAPI una base de datos centralizada con todas las decisiones, Para quê? Por si nos interesa que si una máquina recibe un ataque, el resto de máquinas Crowdsec se enteren y efectúen una acción, como sea protegerse y banear una dirección IP en particular, todas a la vez. Y otro de los contenedores maravillosos que desplegaremos es Crowdsec blocklist mirror, pura magia, este contenedor publicará en una URL la lista negra que comparten todas las máquinas de Crowdsec. Para quê? Para poder acceder a ella desde nuestros firewalls internos o perimetrales tipo Fortigate, CheckPoint, pfSensey hacer reglas de denegación, entre redes, desde la WANy aislar directamente a los atacantes a otro nivel.

Poço, tras esta parrafada, y ya siendo la brasa, el documento de hoy está basado en cómo desplegar esta última parte que hemos hablado, vamos a desplegar la infraestructura central, vamos a desplegar estos contenedores y a futuro en otros documentos veremos cómo instalar Crowdsec en un Windows y protegerlo, centralizado o no; así como un Linux.

Despliegue de Crowdsec para entorno multi servidor

mkdir crowdsec
cd crowdsec

Empezamos por ejemplo en un Ubuntu Server, con su FQDN, una dirección IP estática, con NTP bien configurado, actualizado y con Docker instalado. Vamos a ver qué rápido se despliegan estos dos contenedores. Creamos un directorio, entramos, y empezamos. Crearemos el fichero docker-compose.yml con el siguiente contenido:

Versão: '3'

services:
  crowdsec:
    imagem: crowdsecurity/crowdsec
    restart: always
    ports:
      - '8080:8080'
      - '6060:6060'
    volumes:
      - ./crowdsec-db:/var/lib/crowdsec/data/
      - ./crowdsec-config:/etc/crowdsec/

  crowdsec-blocklist-mirror:
    container_name: crowdsec-blocklist-mirror
    image: crowdsecurity/blocklist-mirror
    depends_on:
      - "crowdsec"
    Portas:
      - 41412:41412
    Volumes:
      - ./cfg.yaml:/etc/crowdsec/bouncers/crowdsec-blocklist-mirror.yaml

volumes:
  crowdsec-db:
  crowdsec-config:

O que eu disse, nos desplegará dos contenedores, uno Crowdsec que actuará en principio como servidor LAPI en el 8080 y en el 6060 si interesa escupirá métricas, en el puerto 41412tcp tendremos el contenedor que publica la blocklist, un mirror.

Descargamos y arrancamos los contenedores con:

sudo docker compor -d

La primera vez, el contenedor del Blocklist-Mirror no se levantará ya que necesita acceso con su API key, así que creamos el primer bouncer, para las Blocklists:

sudo docker exec -it crowdsec-crowdsec-1 cscli bouncers add BlocklistMirror

Nada mau, paramos el contenedor de Crowdsec y borramos el fichero de configuración para recrearlo a continuación.

sudo docker stop crowdsec-crowdsec-1
rm -rf cfg.yaml/

Y creamos con ‘nano cfg.yamlel fichero de configuración, que debe ser algo como esto, tener en cuenta que debéis indicar el API key que le hemos solicitado a Crowdsec e indicar la dirección IP por la que publicaremos el servicio LAPI. Así como en la Blocklist añadir la dirección IP que se conectará y tendrá acceso a la URL de la blocklist, por ejemplo nuestro firewall perimetral.

config_version: v1.0
crowdsec_config:
  lapi_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  lapi_url: Referências HTTP://DIRECCION_IP_MAQUINA:8080
  update_frequency: 10s
  include_scenarios_containing: []
  exclude_scenarios_containing: []
  only_include_decisions_from: []
  insecure_skip_verify: false

blocklists:
  - format: plain_text # Supported formats are either of "plain_text"
    endpoint: /security/blocklist
    authentication:
      tipo: nenhum # Supported types are either of "nenhum", "ip_based", "basic"
      utilizador:
      senha:
      trusted_ips: # Intervalos de IP, or IPs which don't require auth to access this blocklist
        - 127.0.0.1
        - ::1
        - 192.168.1.1

listen_uri: 0.0.0.0:41412
TLS:
  cert_file:
  key_file:

Métricas:
  Habilitado: true
  endpoint: /metrics

log_media: stdout
log_level: informação

Ya podremos iniciar el contenedor de Crowdsec de nuevo y el del Blocklist-Mirror finalmente, Executando:

sudo docker start crowdsec-crowdsec-1
sudo docker restart crowdsec-blocklist-mirror

Probamos que podemos acceder a la URL de la blocklist desde: Referências HTTP://DIRECCION_IP_MAQUINA:41412/segurança/lista de bloqueio

Inscribirlo en la CrowdSec Console

Será totalmente recomendable darnos de alta en https://app.crowdsec.net y registrar en nuestra cuenta de Crowdsec Console. Desde aquí podremos visualizar el estado de nuestros Agentes o Engine de Crowdsec, podremos suscribirlas a otras listas negras de la comunidad, gestionar las alertas, históricosPara dar de alta nuestros Crowdsec, lo haremos desde la web, “Security Engine” > “Engines” > “Adicionar mecanismo de segurança”, nos saldrá un desplegable que copiaremos y ejecutaremos en nuestro servidor de Crowdsec (por llamarlo de alguna manera).

Y lo ejecutamos, en este caso modificamos un poco el comando ya que lo ejecutaremos mediante Docker:

sudo docker exec -it crowdsec-crowdsec-1 cscli console enroll -e context xxxxxxxxxxxxxxx

Volvemos a la Consola de Crowdsec (y si no lo vemos, F5), nos saldrá que ha detectado nuestra solicitud de registro, Clique em “Acept enroll”,

Una vez la tenemos ya en el inventario, podremos primeramente editarle el nombre para reconocerla mejor, sobre ellaEdit name or tags”,

Le ponemos su nombre de máquina y pulsamos en “Atualização”,

Podemos seguir si queremos por suscribirla a ciertas Blocklists que nos ofrece Crowdsec, la comunidadasí la máquina estará protegida de ciertas redes de bots, malvadas… por isso, Clique em “Lista de bloqueio” donde vemos que esta suscrita a 0,

Clique em “Procurar listas de bloqueio disponíveis”,

Y aquí nos saldrán una serie de listas, podremos escoger hasta 3 de manera gratuita con la cuenta tipo Community, podremos elegir el tipo de las listas, las que más nos convezcan, necesitemossobre cada una de ellas, le daremos a “Gerir”,

E em “Adicionar mecanismo de segurança”,

Aquí nos saldrán las máquinas que tengan el agente de Crowdsec instalado, seleccionamos la máquina a suscribir y el tipo de acción, si un baneo a la IP o requerirle un Captcha al acceder. “Confirm Subscription”.

En principio vamos a dejar aquí el documento, podemos decir que mínimamente ha quedado el escenario central, la máquina que ofrecerá los servicios de LAPI para el resto de Engines de Crowdsec o la lista negra a nuestros firewalls perimetrales. Los siguientes pasos ya serán desplegar los agentes de Crowdsec donde lo necesitemos, y si nos interesa, pues los integramos a esta instalación y así entre ellos podrán tomar decisiones conjuntas.

Espero que os pueda aportar algo, aclarar si alguno tenía dudas o no lo conocía, o le apetece implementarlo en un LAB e ir probando soluciones como estas, fáciles, sencillas, para toda a família. Y que aportemos seguridad y nos anticipemos a sustosPues que eso, Não? Ya sabéis, que me piro vampiro, que espero que os vaya MUY bien, Abraços!

Postagens recomendadas

Autor

nheobug@bujarra.com
Autor del blog Bujarra.com Cualquier necesidad que tengas, Não hesite em contactar-me, Vou tentar ajudá-lo sempre que puder, Compartilhar é viver ;) . Desfrute de documentos!!!