Icono del sitio RDR-IT

Crowdsec: asegurando la red de sus servidores web – instalación y configuración

En este tutorial, explicaré cómo proteger la parte de la red de sus servidores web con Crowdsec.

El tutorial está hecho en Ubuntu 20.04

Descripción general de Crowdsec

Crowdsec es una herramienta de código abierto que le permite «asegurar» o más bien agregar una capa de seguridad a sus servidores Linux (próximamente también Windows) mediante la detección de ataques a la red (escaneo de puertos, fuerza bruta SSH, escaneo de contenido web…) y prohibición de IP direcciones.

Si está familiarizado con fail2ban, Crowdsec hace lo mismo pero mejor:

Para facilitar el intercambio de configuraciones entre usuarios, existe un hub (una especie de mercado) donde encontrará configuraciones para asegurar su servidor.

Requisitos previos para poder utilizar Crowdsec

Uno de los requisitos previos necesarios para usar Crowdsec es tener un firewall activo (IPTABLE) en su servidor.

Si no hay un firewall, Crowdsec no podrá agregar una regla para bloquear el tráfico.

Antes de activar su firewall, debe asegurarse de que el tráfico entrante 80, 443 y 22 esté autorizado.

Comience por verificar si el firewall está activo con el siguiente comando:

sudo ufw status

Si está deshabilitado, comenzaremos agregando las reglas básicas para el tráfico entrante: 22, 80 y 443:

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443

Para cada regla (comando), se muestra un mensaje de confirmación para indicar que se agregó la regla.

Ahora que se crearon las reglas, habilite ufw:

sudo ufw enable

La orden requiere confirmación

Ahora que ufw está habilitado, ingrese el siguiente comando para mostrar el estado y la lista de reglas:

sudo ufw status verbose

Una última cosa que debe hacer antes de instalar Crowdsec es activar los registros del firewall, ya que se analizarán para detectar ataques.

Ingrese el siguiente comando para activar los registros:

sudo ufw logging on

El comando regresa : Logging enabled.

Los registros se guardan en el archivo. /var/log/syslog.

Para asegurarse de que los registros se registren correctamente, desde otro servidor, puede hacer telnet a un puerto sin abrir:

telnet ip 514

Nuestro servidor está listo, vamos a instalar Crowdsec.

instalación de crowdsec

La instalación de Crowdsec es muy sencilla, durante la instalación también detectará los diferentes componentes (Nginx, Apache2, MySQL…) que puede monitorizar y configurarse «automáticamente».

1. Agregue el repositorio a su servidor usando el siguiente script:

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

2. Actualizar lista de paquetes:

sudo apt update

3. Instalar Crowdsec:

sudo apt install crowdsec

En la captura de abajo, el proceso de instalación donde podemos ver el descubrimiento y la instalación y la configuración automáticamente para sshd y nginx.

Crowdsec ahora está instalado y «funcionando».

Antes de continuar con la configuración e instalación de un Bouncer, le mostraré cómo interactuar con el cliente cscli.

Uso del cliente cscli – Crowdsec

Hay disponible un cliente de línea de comandos para Crowdsec para configurarlo y monitorearlo.

Para mostrar la lista de comandos disponibles, use el comando:

cscli

El comando metric muestra varias estadísticas relacionadas con el servicio crowdsec:

cscli metrics

Como podemos ver en la captura, vemos los archivos fuente utilizados y sus estadísticas y también los diferentes analizadores utilizados que permiten detectar

Para mostrar registros que coincidieron con una regla:

cscli alerts list

Para obtener los detalles de una alerta:

cscli alerts inspect ID

Para ver la lista de baneos (bloqueos):

cscli decisions list

Por el momento aún no tenemos instalado Bouncer, si usas el comando por el momento tendrás el siguiente mensaje: No active decisions.

Cuando hayamos instalado un gorila, explicaré cómo prohibir una dirección IP manual y cómo eliminarla.

Mostrar la lista de analizadores:

cscli parsers list

Recordatorio: los analizadores son las configuraciones que permitirán leer e interpretar los registros.

Mostrar la lista de escenarios:

cscli scenarios list

Recordatorio: los escenarios son las configuraciones que detectarán los comportamientos y las acciones a realizar.

