
nas: uma CLI Python sem dependências + servidor MCP para Synology DSM 7. Auditoria e correção com um único comando para a campanha de ransomware C3RB3R / .L0CK3D; entregue-a ao seu agente de IA.
Audite um Synology NAS contra a campanha de ransomware C3RB3R / .L0CK3D com um único comando, corrija o que for encontrado com um segundo comando e continue executando o DSM a partir do terminal depois disso.
Repositório canônico, releases e issues: https://gitlab.com/aa22396584/synology-nas-cli
nas é uma CLI Python sem dependências (apenas biblioteca padrão, Python 3.8+, portanto também roda no próprio DSM) e um servidor MCP via stdio para a Web API do Synology DSM 7: status, saúde, logs, pacotes, volumes, Tailscale, atualizações do DSM, alertas de saúde agendados enviados para um webhook, e uma ferramenta de auditoria e remediação de incidentes criada durante a campanha C3RB3R / .L0CK3D de outubro de 2026 contra Synology NAS expostos à internet (Synology-SA-24:20, SA-26:13, SA-26:14).
Não afiliado à Synology Inc. "Synology", "DSM" e "QuickConnect" são marcas registradas da Synology Inc.
nas incident fixCole qualquer um dos prompts no Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Grok Bot ou qualquer agente de IA com uso de ferramentas (configuração do Grok Bot, skills e rotina de alertas: docs/GROK-BOT.md):
Prompt em 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.
Prompt em chinês 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: Executa nas setup --json --no-input ... para gravar ~/.config/synology-nas-cli/config.json (modo 0600), inicia sessão uma vez para verificar as credenciais e fixa a impressão digital SHA-256 do certificado TLS do DSM na primeira utilização.nas doctor: Executa nas doctor --json para verificar a configuração, as credenciais, a acessibilidade da origem, o pin TLS, o início de sessão, a versão do DSM face à SA-26:13, o estado da verificação em 2 passos, as capacidades de administrador e o desvio de relógio.nas incident: Executa nas incident --json (e opcionalmente --probe --scan) para uma auditoria apenas de leitura da versão do DSM, pacotes vulneráveis, firewall, QuickConnect, regras UPnP do router, portas públicas, inícios de sessão externos e falhados, AutoBlock, SMB1, admin incorporado, agendamentos de snapshots, a armadilha de bloqueio WORM em modelos não suportados, notas de resgate e tentativas de exploração da CVE-2024-10441.nas incident fix --dry-run --json --ransom-scan e mostra cada alteração planeada (before -> after), as chamadas exatas à DSM Web API e o caminho correspondente na interface web do DSM.nas incident fix --yes: Aplica o plano aprovado pela ordem definida (snapshot_worm → snapshots → packages → smb_min_protocol → quickconnect → router_port_forwarding → autoblock → admin_account → firewall, mais --rotate-password e --upgrade opcionais), relê cada definição para verificar e volta a executar a auditoria.--deep e alert-deploy opcionais: Executa nas incident --deep --json (um coletor root apenas de leitura através do Task Scheduler que verifica registos apenas acessíveis a root, crontabs, binários em /bin, contas, chaves SSH e /proc) e nas alert-deploy --json --test (monitorização de saúde e segurança de 10 minutos enviada para um webhook).https://192.0.2.10:5001, mais um URL de VPN/Tailscale se for usado).op://VAULT/ITEM/password, um comando de palavra-passe ou o keychain do sistema operativo).192.0.2.0/24)./docker/.nas-cli-deploy, usado por --deep e alert-deploy).nas setup termina com 3 e "field": "otp", forneça o código de 6 dígitos atual; --trust-device guarda o token de dispositivo fidedigno do DSM (0600) para que os comandos seguintes não precisem de código.nas incident fix --yes ser executado (e escolha se deve incluir --rotate-password ou --upgrade).Especificação completa do agente: docs/AGENT-RUNBOOK.md.
nas incident é apenas de leitura. Cada item imprime PASS, WARN, FAIL ou SKIP com uma dica de uma linha (--json produz JSON estruturado; esquema em schemas/incident.schema.json). O estado de saída é 1 quando qualquer item é FAIL.