Bloqueo de Ataques y bots en HestiaCP con Crowdsec

CrowdSec es un sistema de detección y prevención de intrusiones (IDS/IPS) de código abierto y moderno que está diseñado para proteger servidores, servicios, contenedores o máquinas virtuales expuestos en Internet con una defensa en red. Es una solución de seguridad que puede ser utilizada para proteger cualquier servicio TCP/UDP, independientemente del protocolo que esté en uso.

CrowdSec utiliza un enfoque basado en comportamientos y firmas para detectar ataques y luego reacciona bloqueando la IP del atacante. Además, comparte las señales de ataque detectadas (es decir, las IP de los atacantes) con otros usuarios de CrowdSec en todo el mundo. Esto significa que una vez que un atacante es reconocido por una sola máquina, será bloqueado en todas las otras máquinas que utilicen CrowdSec.

Además, CrowdSec es modular y se puede extender con complementos llamados “bouncers” para realizar acciones en respuesta a las detecciones, como bloquear tráfico, generar alertas, etc. Los bouncers pueden ser utilizados para proteger una amplia gama de sistemas, desde firewalls de red hasta aplicaciones web.

CrowdSec también ofrece una consola de administración web y una API para facilitar la gestión y el monitoreo de la seguridad.

En resumen, CrowdSec es una solución de seguridad de red efectiva y colaborativa que protege tus sistemas contra ataques maliciosos, aprendiendo de los datos recopilados en toda la comunidad de usuarios.

Instalación de Crowdsec en Linux

Descarga e instala el paquete de Crowdsec con los siguientes comandos:

curl -s https://packagecloud.io/install/repositories/crowdsec/crowdsec/script.deb.sh | sudo bash
sudo apt install crowdsec -y

Una vez instalado, Crowdsec detectará automáticamente los servicios en tu máquina y comenzará a monitorizarlos.

Instalación del Bouncer de Firewall

Para que Crowdsec pueda bloquear las direcciones IP de origen de los ataques, necesitas instalar un bouncer de firewall. En este caso, usaremos el bouncer de iptables:

sudo apt install crowdsec-firewall-bouncer-iptables -y

Instalación de Colecciones

Las colecciones de Crowdsec son conjuntos de escenarios, parsers y postoverflows que permiten a Crowdsec detectar y manejar ciertos tipos de ataques. Para instalar las colecciones para WordPress, Dovecot, Exim, VsFTP, Dovecot y MySQL y así poder asegurar tú instalación de HestiaCP usa los siguientes comandos:

cscli collections install crowdsecurity/wordpress
cscli collections install crowdsecurity/dovecot
cscli collections install crowdsecurity/exim
cscli collections install crowdsecurity/mysql
cscli collections install crowdsecurity/vsftpd

Tras instalar debería quedarte algo así:

cscli collections list

COLLECTIONS
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Name                                📦 Status   Version   Local Path                                         
──────────────────────────────────────────────────────────────────────────────────────────────────────────────
 crowdsecurity/base-http-scenarios   ✔️ enabled   0.6       /etc/crowdsec/collections/base-http-scenarios.yaml 
 crowdsecurity/dovecot               ✔️ enabled   0.1       /etc/crowdsec/collections/dovecot.yaml             
 crowdsecurity/exim                  ✔️ enabled   0.1       /etc/crowdsec/collections/exim.yaml                
 crowdsecurity/http-cve              ✔️ enabled   2.1       /etc/crowdsec/collections/http-cve.yaml            
 crowdsecurity/linux                 ✔️ enabled   0.2       /etc/crowdsec/collections/linux.yaml               
 crowdsecurity/mysql                 ✔️ enabled   0.1       /etc/crowdsec/collections/mysql.yaml               
 crowdsecurity/nginx                 ✔️ enabled   0.2       /etc/crowdsec/collections/nginx.yaml               
 crowdsecurity/proftpd               ✔️ enabled   0.1       /etc/crowdsec/collections/proftpd.yaml             
 crowdsecurity/sshd                  ✔️ enabled   0.2       /etc/crowdsec/collections/sshd.yaml                
 crowdsecurity/vsftpd                ✔️ enabled   0.1       /etc/crowdsec/collections/vsftpd.yaml              
 crowdsecurity/wordpress             ✔️ enabled   0.4       /etc/crowdsec/collections/wordpress.yaml           
──────────────────────────────────────────────────────────────────────────────────────────────────────────────

