CreaRack-SL

Servicio AutoConfigService · Auto-config post-discovery

Descripción

AutoConfigService — Auto-configura equipos tras descubrimiento (crea MonitoringTarget en Observatory, sugiere stencil de equipos).

Métodos:

  • configure_observatory(profile) — Crea/actualiza targets de monitoreo
  • suggest_stencil(profile) — Sugiere template de equipo
  • _configure_snmp_settings() — Configura SNMP (deuda M5: snmp_community en claro)

Cambios (s113)

A6: IDOR suggest_stencil ✓

Antes: Stencil.objects.get(id=profile.suggested_stencil_id) sin filtro org → fuga de metadata cross-tenant.
Ahora: Filtra Q(id=...) & (Q(organization=org) | Q(organization__isnull=True)).
Efecto: Un legacy stencil_id de otra org no se devuelve.

Cambios (auditoría #261, ciclo 3 — A51, commit 39c13ea8)

Antes: configure_observatory usaba update_or_create — cada re-ejecución (guardar un rack, relanzar “configure-observatory”) pisaba ping_enabled/snmp_enabled/http_enabled con los defaults del método, borrando lo que el usuario hubiera cambiado a mano. Tampoco enlazaba device al crear.

Ahora: get_or_create.

  • Creación: http_enabled=False por defecto (antes True — dos caminos de creación, provisioning.py y este, con dos defaults distintos; ahora coinciden) y enlaza device=profile.linked_device.
  • Target ya existente: solo refresca lo DERIVADO del discovery — name (si cambió el hostname), snmp_enabled (si el perfil ahora soporta SNMP) y device (si aún no estaba enlazado). ping_enabled/http_enabled/tcp_enabled los decide el usuario y no se tocan.
  • snmp_community: ya no se escribe 'public' a ciegas cuando el perfil no trae comunidad — si profile.snmp_community está vacío, la clave ni se incluye en snmp_config; el Agente cae a las credenciales de la ficha de dispositivo (build_profile_snmp_lookup, ciclo 1) o no sondea SNMP.

Test de contrato: tests/network/test_auto_config.py.

Deuda (M5)

  • snmp_community en claro: Almacenado en MonitoringTarget.config sin cifrado. Diferido a Plan Hardening E.

Véase también

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