Instalación
cs-routeros-bouncer se distribuye como imagen de contenedor multiarquitectura, binarios de Linux precompilados con instalador para systemd y código fuente Go compilable. Usa Docker Compose si ya ejecutas CrowdSec en contenedores; usa el instalador de systemd (cs-routeros-bouncer setup) en un host Linux sin contenedores; compila desde el código fuente solo si necesitas una plataforma sin release o quieres modificar el código.
Ideal si ya ejecutas CrowdSec en Docker.
Configuración básica
Sección titulada «Configuración básica»services: cs-routeros-bouncer: image: ghcr.io/jmrplens/cs-routeros-bouncer:latest container_name: cs-routeros-bouncer restart: unless-stopped ports: - "2112:2112" # Métricas de Prometheus (opcional) environment: CROWDSEC_URL: "http://crowdsec:8080/" CROWDSEC_BOUNCER_API_KEY: "your-bouncer-api-key" MIKROTIK_HOST: "192.168.0.1:8728" MIKROTIK_USER: "crowdsec" MIKROTIK_PASS: "your-password"Con archivo de configuración
Sección titulada «Con archivo de configuración»La imagen de Docker puede funcionar solo con variables de entorno. Si prefieres un archivo YAML, móntalo en /etc/cs-routeros-bouncer/config.yaml; el bouncer carga ese archivo automáticamente cuando existe:
services: cs-routeros-bouncer: image: ghcr.io/jmrplens/cs-routeros-bouncer:latest container_name: cs-routeros-bouncer restart: unless-stopped ports: - "2112:2112" volumes: - ./config.yaml:/etc/cs-routeros-bouncer/config.yamlInicia el servicio:
docker compose up -dInstalación automática (recomendada)
Sección titulada «Instalación automática (recomendada)»-
Descarga la última versión
Ventana de terminal # Sustituye la arquitectura según necesites: amd64, arm64, armv7wget https://github.com/jmrplens/cs-routeros-bouncer/releases/latest/download/cs-routeros-bouncer_linux_amd64.tar.gztar xzf cs-routeros-bouncer_linux_amd64.tar.gz -
Ejecuta la instalación automatizada
Ventana de terminal sudo ./cs-routeros-bouncer setup -
Configura
Ventana de terminal sudo nano /etc/cs-routeros-bouncer/cs-routeros-bouncer.yamlsudo systemctl restart cs-routeros-bouncer
La instalación automatizada copia el binario, crea el directorio de configuración, escribe una unidad de systemd reforzada, habilita el servicio y lo inicia.
El subcomando setup acepta flags opcionales:
| Flag | Valor por defecto | Descripción |
|---|---|---|
-bin | /usr/local/bin/cs-routeros-bouncer | Ruta de instalación del binario |
-config-dir | /etc/cs-routeros-bouncer | Directorio para los archivos de configuración |
La configuración generada es /etc/cs-routeros-bouncer/cs-routeros-bouncer.yaml a menos que -config-dir cambie el directorio.
Instalación manual
Sección titulada «Instalación manual»Pasos de instalación manual (haz clic para expandir)
# Descargawget https://github.com/jmrplens/cs-routeros-bouncer/releases/latest/download/cs-routeros-bouncer_linux_amd64.tar.gztar xzf cs-routeros-bouncer_linux_amd64.tar.gz
# Instala el binariosudo install -m 755 cs-routeros-bouncer /usr/local/bin/
# Crea el directorio de configuración y copia la configuraciónsudo mkdir -p /etc/cs-routeros-bouncersudo cp cs-routeros-bouncer.yaml /etc/cs-routeros-bouncer/cs-routeros-bouncer.yaml
# Edita la configuraciónsudo nano /etc/cs-routeros-bouncer/cs-routeros-bouncer.yaml
# Crea el servicio de systemdsudo tee /etc/systemd/system/cs-routeros-bouncer.service > /dev/null << 'EOF'[Unit]Description=CrowdSec RouterOS BouncerAfter=network-online.target crowdsec.serviceWants=network-online.target
[Service]Type=simpleExecStart=/usr/local/bin/cs-routeros-bouncer -c /etc/cs-routeros-bouncer/cs-routeros-bouncer.yamlRestart=on-failureRestartSec=10TimeoutStopSec=90LimitNOFILE=65536
# HardeningNoNewPrivileges=yesProtectSystem=strictProtectHome=yesReadWritePaths=/var/logPrivateTmp=yes
[Install]WantedBy=multi-user.targetEOF
sudo systemctl daemon-reloadsudo systemctl enable --now cs-routeros-bouncerDesinstalación
Sección titulada «Desinstalación»# Conserva los archivos de configuraciónsudo cs-routeros-bouncer uninstall
# Elimina también la configuraciónsudo cs-routeros-bouncer uninstall -purgeuninstall también acepta -bin y -config-dir si la instalación usó rutas personalizadas. Pasa el mismo -config-dir junto con -purge para eliminar ese directorio de configuración personalizado.
Consulta la Referencia de la CLI para ver todos los flags de setup y uninstall.
Requisitos previos
Sección titulada «Requisitos previos»- Go 1.26.4+ — Descargar
- Make — normalmente preinstalado en Linux
Compilar e instalar
Sección titulada «Compilar e instalar»-
Clona y compila
Ventana de terminal git clone https://github.com/jmrplens/cs-routeros-bouncer.gitcd cs-routeros-bouncermake buildEl binario se crea en
bin/cs-routeros-bouncer. -
Instala
Ventana de terminal # Opción 1: Instalación automatizadasudo bin/cs-routeros-bouncer setup# Opción 2: Instalación manualsudo install -m 755 bin/cs-routeros-bouncer /usr/local/bin/
Verificar la instalación
Sección titulada «Verificar la instalación»Tras instalar con cualquiera de los métodos, verifica que el bouncer se ejecuta correctamente:
-
Comprueba el estado del servicio
Ventana de terminal # Instalación con binariosudo systemctl status cs-routeros-bouncer# Docker Composedocker compose ps cs-routeros-bouncer -
Comprueba el endpoint de salud
Ventana de terminal curl http://localhost:2112/health# {"status":"ok","routeros_connected":true,"version":"vX.Y.Z"} -
Comprueba los logs
Ventana de terminal # Instalación con binariosudo journalctl -u cs-routeros-bouncer -f# Docker Composedocker compose logs -f cs-routeros-bouncer -
Verifica las reglas en el router
/ip/firewall/filter/print where comment~"crowdsec"/ip/firewall/raw/print where comment~"crowdsec"/ip/firewall/address-list/print where list=crowdsec-banned