
nas: una CLI de Python sin dependencias + servidor MCP para Synology DSM 7. Auditoría y corrección con un solo comando para la campaña de ransomware C3RB3R / .L0CK3D; entrégasela a tu agente de IA.
Audita un NAS Synology contra la campaña de ransomware C3RB3R / .L0CK3D con un solo comando, corrige lo que encuentre con un segundo comando y sigue ejecutando DSM desde la terminal después.
Repositorio canónico, releases e issues: https://gitlab.com/aa22396584/synology-nas-cli
nas es una CLI de Python sin dependencias (solo biblioteca estándar, Python 3.8+, por lo que también se ejecuta en el propio DSM) y un servidor MCP por stdio para la API web de Synology DSM 7: estado, salud, registros, paquetes, volúmenes, Tailscale, actualizaciones de DSM, alertas de salud programadas enviadas a un webhook, y una herramienta de auditoría y remediación de incidentes creada durante la campaña de octubre de 2026 de C3RB3R / .L0CK3D contra equipos Synology NAS expuestos a internet (Synology-SA-24:20, SA-26:13, SA-26:14).
No está afiliado a Synology Inc. "Synology", "DSM" y "QuickConnect" son marcas registradas de Synology Inc.
nas incident fixPega cualquiera de los dos prompts en Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Grok Bot o cualquier agente de IA que use herramientas (configuración de Grok Bot, habilidades y rutina de alertas: docs/GROK-BOT.md):
Prompt en inglés:
Use https://github.com/akari-sora/synology-nas-cli to audit and fix my Synology NAS at https://192.0.2.10:5001. Follow docs/AGENT-RUNBOOK.md.
Indicaciones en chino tradicional:
使用 https://github.com/akari-sora/synology-nas-cli 檢查並修復我的 Synology NAS(位址:https://192.0.2.10:5001),照著 docs/AGENT-RUNBOOK.md 的步驟執行。
./bin/nas --version.nas setup: Ejecuta nas setup --json --no-input ... para escribir ~/.config/synology-nas-cli/config.json (modo 0600), inicia sesión una vez para verificar las credenciales y fija la huella SHA-256 del certificado TLS de DSM en el primer uso.nas doctor: Ejecuta nas doctor --json para verificar la configuración, las credenciales, la accesibilidad del origen, el pin TLS, el inicio de sesión, la versión de DSM frente a SA-26:13, el estado de la verificación en 2 pasos, las capacidades de administrador y la desviación del reloj.nas incident: Ejecuta nas incident --json (y opcionalmente --probe --scan) para realizar una auditoría de solo lectura de la versión de DSM, paquetes vulnerables, firewall, QuickConnect, reglas UPnP del router, puertos públicos, inicios de sesión externos y fallidos, AutoBlock, SMB1, el admin integrado, programaciones de instantáneas, la trampa de bloqueo WORM de modelos no compatibles, notas de rescate e intentos de explotación de CVE-2024-10441.nas incident fix --dry-run --json --ransom-scan y muestra cada cambio planificado (before -> after), las llamadas exactas a la API web de DSM y la ruta correspondiente en la interfaz web de DSM.nas incident fix --yes: Aplica el plan aprobado en orden (snapshot_worm → snapshots → packages → smb_min_protocol → quickconnect → router_port_forwarding → autoblock → admin_account → firewall, además de los opcionales --rotate-password y --upgrade), vuelve a leer cada ajuste para verificarlo y ejecuta de nuevo la auditoría.--deep y alert-deploy: Ejecuta nas incident --deep --json (un único recolector root de solo lectura mediante el Programador de tareas que revisa registros exclusivos de root, crontabs, binarios de /bin, cuentas, claves SSH y /proc) y nas alert-deploy --json --test (monitorización de estado y seguridad de 10 minutos enviada a un webhook).https://192.0.2.10:5001, más una URL de VPN/Tailscale si se usa).op://VAULT/ITEM/password, un comando de contraseña o el llavero del sistema operativo).192.0.2.0/24)./docker/.nas-cli-deploy, usada por --deep y alert-deploy).nas setup termina con código 3 y "field": "otp", proporciona el código de 6 dígitos actual; --trust-device almacena el token de dispositivo de confianza de DSM (0600) para que los comandos posteriores no necesiten un código.nas incident fix --yes (y elige si incluir --rotate-password o --upgrade).Especificación completa del agente: docs/AGENT-RUNBOOK.md.
nas incident es de solo lectura. Cada elemento imprime PASS, WARN, FAIL o SKIP con una sugerencia de una línea (--json genera JSON estructurado; el esquema está en schemas/incident.schema.json). El estado de salida es 1 cuando algún elemento es FAIL.