Configuración del router
Esta guía cubre la configuración de MikroTik RouterOS necesaria para cs-routeros-bouncer.
Servicio API
Sección titulada «Servicio API»El bouncer se comunica con MikroTik mediante la API de RouterOS. Asegúrate de que el servicio API está habilitado:
/ip/service/printNecesitas 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-sslUsuario de la API
Sección titulada «Usuario de la API»Crea un usuario de RouterOS dedicado con permisos mínimos:
-
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 -
Crea el usuario de la API
/user/add name=crowdsec group=crowdsec password=YOUR_SECURE_PASSWORD
Políticas requeridas
Sección titulada «Políticas requeridas»| Política | Motivo |
|---|---|
read | Leer las reglas de firewall y las listas de direcciones |
write | Crear/modificar/eliminar reglas de firewall y listas de direcciones |
api | Acceder a la API de RouterOS |
sensitive | Necesaria para algunas operaciones de la API |
Políticas denegadas
Sección titulada «Políticas denegadas»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
Acceso a través del firewall
Sección titulada «Acceso a través del firewall»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=0Sustituye BOUNCER_IP por la dirección IP de la máquina que ejecuta el bouncer.
Configuración TLS
Sección titulada «Configuración TLS»Para conexiones TLS:
-
Asegúrate de que tu router tiene un certificado válido (autofirmado o firmado por una CA)
-
Habilita el servicio
api-ssl/ip/service/enable api-ssl -
Configura el bouncer
mikrotik:address: "192.168.0.1:8729"tls: truetls_insecure: false # Mantenlo en false tras instalar la confianza; true desactiva la verificación y es solo para diagnóstico
Verificación
Sección titulada «Verificación»Tras la configuración, verifica que el usuario de la API puede conectarse:
# Prueba la conectividad de la API en texto planonc -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/nullO usa el endpoint de salud del bouncer después de iniciarlo:
curl http://localhost:2112/health# {"status":"ok","routeros_connected":true,"version":"vX.Y.Z"}