El último elemento que podemos tener son también los postoverflows

cscli postoverflows list

Los postoverflows son archivos de configuración que contienen listas blancas para evitar el bloqueo de ciertos servicios como CloudFlare, bots de indexación…

Installar un bouncer

Ahora, veremos cómo instalar un Bouncer, que nos permitirá bloquear ataques.

La lista de Bouncers está disponible en Crowdsec Hub. Hay varios bloqueadores disponibles que puedes ponerte:

En el tutorial, explicaré cómo configurar la hamaca. : cs-firewall-bouncer.

Instalación automática desde el repositorio

Ahora es posible instalar automáticamente ciertos bouncers disponibles en el repositorio y este es particularmente el caso del bouncer: cs-firewall-bouncer-iptables.

Ingrese el siguiente comando para instalar el Bouncer :

sudo apt install crowdsec-firewall-bouncer-iptables

Instalación manual del Bouncer de iptable

Vaya a la página en el centro de Crowdsec o Github:

Las siguientes instrucciones son válidas al momento de escribir este tutorial, la hamaca puede haber evolucionado.

1. Fuentes de descarga:

wget https://github.com/crowdsecurity/cs-firewall-bouncer/releases/download/v0.0.12/cs-firewall-bouncer.tgz

2. Descomprimir el archivo:

tar xzvf cs-firewall-bouncer.tgz

3. Vaya a la carpeta descomprimida (adaptarse a la versión del archivo):

cd cs-firewall-bouncer-vX.Y.ZZ/

4. Inicie el script de instalación:

sudo ./install.sh

Durante la instalación, se le pedirá que instale ipset si no está presente.

La configuración de Bouncer está en el archivo. : /etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml.

Vea el archivo y verifique que esté en modo iptables:

cat /etc/crowdsec/cs-firewall-bouncer/cs-firewall-bouncer.yaml

Use el siguiente comando para ver el Bouncer :

sudo cscli bouncers list

Consulta el estado del Bouncer:

sudo systemctl status cs-firewall-bouncer

A partir de ahora, los ataques serán bloqueados por el firewall de Linux según los escenarios.

Instale un componente con cscli y el concentrador

En esta parte, explicaré cómo instalar un componente concentrador usando el cliente (cscli).

Como instalé Crowdsec en un servidor web, instalaremos la lista blanca para indexar robots.

En la página de configuración de CrowdSec Hub encontramos la línea a ejecutar.

sudo cscli postoverflows install crowdsecurity/seo-bots-whitelist

Si no usa la cuenta raíz, agregue sudo al frente

Vuelva a cargar la configuración para su consideración:

sudo systemctl reload crowdsec

Ahora sabe cómo instalar una configuración con el cliente.

Hay otros comandos que permiten la actualización y desinstalación.

Actualización :

cscli hub update

Desinstalación:

cscli {composant} remove {nom_du/composant}

Actuar sobre las decisiones

Es posible actuar sobre las decisiones manualmente para prohibir una dirección IP o desbanear.

Prohibir una dirección IP:

sudo cscli decisions add --ip 172.69.32.87

La dirección IP 172.69.32.87 se bloqueará durante 4 horas.

Prohibir una dirección IP durante 24 horas:

sudo cscli decisions add --ip 172.69.32.87 --duration 24h

Prohibir un rango de direcciones IP:

sudo cscli decesions add --range 172.69.0.0/16

Para eliminar una prohibición, reemplace agregar con eliminar:

sudo cscli decisions delete --ip 172.69.32.87
sudo cscli decesions delete --range 172.69.0.0/16

Para concluir

A través de este tutorial, ahora tiene toda la información necesaria para instalar, configurar y administrar Crowdsec para proteger su servidor Linux.

Personalmente, desde que descubrí este software, lo instalo en lugar de fail2ban, porque me gusta mucho su lado comunitario y su facilidad de uso.

Seguirán más tutoriales de Crowdsec donde explicaré cómo agregar fuentes de archivos y cómo crear un escenario.

Finalmente, tenga en cuenta que hay un tablero disponible basado en una imagen de Docker y que es posible usar una base de datos MySQL/PostgreSQL para agrupar decisiones entre varios de sus servidores.

Salir de la versión móvil