Manual Completo de Administração e Auditoria — TuringServer
Guia definitivo explicando em profundidade como cada funcionalidade do TuringServer opera no kernel e nas APIs do Windows Server, quais serviços nativos são utilizados, onde cada ação impacta no sistema operacional e como administrar seu servidor com máxima eficiência e rastreabilidade.
Visão Geral e Arquitetura Interna do TuringServer
O Visualizador de Eventos (Event Viewer) nativo do Windows Server registra milhares de entradas técnicas por hora, mas sofre de três limitações críticas para a gestão corporativa:
- Fragmentação da Evidência: Quando um usuário apaga um arquivo em uma pasta compartilhada na rede (SMB), o Windows registra o nome do arquivo no
Event ID 4663, a confirmação da destruição noEvent ID 4660, mas não grava o endereço IP nem o nome da máquina cliente nesses eventos — ele grava apenas um identificador hexadecimal temporário de sessão na memória chamadoSubjectLogonId(ex.:0x14C89A). O IP real da máquina só aparece nos eventos4624(Logon de Rede) e5140/5145(Acesso ao Compartilhamento). - Auditoria de Arquivos Desligada por Padrão: Sem configurar políticas globais (
auditpol) e listas de controle de auditoria NTFS (SACL) em cada pasta, o Windows Server simplesmente não registra quem apagou ou alterou arquivos. - Sobrescrita Rápida (Log Circular): O arquivo
Security.evtxpadrão tem limite pequeno (20 MB a 128 MB), fazendo o Windows apagar rastros de dias anteriores rapidamente.
Como o TuringServer resolve isso por baixo do capô
O TuringServer é uma aplicação Self-Contained (autossuficiente, sem depender de IIS nem de banco de dados externo) dividida em quatro motores que rodam dentro de um único processo Windows Service:
- Motor de Correlação em Memória (
SessionCorrelationEngine): Mantém uma tabela hash concorrente indexada peloLogonIdalimentada em tempo real pelos eventos4624,5140e pelas sessões SMB ativas. No milissegundo em que um arquivo é apagado ou renomeado, o motor cruza oLogonIde grava a frase completa já com Conta do Windows + Nome da Máquina + Endereço IP. - Filtro Anti-Ruído (
NoiseFilterPipeline): Descarta automaticamente arquivos temporários de lock do Microsoft Office (~$*.xlsx,~$*.docx,*.tmp), metadados do Explorer (Thumbs.db,desktop.ini), processos internos do sistema (SearchIndexer.exe,MsMpEng.exedo Windows Defender) e leituras puras de atributo (AccessMask 0x80), reduzindo em mais de 90% o volume de lixo e deixando na tela apenas ações humanas reais. - Banco Embarcado de Alta Velocidade (
SQLite WAL + FTS5): Persiste todos os eventos traduzidos e correlacionados emdados\turingserver.dbcom índice de busca textual completa (FTS5), permitindo pesquisar qualquer arquivo, usuário ou IP em milhões de registros em menos de 15 milissegundos — mesmo que alguém limpe o Event Viewer do Windows! - Servidor Web Kestrel Embarcado: Entrega o painel gerencial diretamente via navegador para qualquer computador autorizado da rede local, na porta TCP que você escolher.
Implantação e Execução no Windows Server
O pacote dist\TuringServer-1.0.0-win-x64.zip já contém todo o runtime necessário. Para instalar em qualquer máquina com Windows Server (2016, 2019, 2022 ou 2025):
| Script na Raiz do ZIP | Modo de Uso | O que ele executa no Windows Server |
|---|---|---|
2-Instalar-Como-Servico-WindowsServer.batRECOMENDADO (PRODUÇÃO) |
Botão direito → Executar como Administrador |
1. Registra o serviço nativo TuringServer no services.msc rodando sob a conta LocalSystem com início automático no boot.2. Configura recuperação automática no SCM (se o processo cair, o Windows o reinicia em 5 segundos). 3. Habilita os GUIDs universais de auditoria do auditpol.exe.4. Cria a regra de entrada no Windows Firewall liberando a porta padrão 8480 para a sub-rede local (LAN).
|
1-Iniciar-Painel-Modo-Console.batMODO PORTÁTIL / TESTE |
Botão direito → Executar como Administrador |
Sobe o TuringServer.exe imediatamente em uma janela de terminal e abre o navegador em http://127.0.0.1:8480. Ideal para homologação rápida sem registrar serviço.
|
3-Desinstalar-Servico-WindowsServer.bat |
Botão direito → Executar como Administrador |
Para e remove o serviço TuringServer do Windows Server, preservando intacta a subpasta dados\ com todo o histórico de auditoria.
|
4-Alterar-Porta-Pelo-Terminal.bat |
Executar como Administrador |
Permite escolher uma nova porta TCP via prompt de comando (ex.: 8485 ou 9090), cria a regra no Firewall e inicia o painel nessa porta.
|
No Windows Server, o canal de log Security e a lista de auditoria NTFS (SACL) são protegidos pelo privilégio de kernel SeSecurityPrivilege. Quando o TuringServer roda como Serviço Windows (LocalSystem) ou como Administrador, ele tem acesso total ao canal Security, aplica SACLs automaticamente nas pastas e consegue iniciar/reiniciar serviços do Windows.
Detetive de Arquivos (Auditoria SMB / NTFS e Recuperação VSS)
A primeira aba do sistema é o centro de investigação de arquivos do servidor. Ela responde em segundos à pergunta mais crítica de qualquer administração de rede: "Quem apagou, moveu, renomeou, criou ou modificou um arquivo no servidor, quando isso ocorreu e a partir de qual computador/IP?"
- Serviço
EventLog(CanalSecurity: Event IDs4656,4663,4660,4624,5140,5145). - Serviço
LanmanServer(Servidor de compartilhamento SMB). - Driver
NTFS.sys(SACL +ReadDirectoryChangesWviaFileSystemWatcher). - Serviço
VSS(Volume Shadow Copy) + Cofre internodados\vss_vault\.
- Zero impacto em permissões de usuários (DACL): Monitorar uma pasta altera apenas a aba Auditoria (SACL), nunca as permissões de acesso dos usuários.
- Disco (Cofre VSS): Mantém cópia rápida em
dados\vss_vault\para arquivos de até 15 MB nas pastas vigiadas, além de consultar snapshots nativosHarddiskVolumeShadowCopy. - CPU/RAM: Consumo inferior a 1% de CPU graças ao filtro anti-ruído em memória.
- Use a caixa de busca instantânea (FTS5) para digitar qualquer trecho do nome do arquivo, nome do colaborador ou IP.
- Troque o seletor para "Apenas Arquivos APAGADOS (DELETE)" para auditar exclusões.
- Clique em "⏪ Restaurar (VSS)" para recuperar imediatamente no disco um arquivo excluído por engano.
- Clique em "🔍 Evidência" para abrir o JSON pericial ou em "📄 Exportar Relatório CSV (SHA-256)".
Diferenciação Inteligente: Exclusão Real vs. Renomeação
No Windows Server puro, quando um usuário renomeia um arquivo pelo Windows Explorer na rede, o protocolo SMB emite internamente um comando com máscara 0x10000 (DELETE) no nome antigo. Administradores que olham apenas o Event Viewer acham que o arquivo foi apagado. O TuringServer cruza o evento do kernel com o evento Renamed do sistema de arquivos, exibindo com clareza o badge amarelo RENOMEADO com o nome antigo e o nome novo!
Radar de Máquinas na Rede & Destravador de Arquivos Presos (SMB Unlocker)
A segunda aba entrega visibilidade completa de todas as máquinas conectadas na sub-rede do servidor e resolve um dos problemas mais frequentes do suporte corporativo: arquivos e planilhas travados na rede por outro usuário.
- Pilha TCP/IP e Tabela ARP do Kernel Windows (
arp -a+NetworkInterface.GetAllNetworkInterfaces()). - Serviço
Dnscache/ ServidorDNS(resolução reversa de IP para Hostname com timeout rápido de 180ms). - API Win32
NetFileEnumeNetFileClose(netapi32.dllsobre o serviçoLanmanServer).
- Varredura de Rede: 100% passiva/leve sobre a tabela ARP e cache DNS do servidor — não dispara flood de pacotes na rede nem aciona alertas de IDS/Switches.
- Ao clicar em "🔓 Destravar Arquivo": Fecha forçadamente o handle de rede SMB (
NetFileClose) daquele arquivo específico. O usuário que estava segurando o arquivo aberto perde o bloqueio de escrita na hora, liberando o arquivo para os demais colegas.
- Clique em "🔄 Atualizar Varredura de Rede Agora" para descobrir todas as máquinas online na sub-rede, identificando inclusive máquinas desconhecidas pelo endereço MAC e fabricante (Dell, HP, Lenovo, Hyper-V, etc.).
- Quando alguém reclamar que "A planilha X diz que está bloqueada para edição por outro usuário", olhe a tabela inferior, veja qual máquina está segurando o arquivo e clique em "🔓 Destravar Arquivo".
Central de Serviços Inteligente & Watchdog de Auto-Recuperação
O console services.msc do Windows Server lista mais de 250 serviços técnicos sem explicar o que é vital para a empresa e sem mostrar quanta memória RAM cada serviço está consumindo. A Central de Serviços do TuringServer faz uma curadoria inteligente dos serviços críticos de infraestrutura, traduz o papel de cada um para português claro e informa o impacto real caso o serviço pare.
- SCM (Service Control Manager) via
advapi32.dll: chamadas nativasOpenSCManager(SC_MANAGER_CONNECT)+OpenService(SERVICE_QUERY_STATUS = 0x0004)+QueryServiceStatusExpara extrair odwProcessId (PID)real de cada serviço. Process.GetProcessById(pid).WorkingSet64para medir a memória RAM física de cada serviço.- Canal de Log
System(Event IDs7036,7040,7045).
- Botão "🛡️ Watchdog ON/OFF": Marca ou desmarca o serviço na lista de vigilância contínua em
dados\config.json. - Botão "🔄 Reiniciar": Envia comando real de parada e partida (
Stop→Start) ao SCM do Windows Server e grava na tabela de auditoria inferior quem reiniciou o serviço e em qual horário.
- Seguro reiniciar a qualquer momento:
Spooler(destrava impressoras da rede),W32Time(ressincroniza relógio NTP). - Atenção em horário de expediente: Reiniciar
LanmanServerdesconecta brevemente pastas compartilhadas; reiniciarTermServicederruba sessões RDP ativas.
Mapa de Portas TCP/UDP & Segurança (Caçador de Conta Bloqueada AD)
A quarta aba reúne três ferramentas avançadas de segurança e diagnóstico de rede do Windows Server em uma única tela:
- Caçador de Conta Bloqueada no Domínio/Servidor (Correlação
Event 4740 + 4625): Quando um funcionário troca de senha e a conta dele passa a bloquear sozinha a cada 10 ou 15 minutos, descobrir qual computador da rede está causando o bloqueio no Event Viewer comum é penoso. O TuringServer cruza automaticamente os eventos4740e4625e aponta na tabela: Conta Bloqueada, Quantidade de Bloqueios, Nome da Máquina Causadora e Endereço IP de Origem. - Mapa de Portas Abertas e Conexões (
GetExtendedTcpTable): Consulta diretamente a tabela de listeners do kerneltcpip.sys(TCP_TABLE_OWNER_PID_LISTENER = 3eTCP_TABLE_OWNER_PID_CONNECTIONS = 4), mostrando todas as portas abertas no servidor, qual executável (PID) está escutando na porta e a qual Serviço do Windows ela pertence. - Linha do Tempo de Segurança e Eventos de Energia/Sistema: Traduz logons de Console (
Tipo 2), Rede SMB (Tipo 3), Área de Trabalho Remota RDP (Tipo 10), reinicializações (1074/6005/6006), desligamentos inesperados por queda de energia (6008), ataques de exclusão em massa (Freio Anti-Ransomware Burst Guard) e tentativas de limpeza de log (Event 1102).
Configuração de Porta Web (Port Probe) & Pastas Vigiadas (Auto-SACL)
A quinta aba permite administrar as configurações estruturais do próprio TuringServer sem precisar editar arquivos de texto ou abrir telas complexas do Windows Server:
1. Como usar o Configurador de Porta Web com Port Probe
- Digite qualquer porta TCP entre
1024e65535(ex.:8485ou9090) e clique em "🔍 Testar Disponibilidade". - O sistema consulta a tabela do kernel do Windows (
GetExtendedTcpTable) e tenta abrir um socket de teste:- Se a porta já estiver em uso por outro sistema do servidor (por exemplo, se você digitar
135,445ou3389), o painel avisa imediatamente em vermelho qual serviço e qual processo (PID) é dono daquela porta. - Se estiver livre, exibe confirmação em verde. Ao clicar em "💾 Salvar e Aplicar Porta", o sistema grava atomicamente em
dados\config.json, atualiza a regra do Windows Firewall para a sub-rede local e mantém a porta anterior como fallback Anti-Lockout.
- Se a porta já estiver em uso por outro sistema do servidor (por exemplo, se você digitar
2. Como incluir, testar e remover Pastas Vigiadas (Auto-SACL NTFS)
Existem três caminhos para informar qual pasta o servidor deve auditar. Os três terminam no mesmo campo Caminho completo no servidor e no mesmo botão + Vigiar Pasta — a diferença é quanto de trabalho o painel faz por você.
| Forma de escolher | O que acontece ao clicar | Quando usar |
|---|---|---|
| 📂 Navegar… recomendado |
Abre o seletor de pastas do servidor na pasta do caminho atual. Você percorre a árvore real do disco e confirma com Usar esta pasta. | Sempre que quiser ver o que existe antes de vigiar. É o único caminho que mostra a realidade do servidor. |
| 💽 C:\ · 957 GB livres | Abre o mesmo seletor, já posicionado na raiz daquela unidade. Não preenche caminho nenhum sozinho. | Quando você sabe em qual disco está o compartilhamento e quer navegar a partir dele. |
| 📁 C:\Compartilhamentos atalho real |
Preenche o campo com essa pasta e escreve no rodapé do formulário: “Pasta escolhida: … Clique em + Vigiar Pasta”. Um clique a menos. | Atalhos verdes só aparecem para pastas que existem de fato no servidor (o backend testa Directory.Exists antes de renderizar). |
| Digitar / colar | Aceita caminho com ou sem aspas e com barra final. O sistema normaliza antes de validar. | Colagem vinda do Explorer (“Copiar como caminho”) ou caminho UNC de rede. |
2.1. Como o seletor de pastas se comporta
- Breadcrumb por nível. Cada segmento do caminho (C:\ › Compartilhamentos › Financeiro) é clicável e leva direto àquele nível.
- Clique na pasta = entrar nela. Diferente do diálogo do Windows, um clique simples já abre a pasta; a seta › à direita só reforça que ela é navegável.
- ↑ Subir volta um nível. Fica desabilitado quando você já está na raiz da unidade.
- Usar esta pasta copia o caminho exibido no rodapé para o campo de texto. Cancelar ou Esc fecha sem alterar nada.
- Caminho digitado que não existe. Se você chamar o seletor com um caminho inválido, ele não dá erro: sobe até a pasta existente mais próxima, mostra a listagem dela e exibe um aviso âmbar com o caminho que você digitou. Nunca há beco sem saída.
- Sem permissão de leitura em alguma subpasta: a listagem mostra o que o processo consegue ler. Se o serviço roda como LocalSystem, isso raramente acontece.
2.2. O que o botão “+ Vigiar Pasta” faz — passo a passo
- Feedback imediato. O botão vira “Aplicando auditoria…” com indicador giratório e fica desabilitado. Isso evita duplo clique e elimina a impressão de botão travado.
- Validação do caminho. Normaliza aspas, barras e espaços. Se a unidade não existir (Z:\), responde em vermelho listando as unidades realmente disponíveis.
- Criação com aviso. Se a pasta não existir, ela é criada — mas a resposta vem em âmbar: “⚠ A pasta … NÃO existia e foi criada agora — ✓ incluída e monitorada. Confirme se é este o caminho desejado.” Pasta que já existia recebe a confirmação verde normal.
- Aplicação da auditoria. Regra SACL via DirectoryInfo.SetAccessControl (herdada por arquivos e subpastas), habilitação dos GUIDs auditpol de sistema de arquivos e compartilhamento, e início do FileSystemWatcher para captura em tempo real.
- Cópia de sombra inicial em segundo plano. O servidor começa a copiar os arquivos existentes para o cofre dados\vss_vault, mas isso roda fora da requisição — a tela responde na hora.
- Limite de tempo. Se o servidor não responder em 90 segundos (pasta de rede inacessível, por exemplo), o painel aborta e explica o motivo, em vez de ficar parado.
2.3. Limites do cofre de cópias (para não esperar o que ele não faz)
- Arquivos acima de 15 MB não são copiados para o cofre rápido. Ainda aparecem na auditoria (quem apagou, de qual máquina), mas a restauração 1-Click depende de snapshot nativo do Windows Volume Shadow Copy.
- O snapshot inicial é limitado e best-effort: até 250 arquivos novos, no máximo 5.000 verificados, profundidade 6, sem seguir atalhos/junctions. Bibliotecas gigantes não são espelhadas.
- Não recopia o que já está no cofre — incluir a mesma pasta duas vezes não duplica armazenamento.
- Pasta sem permissão não interrompe o processo: o snapshot registra as que conseguiu e segue.
2.4. Testar, remover e conferir
- ⚡ Testar (em cada pasta da lista): o servidor cria, renomeia e apaga um arquivo de verificação dentro da pasta escolhida e reporta o nome do arquivo. É a prova de que a captura ponta a ponta está funcionando naquela pasta — não é simulação.
- Remover: tira a pasta do monitoramento. Não apaga nada do disco nem desfaz o SACL já aplicado.
- Eventos de Arquivo (sub-aba ao lado): onde as exclusões, renomeações e alterações capturadas aparecem para investigação.
Matriz Consolidada: Onde Cada Funcionalidade Impacta e Quais Serviços Usa
| Funcionalidade no Painel | Serviços / Subsistemas Windows Usados | APIs / Comandos Acionados | Impacto Real no Windows Server |
|---|---|---|---|
| Vigiar Nova Pasta (1-Click SACL) | NTFS.sys, EventLog, VSS |
DirectoryInfo.SetAccessControl(Audit) + auditpol /set /subcategory:{GUID} + FileSystemWatcher |
SEGURO Adiciona regra de auditoria (SACL) na pasta e ativa geração de eventos 4663/4660. Não altera permissões de acesso (DACL). |
| Restaurar Arquivo Apagado (VSS) | VSS (Volume Shadow Copy) + Sistema de Arquivos NTFS |
Cópia a partir de dados\vss_vault\ ou \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopyN |
SEGURO Recria o arquivo excluído em seu caminho original com o conteúdo íntegro anterior à exclusão. |
| Radar de Máquinas na Rede | Pilha TCP/IP, Tabela ARP, Dnscache |
NetworkInterface, arp -a, Dns.GetHostEntryAsync |
SOMENTE LEITURA Consulta o cache ARP e DNS já presentes no servidor. Zero impacto de tráfego na rede. |
| Destravar Arquivo Preso (SMB Unlocker) | LanmanServer (Servidor SMB) |
netapi32.dll → NetFileEnum / NetFileClose |
AÇÃO ATIVA Fecha o handle aberto pela estação remota. O computador que segurava o arquivo perde o lock de escrita imediatamente. |
| Central de Serviços (Inspeção PID/RAM) | SCM (Service Control Manager) |
advapi32.dll → OpenSCManager(0x0001) + OpenService(0x0004) + QueryServiceStatusEx |
SOMENTE LEITURA Consulta apenas o status e o PID com privilégio mínimo de leitura (0x0004). |
| Reiniciar Serviço do Windows | SCM + Serviço Alvo |
ServiceController.Stop() → ServiceController.Start() |
IMPACTO NO SERVIÇO Reinicia o serviço selecionado. Use com cautela em serviços de rede (LanmanServer, DNS, TermService) durante o expediente. |
| Mapa de Portas TCP/UDP | Driver tcpip.sys |
iphlpapi.dll → GetExtendedTcpTable (Classes 3 = LISTENER e 4 = CONNECTIONS) |
SOMENTE LEITURA Lê a tabela de sockets do kernel em memória em menos de 10 ms. |
| Trocar Porta do Painel Web | MpsSvc (Windows Firewall) + Kestrel |
TcpListener Probe + netsh advfirewall firewall add rule + dados\config.json |
CONFIGURAÇÃO Atualiza a porta do painel e adiciona regra de entrada no Firewall restrita à sub-rede local (localsubnet). |
Playbooks: Como Gerenciar um Windows Server de Forma Eficiente com o TuringServer
🕵️ Playbook 1: "Um arquivo importante sumiu da pasta compartilhada da rede!"
- Abra o TuringServer na Aba 1 (Detetive de Arquivos).
- No seletor de filtro ao lado da busca, escolha "Apenas Arquivos APAGADOS (DELETE)" e digite parte do nome do arquivo (ou da pasta) na caixa de busca.
- Em menos de 1 segundo você verá a linha vermelha
APAGADOinformando: o horário exato, qual conta do Windows apagou, o nome do computador (Hostname) e o endereço IP da máquina. - Clique em "⏪ Restaurar (VSS)" para devolver o arquivo imediatamente ao lugar original, e clique em "🔍 Evidência" (ou exporte o CSV assinado com SHA-256) caso precise documentar o incidente para a diretoria.
🔓 Playbook 2: "Um setor inteiro não consegue salvar uma planilha porque ela está presa por outro usuário"
- Vá até a Aba 2 (Máquinas na Rede & Arquivos Presos) e role até a seção "Destravador de Arquivos Abertos / Presos na Rede (SMB File Unlocker)".
- Localize o nome do arquivo na tabela: o sistema mostrará qual usuário e qual computador estão segurando o bloqueio de escrita.
- Avise o usuário (se estiver presente) ou clique diretamente em "🔓 Destravar Arquivo" para liberar o handle SMB no servidor sem precisar reiniciar nada.
🔑 Playbook 3: "A conta de um colaborador no Active Directory bloqueia sozinha a cada 15 minutos"
- Abra a Aba 4 (Portas de Rede & Segurança AD) e olhe a primeira tabela: "Caçador de Conta Bloqueada no Domínio/Servidor (Correlação Event 4740 + 4625)".
- Veja a coluna "Máquina Causadora do Bloqueio" e "IP de Origem".
- Vá até aquela estação específica, abra o Gerenciador de Credenciais do Windows (ou desconecte uma sessão RDP esquecida aberta naquela máquina) e atualize a senha salva. Problema resolvido na raiz.
🛡️ Playbook 4: Rotina Preventiva Diária (Leva 60 segundos)
- Olhe os 5 Cards de KPIs no topo do painel logo ao abrir:
- Arquivos Apagados (Hoje): Verifique se houve algum pico anormal de exclusões nas pastas compartilhadas.
- Serviços Críticos do Servidor: Confirme que todos os serviços vitais estão ativos (ex.:
12 / 12) e com o Watchdog ON. - Portas TCP em Escuta: Na Aba 4, verifique se todas as portas abertas pertencem a serviços conhecidos do servidor.
Tabela de Referência dos Event IDs Nativos do Windows Server
| Event ID | Canal do Windows | Significado Técnico Nativo | Como o TuringServer Utiliza e Traduz |
|---|---|---|---|
4624 |
Security | Logon de conta realizado com sucesso | Extrai TargetLogonId, IpAddress, WorkstationName e LogonType (2=Console, 3=Rede SMB, 10=RDP) para alimentar o motor de correlação em memória. |
4625 |
Security | Falha de logon (senha incorreta / usuário inválido) | Registra alerta de tentativa de acesso indevido e alimenta o Caçador de Conta Bloqueada com o IP e nome da máquina de origem. |
4656 / 4663 / 4660 |
Security | Acesso e exclusão de objeto em sistema de arquivos NTFS | Identifica a máscara de acesso (0x10000 = DELETE, 0x2 = WRITE, 0x40000 = Permissão), cruza o SubjectLogonId com a sessão ativa e revela quem apagou ou modificou o arquivo e de qual IP/máquina. |
5140 / 5145 |
Security | Acesso a objeto de compartilhamento de rede (SMB Share) | Associa o caminho da pasta compartilhada (\\SERVIDOR\Pasta) e o endereço IP da estação cliente ao SubjectLogonId. |
4740 |
Security | Uma conta de usuário foi bloqueada automaticamente | Identifica TargetUserName e CallerComputerName para apontar exatamente qual computador causou o bloqueio da conta no domínio. |
1102 |
Security | O log de auditoria de segurança foi limpo | Gera alerta vermelho de severidade CRITICAL. Todo o histórico anterior permanece intacto no banco SQLite próprio do TuringServer. |
7036 / 7040 / 7045 |
System | Serviço mudou de estado, mudou tipo de partida ou novo serviço foi instalado | Alimenta o histórico da Central de Serviços e alerta imediatamente caso um serviço novo seja instalado no servidor (7045). |
1074 / 6005 / 6006 / 6008 |
System | Eventos de reinicialização, boot e desligamento inesperado | Mostra quem solicitou o reboot do servidor (1074) ou alerta se o servidor sofreu queda brusca de energia/tela azul (6008). |
Políticas de Domínio & Estações (GPO), Telemetria CPU/RAM/Rede, Controle de Portas e Segurança VPN/RustDesk
A versão v1.1 do TuringServer expande o painel com 6 novos recursos corporativos de alto impacto para administração centralizada do Windows Server e das estações do domínio:
11.1. Nova Aba: Políticas de Domínio & Estações (GPO Active Directory)
- Comandos Rápidos em Frota (Todas as Máquinas do Domínio): Com 1 clique o administrador pode:
- 🔄 Rodar Windows Update nas Máquinas: Dispara remotamente
UsoClient.exe StartInteractiveScan / StartDownload / StartInstallnas estações do domínio para baixar e instalar atualizações críticas imediatamente. - ⚡ Forçar GPUpdate no Domínio: Executa
gpupdate /forcepara aplicar imediatamente as políticas recém-configuradas sem aguardar o ciclo padrão de 90 minutos do Active Directory. - 🕒 Sincronizar Horário (NTP / w32tm): Alinha o relógio das estações com o servidor (essencial para evitar falhas de login Kerberos).
- 🧹 Limpar Cache DNS: Executa
ipconfig /flushdnse/registerdnsna frota.
- 🔄 Rodar Windows Update nas Máquinas: Dispara remotamente
- 8 Políticas Principais em Destaque (Didáticas e 1-Click): Cartões altamente explicativos com botão "🛡️ Proibir / Ativar Política" e "🔓 Liberar Recurso" para:
- 🔌 Bloquear Pen Drives e HDs Externos USB (proteção contra vazamento de dados / LGPD);
- 🔄 Forçar Windows Update Automático em todas as máquinas;
- ⚙️ Proibir Acesso ao Painel de Controle e Configurações do Windows para usuários comuns;
- 💻 Bloquear Prompt de Comando (CMD) e Scripts Não Assinados;
- 🚫 Impedir Instalação de Programas por Usuários Comuns (Windows Installer / MSI);
- 🔒 Bloquear Tela Automaticamente Após 10 Minutos de Inatividade;
- 🛡️ Impedir Desativação do Windows Defender e Firewall nas estações;
- 🔑 Exigir Senhas Fortes e Bloqueio contra Força Bruta.
- Mais 10 Políticas Avançadas de Segurança e Rede + Exportação de Script GPO (
.ps1): Inclui desativação de SMBv1 (WannaCry), proteção LSA contra Mimikatz, bloqueio de Registro (regedit), bloqueio de Gerenciador de Tarefas, desativação de AutoRun, NLA obrigatório no RDP e auditoria de processos (Event 4688). O botão "📜 Exportar Script PowerShell GPO Completo (.ps1)" gera o script pronto com todos osSet-GPRegistryValuepara importação em qualquer Controlador de Domínio.
11.2. Barra de Telemetria em Tempo Real (CPU, RAM, Rede, Discos, Uptime e Top 5 Processos)
No topo de todas as abas, o painel exibe medidores atualizados automaticamente a cada 4 segundos usando APIs nativas do Windows (GetSystemTimes, GlobalMemoryStatusEx, IPGlobalProperties e DriveInfo):
- Uso de CPU (%): Medido diretamente nos contadores do kernel do Windows Server.
- Memória RAM Física: Exibe percentual usado, GB ocupados, GB totais e GB livres em tempo real.
- Tráfego de Rede (LAN): Mostra a taxa instantânea de Download (
↓ KB/s) e Upload (↑ KB/s) e o volume acumulado transferido na placa de rede ativa. - Saúde dos Discos e Modal Top 5 Processos: Clicando em "🔥 Top Processos & Discos" no cabeçalho, o administrador vê os 5 processos que mais consomem memória RAM no servidor naquele instante e a saúde detalhada de cada disco.
11.3. Dossiê de Evidência Amigável + Relatório Formatado (HTML/PDF) + Filtros Precisos
- Dossiê de Evidência em 2 Camadas: Ao clicar em "🔍 Dossiê / Evidência" no Detetive de Arquivos, o sistema abre por padrão a Visão Explicativa (Fácil Leitura) com cartões claros (Quem fez, De qual máquina/IP, Qual arquivo, Qual horário e a cadeia de eventos traduzida). Caso o perito deseje ver o registro técnico original, basta clicar na aba "💻 Dados Brutos Técnicos (JSON)".
- Relatório Formatado para Impressão / PDF: O botão "📊 Abrir Relatório Formatado (Imprimir / PDF)" gera um documento executivo estilizado com resumo gerencial, tabela auditável e selo de integridade
SHA-256, enquanto o botão "📄 Dados Brutos (CSV)" permanece ao lado para exportação em planilhas. - Filtros Combinados nas Abas 1, 3 e 4: Pesquisa por Conta/Login do Windows, Máquina/IP, Ação e Dia/Período (Hoje, Ontem, Últimos 7/30 dias ou data específica no calendário) no Detetive de Arquivos, no Histórico de Serviços e na Linha do Tempo de Segurança.
11.4. Controle Ativo de Portas no Windows Firewall e Segurança VPN / Túnel RustDesk / AnyDesk
- Abrir, Fechar e Reverter Portas pelo Aplicativo: Na Aba 4, o administrador pode fechar/bloquear qualquer porta suspeita com 1 clique (
🛑 Fechar Porta), abrir portas para sistemas específicos (restritas à LAN ou Geral) e reverter regras a qualquer momento. O sistema possui Trava Anti-Lockout que impede fechar acidentalmente a própria porta Web do TuringServer ou portas vitais do Windows Server (445 SMB,3389 RDP,53 DNS,88 Kerberos,135 RPC,389/636 LDAP). - Acesso Remoto Garantido via VPN e Túneis (RustDesk / AnyDesk): O escudo LAN + VPN + Tunnel Guard bloqueia acessos vindos diretamente da Internet pública, mas permite automaticamente conexões de Rede Local (
192.168.x.x,10.x.x.x,172.16-31.x.x), VPNs Corporativas e Mesh (OpenVPN, WireGuard, Tailscale/ZeroTier100.64.0.0/10) e Túneis TCP do RustDesk / AnyDesk / SSH (que chegam ao servidor via loopback local127.0.0.1/::1).
Arquitetura Visual do Console, Hierarquia de Painéis e Desligamento Seguro
A versão 1.2 reorganiza toda a interface do TuringServer sem remover nenhuma funcionalidade. O objetivo foi eliminar a mistura de componentes: métricas, tabelas, formulários e ações deixaram de dividir o mesmo espaço e passaram a viver em camadas explícitas.
12.1. O que mudou na arquitetura visual
- Navegação lateral agrupada (modelo Windows Admin Center). As abas horizontais deram lugar a uma sidebar fixa de 238 px, organizada em Monitoramento, Administração e Sistema, com contadores contextuais em cada item.
- Topbar enxuta. A barra superior agora carrega apenas título, subtítulo, identificação do sistema operacional e a ação de atualizar. A CPU, a RAM, a rede e os discos saíram dali.
- Telemetria concentrada na Visão Geral. Os medidores de recursos, o uptime, os volumes e a postura de segurança passaram a viver em uma página própria — a porta de entrada do console.
- Sub-abas por módulo. Módulos que antes empilhavam tabelas diferentes na mesma rolagem agora dividem o conteúdo em sub-áreas explícitas: Eventos de Arquivo | Pastas Vigiadas; Serviços & Watchdog | Histórico; Portas & Firewall | Linha do Tempo | Contas Bloqueadas; Comandos de Frota | Principais Políticas | Avançadas | Histórico.
- Split-panel para separar leitura de escrita. Onde o painel altera o sistema (controle de portas, pastas vigiadas, configurações), o formulário ocupa um painel próprio à esquerda e a tabela de dados fica à direita, com rolagem independente.
- Surface Panels e tabelas com cabeçalho fixo. Cada tabela vive dentro de um card com título, contador, barra de filtros acoplada e rodapé informativo. O cabeçalho das colunas permanece visível durante a rolagem.
- Chips de filtro ativo. Ao aplicar filtros, o painel mostra exatamente quais restrições estão em vigor e permite removê-las em um clique.
- Semáforos honestos. O indicador de serviços críticos muda de verde para âmbar ou vermelho quando existem serviços parados — o painel nunca exibe saúde falsa.
12.2. Como desligar o TuringServer com segurança
O botão ⏻ Desligar está no rodapé da sidebar. O encerramento não é um simples kill: ele executa uma sequência controlada e auditável.
- Script de encerramento (opcional). Se existir scripts\encerrar-turingserver.bat, .cmd ou .ps1 na pasta do aplicativo — ou um caminho definido em ShutdownScriptPath no config.json — ele é executado com limite de tempo (ShutdownScriptTimeoutSeconds, padrão 10 s).
- Consolidação do banco. O comando PRAGMA wal_checkpoint(TRUNCATE) grava o WAL no arquivo principal do SQLite. Nenhum evento de auditoria permanece apenas no arquivo temporário.
- Liberação dos monitores. Os FileSystemWatcher, as assinaturas de EventLogWatcher e o watchdog de serviços são fechados. O Kestrel para de aceitar conexões.
- Registro na auditoria. O desligamento entra na Linha do Tempo com categoria SYSTEM_SHUTDOWN (evento 8002), contendo a conta responsável, o IP de origem, o script executado e o resultado do checkpoint.
Após o encerramento, o navegador exibe uma tela de confirmação com o resumo completo da operação. Para religar, basta executar 1-Iniciar-Painel-Modo-Console.bat ou iniciar novamente o serviço do Windows.
12.3. Evidências de homologação da v1.2
- Build: dotnet build -c Release -warnaserror → 0 avisos, 0 erros.
- Testes unitários: 20/20 aprovados (xUnit).
- Bateria de navegador real (layout): 33/33 verificações aprovadas, incluindo o encerramento destrutivo executado por último.
- Bateria de navegador real (Detetive de Arquivos): 23/23 verificações aprovadas, 0 erros de JavaScript — cobre presets, seletor de pastas, inclusão por digitação, pasta criada, unidade inexistente, clique duplo e botão Testar.
- Prova do gancho de encerramento: no pacote publicado, o script foi localizado, executado com código de saída 0 e registrou o desligamento em dados\encerramentos.log.
12.4. Rodapé institucional
Toda tela do console carrega um rodapé fixo de 34 px, sempre visível, independente da aba aberta:
- Versão lida em tempo de execução. O selo v1.2.0 vem do endpoint /api/health, não é texto fixo no HTML. Se o binário e a página divergirem, o rodapé mostra sempre a versão do processo que está servindo a tela.
- Crédito com link. Desenvolvido por TuringTec LTDA abre https://turingtec.com.br em nova aba, com rel="noopener noreferrer" — a página do painel não recebe referência de volta e não ganha acesso ao window aberto.
- Identidade legal. Copyright do ano corrente e CNPJ 21.991.747/0001-29 acompanham o rodapé, como em aplicações corporativas licenciadas.
- Contraste acessível. Todos os textos do rodapé foram medidos contra o fundo #040B18: o pior caso é 6,45:1, acima do mínimo WCAG AA de 4,5:1.
- Responsivo. Abaixo de 1180 px a descrição do produto é ocultada; abaixo de 900 px saem copyright e CNPJ; abaixo de 640 px fica apenas o crédito com link. Não há rolagem horizontal em nenhuma largura entre 390 px e 1600 px.
Detetive de Arquivos: o que cada controle faz — e o que ele não faz
Este capítulo existe para eliminar dúvida de expectativa. Cada linha descreve o comportamento verificado em navegador real contra o pacote publicado. Se uma funcionalidade já está descrita aqui como correta, alterá-la é decisão de produto — não correção de defeito.
13.1. Inventário de controles da sub-aba Pastas Vigiadas
| Controle | O que faz exatamente | O que não faz |
|---|---|---|
| 📂 Navegar… | Abre o seletor na pasta do caminho atual (ou na primeira unidade pronta, se o campo estiver vazio). Não altera o campo até você confirmar. | Não cria pasta, não tem busca e não preenche nada sozinho. |
| 💽 C:\ · 957 GB livres | Abre o seletor na raiz daquela unidade. | Não injeta caminho fictício — comportamento corrigido na v1.2.0. |
| 📁 C:\Compartilhamentos | Atalho verde: preenche o campo com uma pasta que existe. O backend só renderiza os atalhos cujo Directory.Exists retorna verdadeiro. | Não vigia no clique — apenas preenche. |
| Campo Caminho completo | Aceita digitação e colagem, com ou sem aspas, com ou sem barra final. Enter dispara o mesmo efeito do botão Vigiar. | Não valida enquanto você digita — a validação acontece ao enviar. |
| + Vigiar Pasta | Desabilita-se, mostra “Aplicando auditoria…”, aplica SACL + auditpol + watcher, agenda o snapshot e recarrega a lista. Aborta em 90 s com mensagem explicativa. | Não permite duplo envio com clique duplo, e não bloqueia a tela enquanto copia arquivos. |
| ⚡ Testar | Cria, renomeia e apaga um arquivo real na pasta e informa o nome usado — prova ponta a ponta da captura. | Não simula evento nem escreve no banco manualmente. |
| Remover | Desliga e descarta o FileSystemWatcher e apaga o registro da pasta na base. | Não apaga arquivos do disco, não reverte a SACL aplicada e não apaga as cópias já guardadas no cofre. |
| ↑ Subir (seletor) | Sobe um nível; desabilitado na raiz da unidade. | — |
| Usar esta pasta (seletor) | Copia o caminho do rodapé para o campo e fecha o modal. | Não vigia automaticamente — você ainda confirma no Vigiar. |
| Cancelar / Esc / clique fora | Fecha o seletor sem tocar no campo. | — |
13.2. O que acontece no servidor quando você vigia uma pasta
- Normalização do caminho (SanitizeFolderPath + Path.GetFullPath): remove aspas, barras duplicadas e barra final.
- Validação da unidade via DriveInfo.GetDrives(). Caminho UNC (\\servidor\share) pula essa checagem.
- Criação condicional da pasta, com o resultado registrado na resposta (created: true/false) para o painel avisar em âmbar.
- SACL NTFS — regra de auditoria para Everyone cobrindo Delete, DeleteSubdirectoriesAndFiles, Write, CreateFiles, ChangePermissions e TakeOwnership, com herança para contêineres e objetos, em sucesso e falha.
- auditpol — habilita as subcategorias de File System e File Share pelos GUIDs {0CCE921D…} e {0CCE9224…}.
- FileSystemWatcher com IncludeSubdirectories para captura imediata, independente do canal de eventos.
- Snapshot em background para o cofre dados\vss_vault, com os limites descritos em 2.3.
- Persistência do registro da pasta (caminho, share sugerido, estado da SACL, limiar e janela do Burst Guard, data e conta responsável).
13.3. Catálogo de mensagens e o que cada uma significa
| Mensagem | Significado e ação esperada |
|---|---|
| ✓ Pasta '…' incluída e monitorada com sucesso! | Caminho válido e já existente. Nada a fazer. |
| ⚠ A pasta '…' NÃO existia e foi criada agora — ✓ incluída… | Houve criação. Confira o caminho: provavelmente erro de digitação. Se estiver errado, remova a pasta do monitoramento e apague a pasta criada. |
| ✗ A unidade 'Z:\' não existe neste servidor (NOME). Unidades disponíveis: C:\, D:\ | A letra não existe para a conta que roda o serviço. Em servidor com unidade mapeada, lembre-se: LocalSystem não enxerga mapeamentos do usuário interativo — use o caminho UNC. |
| ✗ Não foi possível acessar ou criar a pasta '…': Access to the path … is denied | Permissão insuficiente. O serviço precisa rodar com conta que tenha acesso à pasta (ou como Administrador/LocalSystem). |
| ✗ O servidor demorou mais de 90 segundos para responder… | O painel abortou a espera. Normalmente pasta de rede indisponível ou host SMB fora do ar. A pasta não foi incluída. |
| ✗ Informe o caminho completo da pasta no servidor. | Campo vazio ou só com espaços. |
| ⚠ A pasta digitada '…' não existe. Exibindo a pasta existente mais próxima. | Aviso do seletor (não é erro). Ele subiu até o ancestral válido para você continuar navegando. |
| ✓ Operações reais executadas no disco NTFS ('Arquivo.txt' criado, renomeado e apagado)… | O botão Testar funcionou: o servidor escreveu e apagou de verdade naquela pasta. |
| ✓ Pasta '…' removida do monitoramento. | Watcher encerrado e registro apagado. SACL e cópias do cofre permanecem. |
13.4. Decisões de projeto que parecem detalhe, mas são intencionais
- Clique simples entra na pasta (em vez de selecionar e exigir duplo clique). O objetivo é percorrer rápido uma árvore de servidor de arquivos; a confirmação fica isolada no botão Usar esta pasta.
- A pasta digitada nunca gera erro no seletor. Um caminho inválido apenas posiciona você no ancestral existente — evita o beco sem saída típico de diálogos que só dizem “caminho não encontrado”.
- Pasta inexistente é criada, mas com aviso âmbar. A criação é necessária para compartilhamentos novos; o aviso impede que um erro de digitação passe silencioso.
- O snapshot não segura a resposta HTTP. Preferimos responder rápido e copiar em background a dar a sensação de botão travado.
- Remover não desfaz a SACL. Desfazer auditoria é uma operação de segurança com risco próprio; o painel não a executa por um clique em “Remover”.
- Versão no rodapé vem da API. Evita o clássico “painel diz 1.1, binário é 1.2”.
13.5. Limites declarados do módulo
O que segue não existe hoje — e portanto é funcionalidade nova, não defeito:
- Seletor não cria pasta (não há botão “Nova pasta”); para criar, digite o caminho e use Vigiar.
- Seletor não tem campo de busca nem árvore lateral persistente: navegação é por nível.
- Cofre rápido não guarda arquivos acima de 15 MB; nesses casos a restauração depende do Volume Shadow Copy do Windows.
- Snapshot inicial não espelha bibliotecas inteiras (250 arquivos novos / 5.000 verificados / profundidade 6).
- Não há agendamento de janela de vigia por pasta. As configurações por pasta hoje são: Freio Anti-Ransomware ativo, limiar de exclusões e janela de segundos.
- Remover não apaga as cópias do cofre nem reverte a SACL.
13.6. Como você mesmo reproduz esta verificação
Com o painel no ar, a bateria completa roda em navegador visível e grava vídeo:
"C:/Users/thali/AppData/Local/hermes/cache/pwvenv/Scripts/python.exe" scripts/e2e-detetive-arquivos.py --url http://127.0.0.1:8480 --headed --slow 280 --video
São 23 verificações: presets sem caminho fictício, atalhos apontando para pastas existentes, abertura do seletor, navegação e retorno, breadcrumb, confirmação de pasta, queda no ancestral existente, estado de ocupado, inclusão por digitação, tempo de resposta, restauração do botão, aviso de pasta criada, unidade inexistente, clique duplo, botão Testar, as seis áreas do painel, abertura e cancelamento do modal Desligar, teste de porta e ausência de erros de JavaScript.