nas : un CLI Python sans dépendance + serveur MCP pour Synology DSM 7. Audit et correction en une seule commande pour la campagne de rançongiciel C3RB3R / .L0CK3D ; confiez-le à votre agent IA.
Auditez un NAS Synology contre la campagne de rançongiciel C3RB3R / .L0CK3D avec une seule commande, corrigez ce qu'elle détecte avec une seconde, puis continuez à utiliser DSM depuis le terminal.
Dépôt canonique, versions et tickets : https://gitlab.com/aa22396584/synology-nas-cli
nas est un CLI Python sans dépendances (bibliothèque standard uniquement, Python 3.8+, il fonctionne donc aussi sur DSM lui-même) et un serveur MCP stdio pour l'API Web de Synology DSM 7 : statut, santé, journaux, paquets, volumes, Tailscale, mises à niveau DSM, alertes de santé planifiées poussées vers un webhook, ainsi qu'un outil d'audit et de remédiation d'incident conçu pendant la campagne C3RB3R / .L0CK3D d'octobre 2026 contre les NAS Synology exposés sur Internet (Synology-SA-24:20, SA-26:13, SA-26:14).
Non affilié à Synology Inc. « Synology », « DSM » et « QuickConnect » sont des marques de Synology Inc.
nas incident fixCollez l'un ou l'autre des prompts dans Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Grok Bot, ou tout agent IA capable d'utiliser des outils (configuration de Grok Bot, compétences et routine d'alerte : docs/GROK-BOT.md) :
Prompt en anglais :
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.
Invite de commande en chinois traditionnel :
使用 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 : Exécute nas setup --json --no-input ... pour écrire ~/.config/synology-nas-cli/config.json (mode 0600), se connecte une fois pour vérifier les identifiants, et épingle l'empreinte SHA-256 du certificat TLS de DSM lors de la première utilisation.nas doctor : Exécute nas doctor --json pour vérifier la configuration, les identifiants, l'accessibilité de l'origine, l'épinglage TLS, la connexion, la version de DSM par rapport à SA-26:13, l'état de la vérification en deux étapes, les capacités d'administrateur et le décalage d'horloge.nas incident : Exécute nas incident --json (et éventuellement --probe --scan) pour un audit en lecture seule de la version de DSM, des paquets vulnérables, du pare-feu, de QuickConnect, des règles UPnP du routeur, des ports publics, des connexions externes et échouées, d'AutoBlock, de SMB1, du compte admin intégré, des planifications d'instantanés, du piège de verrouillage WORM des modèles non pris en charge, des notes de rançon et des tentatives d'exploitation de CVE-2024-10441.nas incident fix --dry-run --json --ransom-scan et affiche chaque modification prévue (avant -> après), les appels exacts à l'API Web de DSM et le chemin correspondant dans l'interface web de DSM.nas incident fix --yes : Applique le plan approuvé dans l'ordre (snapshot_worm → snapshots → packages → smb_min_protocol → quickconnect → router_port_forwarding → autoblock → admin_account → firewall, plus les options --rotate-password et --upgrade), relit chaque paramètre pour vérifier, et relance l'audit.--deep et alert-deploy : Exécute nas incident --deep --json (un collecteur root en lecture seule via le Planificateur de tâches vérifiant les journaux réservés à root, les crontabs, les binaires de /bin, les comptes, les clés SSH et /proc) et nas alert-deploy --json --test (surveillance de l'état et de la sécurité pendant 10 minutes poussée vers un webhook).https://192.0.2.10:5001, plus une URL VPN/Tailscale si utilisée).op://VAULT/ITEM/password, une commande de mot de passe, ou le trousseau du système d'exploitation).192.0.2.0/24)./docker/.nas-cli-deploy, utilisé par --deep et alert-deploy).nas setup se termine avec le code 3 et "field": "otp", fournissez le code à 6 chiffres actuel ; --trust-device stocke le jeton d'appareil de confiance de DSM (0600) afin que les commandes suivantes n'aient plus besoin de code.nas incident fix --yes (et choisissez d'inclure ou non --rotate-password ou --upgrade).Spécification complète de l'agent : docs/AGENT-RUNBOOK.md.
nas incident est en lecture seule. Chaque élément affiche PASS, WARN, FAIL ou SKIP avec une indication sur une ligne (--json produit du JSON structuré ; schéma dans schemas/incident.schema.json). Le code de sortie est 1 lorsqu'un élément est FAIL.