Ir al contenido

Configuración del router

Esta guía cubre la configuración de MikroTik RouterOS necesaria para cs-routeros-bouncer.

El bouncer se comunica con MikroTik mediante la API de RouterOS. Asegúrate de que el servicio API está habilitado:

/ip/service/print

Necesitas uno de estos:

  • api (puerto 8728) — conexión en texto plano
  • api-ssl (puerto 8729) — conexión cifrada con TLS Recomendado

Para habilitarlos:

# Habilita la API en texto plano
/ip/service/enable api
# Habilita la API con TLS (recomendado)
/ip/service/enable api-ssl

Crea un usuario de RouterOS dedicado con permisos mínimos:

  1. Crea un grupo solo con las políticas requeridas

    /user/group/add name=crowdsec policy=read,write,api,sensitive,!ftp,!local,!ssh,!reboot,!policy,!test,!password,!sniff,!romon,!rest-api
  2. Crea el usuario de la API

    /user/add name=crowdsec group=crowdsec password=YOUR_SECURE_PASSWORD
PolíticaMotivo
readLeer las reglas de firewall y las listas de direcciones
writeCrear/modificar/eliminar reglas de firewall y listas de direcciones
apiAcceder a la API de RouterOS
sensitiveNecesaria para algunas operaciones de la API

Todas las demás políticas se deniegan explícitamente para seguir el principio de mínimo privilegio:

!ftp, !local, !ssh, !reboot, !policy, !test, !password, !sniff, !romon, !rest-api

Si tienes reglas de firewall que restringen el acceso a la API, permite las conexiones desde el host del bouncer:

# Para la API en texto plano (puerto 8728)
/ip/firewall/filter/add chain=input protocol=tcp dst-port=8728 src-address=BOUNCER_IP action=accept comment="Allow CrowdSec bouncer API access" place-before=0
# Para la API con TLS (puerto 8729) — si usas tls: true
/ip/firewall/filter/add chain=input protocol=tcp dst-port=8729 src-address=BOUNCER_IP action=accept comment="Allow CrowdSec bouncer API-SSL access" place-before=0

Sustituye BOUNCER_IP por la dirección IP de la máquina que ejecuta el bouncer.

Para conexiones TLS:

  1. Asegúrate de que tu router tiene un certificado válido (autofirmado o firmado por una CA)

  2. Habilita el servicio api-ssl

    /ip/service/enable api-ssl
  3. Configura el bouncer

    mikrotik:
    address: "192.168.0.1:8729"
    tls: true
    tls_insecure: false # Mantenlo en false tras instalar la confianza; true desactiva la verificación y es solo para diagnóstico

Tras la configuración, verifica que el usuario de la API puede conectarse:

Ventana de terminal
# Prueba la conectividad de la API en texto plano
nc -vz ROUTER_IP 8728
# Prueba la conectividad de la API con TLS (si usas api-ssl)
openssl s_client -connect ROUTER_IP:8729 -servername ROUTER_IP </dev/null

O usa el endpoint de salud del bouncer después de iniciarlo:

Ventana de terminal
curl http://localhost:2112/health
# {"status":"ok","routeros_connected":true,"version":"vX.Y.Z"}