Ir al contenido

Seguridad

VersiónCompatible
Última release
Minor anterior
Versiones antiguas
  1. No abras un issue público

  2. Contacta de forma privada

    Abre un aviso de seguridad privado usando la funcionalidad de notificación privada de vulnerabilidades de GitHub. Si prefieres correo cifrado, usa la clave PGP del mantenedor.

  3. Incluye los detalles

    • Descripción de la vulnerabilidad
    • Pasos para reproducirla
    • Impacto potencial
    • Solución sugerida (si la hay)

Nuestro objetivo es responder en un plazo de 48 horas y trabajaremos contigo para entender y resolver el problema.

  • Usa un usuario dedicado con permisos mínimos (solo las políticas read, write, api y sensitive)
  • Usa TLS cuando sea posible (mikrotik.tls: true)
  • Almacena las credenciales de forma segura (variables de entorno o gestión de secretos)
  • Nunca subas credenciales al control de versiones
  • Usa certificados TLS para las conexiones a la LAPI cuando estén disponibles
  • Restringe el acceso a la LAPI a redes de confianza
  • Rota las API keys del bouncer periódicamente
  • La imagen Docker oficial se ejecuta como usuario no root
  • Usa un montaje de sistema de archivos de solo lectura cuando sea posible
  • Limita las capabilities del contenedor
  • Usa gestión de secretos para las credenciales (secretos de Docker, secretos de Kubernetes)

El comando setup escribe una unidad de systemd con hardening habilitado:

AjustePropósito
NoNewPrivileges=yesImpide la escalada de privilegios a través de transiciones exec
ProtectSystem=strictMonta las rutas del sistema en solo lectura para el servicio
ProtectHome=yesBloquea el acceso directo a los directorios home
ReadWritePaths=/var/logPermite escribir archivos de log cuando logging.file apunta bajo /var/log
PrivateTmp=yesProporciona al servicio un directorio temporal aislado
LimitNOFILE=65536Deja margen para las sesiones de la API de RouterOS y los endpoints HTTP

Si mantienes un archivo de unidad manual, conserva estos ajustes salvo que tu despliegue tenga una razón concreta para relajar alguno.

  • El bouncer identifica sus reglas mediante comentarios estructurados — no modifiques estos comentarios manualmente
  • Usa la opción comment_prefix para evitar conflictos con otras herramientas
  • El bouncer realiza una limpieza al arrancar y al apagarse para evitar reglas obsoletas
  • Cada regla del bouncer incluye además la firma fija @cs-routeros-bouncer. Esto permite que la limpieza de recuperación tras un fallo encuentre reglas antiguas incluso si comment_prefix cambia más adelante.