Actualización automática de las reglas

Puedes ejecutar este comando para que te cree un cron que actualice las reglas de Crowdsec de forma automática cada hora.

(crontab -l ; echo "0 * * * * $(which cscli) hub update && $(which cscli) hub upgrade") | crontab -

Recarga de Crowdsec

Después de instalar las colecciones, debes recargar Crowdsec para que pueda usarlas:

sudo systemctl reload crowdsec

Inscripción en la Consola de Crowdsec

La consola de CrowdSec es una interfaz web alojada por CrowdSec que te permite obtener aún más de CrowdSec. Aquí están algunas de las características que ofrece:

  1. Gestión de instancias: Puedes agregar, etiquetar y clasificar tus instancias de CrowdSec. Esto es útil si tienes varias instancias de CrowdSec corriendo en diferentes sistemas o ubicaciones y quieres gestionarlas todas desde un solo lugar.
  2. Alertas en tiempo real: La consola te permite ver, filtrar y exportar alertas en tiempo real. Esto te ayuda a mantener un ojo en lo que está sucediendo en tus sistemas y a responder rápidamente a cualquier incidente de seguridad.
  3. Estadísticas e insights: Puedes obtener estadísticas e insights sobre tus alertas. Esto te permite entender mejor los patrones de ataque y adaptar tus defensas en consecuencia.
  4. Gestión de la organización: La consola ofrece herramientas para la gestión de la organización, incluyendo la autenticación multifactor (MFA) para mejorar la seguridad.

Para registrarte en la consola de CrowdSec, debes visitar https://app.crowdsec.net/ y seguir las instrucciones para crear una nueva cuenta. Una vez que te hayas registrado, puedes iniciar sesión en la consola y comenzar a utilizar las características mencionadas anteriormente.

Puedes vincular tu agente desde la consola haciendo click en:

image

Te aparecerá algo como esto:

El comando sudo cscli console enroll cl********* que mencionaste anteriormente se utiliza para inscribir una instancia de CrowdSec en la consola. El argumento cl****redacted*** es un token de inscripción que se genera cuando creas una nueva instancia en la consola. Este token vincula tu instancia local de CrowdSec con tu cuenta en la consola de CrowdSec.


Comandos Útiles de CrowdSec

Una vez que CrowdSec está instalado y configurado, hay varios comandos que puedes usar para interactuar y administrar el sistema. Aquí hay algunos de los más útiles:

  1. Ver la lista de decisiones (baneos o bloqueos):
    Este comando te permite ver todas las decisiones que CrowdSec ha tomado, incluyendo las direcciones IP que ha bloqueado.
    sudo cscli decisions list

2. Agregar una decisión (banear manualmente una IP):
Si necesitas bloquear una dirección IP específica, puedes usar este comando. Solo necesitas reemplazar “DIRECCIÓN_IP” con la dirección IP que deseas bloquear y “Descripción” con una razón para el bloqueo.

   sudo cscli decisions add --ip DIRECCIÓN_IP --reason "Descripción"

3. Eliminar una decisión (desbloquear una dirección IP):
Si necesitas desbloquear una dirección IP que previamente fue bloqueada, puedes usar este comando. Solo necesitas reemplazar “DIRECCIÓN_IP” con la dirección IP que deseas desbloquear.

  sudo cscli decisions delete --ip DIRECCIÓN_IP

4. Ver las alertas que han saltado:
      Este comando te permite ver todas las alertas que han sido generadas por CrowdSec.

   sudo cscli alerts list

5. Inspeccionar una alerta específica:
Si necesitas más detalles sobre una alerta específica, puedes usar este comando. Solo necesitas reemplazar “ID” con el ID de la alerta que deseas inspeccionar.

  sudo cscli alerts inspect ID

6. Habilitar/deshabilitar los parsers o scenarios:
Estos comandos te permiten habilitar o deshabilitar los parsers o escenarios. Solo necesitas reemplazar “NOMBRE” con el nombre del parser o escenario que deseas habilitar o deshabilitar.

  sudo cscli parsers enable NOMBRE
  sudo cscli parsers disable NOMBRE
  sudo cscli scenarios enable NOMBRE
  sudo cscli scenarios disable NOMBRE

Con estos comandos y la consola de CrowdSec, puedes mantener tu sistema seguro y monitorizar y administrar cualquier actividad sospechosa o maliciosa.