CreaRack-SL

Servicio ScrapliManager · Manager de sesiones SSH multi-vendor

Descripción

ScrapliManager (network/services/scrapli_manager.py) — Gestor async de sesiones SSH para equipos de red multi-vendor (Cisco, Juniper, Arista, generic). Reutiliza scrapli + asyncssh.

Métodos públicos:

  • connect(session_id, host, username, password) — Abre sesión SSH
  • send_show_commands(session_id, commands) — Modo lectura (show)
  • send_configs(session_id, commands) — Modo configuración (config)
  • disconnect(session_id) — Cierra sesión
  • execute_script(host, username, password, commands) — Abre, ejecuta, cierra en un solo llamado

Cambios de seguridad (s113)

A4: Timeouts 120s ✓

Antes: timeout_transport=3600, timeout_ops=3600 (1h DoS).
Ahora: 120 segundos.
Efecto: Worker ASGI no se bloquea más de 2 minutos.

A5: Modo exec por defecto ✓

Antes: execute_script() llamaba a send_configs() para vendors conocidos.
Ahora: send_show_commands() por defecto; send_configs() solo si config=True explícito.
Efecto: Un script “show” nunca entra en CONFIG mode.

B13: Logs sin contenido ✓

Antes: write_to_channel() / read_channel() hacían logger.debug(repr(data)).
Ahora: Solo tamaño en bytes.
Efecto: No filtra passwords/configs a DEBUG logs.

Deuda (M3)

  • auth_strict_key=False: NO verifica host key → MITM posible. Diferido a M3 TOFU con sa1 A9.

Véase también

  • [[entity—network—endpoint—execute-script]]
  • [[entity—network—service—device-config]]
  • [[feature—network—scripts-ssh-audit-s113]]