CreaRack-SL

Módulo device_config · Helpers de parseo/credenciales/SSRF guard

Descripción

device_config.py — Funciones helper de bajo nivel para parseo de config de management de equipos de red, descifrado de credenciales y guard de SSRF.

Funciones públicas:

  • parse_device_config(device) → dict (JSON parseo)
  • get_device_ip(config, decrypt=True) → str (IP descifrada)
  • get_decrypted_credentials(config, device_id) → (username, password)
  • is_private_ip(ip) → bool (SSRF guard)
  • get_device_vendor(config) → str
  • get_device_port(config) → int

Cambios (s113)

M7/B10: is_private_ip completo ✓

Cubre explícitamente:

  • RFC1918: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
  • Loopback: 127.0.0.0/8, ::1
  • Link-local/metadata: 169.254.0.0/16, fe80::/10
  • CGNAT (VPN NetBird): 100.64.0.0/10
  • Unspecified: 0.0.0.0, ::/128
  • Multicast: 224.0.0.0/4, ff00::/8

M9: Fallback a None ✓

Antes: get_device_ip() si descifrado fallaba devolvía token gAAAAA....
Ahora: Devuelve None → 400 en endpoint.
Efecto: Fallo de descifrado visible, no silencioso.

Véase también

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