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 monitoreosuggest_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=Falsepor defecto (antesTrue— dos caminos de creación,provisioning.pyy este, con dos defaults distintos; ahora coinciden) y enlazadevice=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) ydevice(si aún no estaba enlazado).ping_enabled/http_enabled/tcp_enabledlos decide el usuario y no se tocan. snmp_community: ya no se escribe'public'a ciegas cuando el perfil no trae comunidad — siprofile.snmp_communityestá vacío, la clave ni se incluye ensnmp_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.configsin 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]]