Avançado 11 minHardening

Isolar sua máquina da rede (air gap) de inferência

Resposta direta

Isolar fisicamente uma máquina de inferência da rede (air-gap) significa privá-la de qualquer conexão de rede (cabo, Wi-Fi, Bluetooth) e permitir a entrada de modelos e atualizações apenas por meio de uma mídia física controlada. Um firewall de saída é uma camada útil, mas não constitui um air-gap: trata-se apenas de uma configuração de software. Os pontos fracos reais são os softwares que se conectam ao exterior (Ollama Cloud, atualizações, downloads) e o pendrive.

A palavra «local» não basta em certos contextos sensíveis: uma máquina local continua conectada, e seus softwares podem se comunicar com o exterior. Este guia distingue o verdadeiro air-gap do isolamento por firewall, lista os componentes de uma pilha LLM que se comunicam com o exterior por padrão e explica como bloquear essas comunicações, descreve uma transferência de modelos por pendrive verificada por hashes e propõe testes de isolamento que você pode repetir.

Por Mohamed Meguedmi·Atualização 2026-09-30·Testado no Windows, macOS e Linux

#Quando um air-gap é justificado e quando custa muito caro

A adoção de um air-gap é decidida com base em uma análise de riscos, não por princípio. Os casos em que ele se justifica: dados classificados ou protegidos por segredo industrial de alto nível, exigências contratuais ou setoriais que impõem explicitamente uma rede isolada, ambientes que já adotam o isolamento e aos quais o LLM deve se integrar, e computadores dedicados a dossiês de sensibilidade excepcional (de um advogado ou de um pesquisador). Para dados pessoais comuns, inclusive de saúde ou financeiros, os textos legais exigem medidas proporcionais ao risco, em vez de isolamento total: um LLM local em um computador criptografado, sem conta na nuvem, já atende à maioria das necessidades. O guia sobre IA local em empresas e a checklist de confidencialidade abrangem esse nível intermediário.

!
O custo real
Cada atualização, cada modelo, cada documento passa por uma mídia física e um protocolo. Uma máquina isolada da rede por air gap que nunca é atualizada acumula vulnerabilidades; quando o protocolo de uma máquina é trabalhoso demais, seus usuários acabam contornando esse protocolo. Planeje quem faz as transferências, com que frequência e como elas são verificadas.

Antes de começar, faça três perguntas. Quem fará as transferências e com que frequência? Quais componentes a pilha exige que sejam atualizados (Ollama, llama.cpp, a interface, os modelos)? E o que acontece no dia em que um modelo mais recente se tornar indispensável: o processo deve continuar viável sem exceções, porque uma exceção feita uma vez se torna a regra. Se você não conseguir responder a essas três perguntas, comece com uma estação de trabalho offline para cada uso, com firewall rigoroso, e avance um nível apenas quando o risco justificar.

#Air-gap, quase air-gap e firewall: não confundir

O kit IA Local na Empresa

Implantar uma IA local no trabalho: RGPD, AI Act, arquitetura multiusuário, custos, nota para a diretoria.

  • Espaço online vitalício
  • PDF + arquivos
  • Atualizações vitalícias
Três níveis de isolamento
NívelO que éO que ainda é possível
Máquina fora de linha por usoSem conexão ativa, mas a placa de rede existeUma reconexão por engano ou por um software; tudo depende da disciplina
Firewall rigoroso (bloqueio por padrão, inclusive do tráfego de saída)Configuração de software que bloqueia o tráfego de saídaUma regra adicionada “para testar”, uma falha no sistema, um serviço que contorna as restrições
Isolamento físicoNenhuma interface de rede ativa: cabo ausente, Wi-Fi e Bluetooth desligados no firmware ou removidosVazamentos por mídias removíveis; canais físicos (fora do escopo deste guia)

Este guia abrange os três: o firewall é a camada mínima que qualquer computador usado para atividades sensíveis deveria ter, e o air-gap físico é a camada superior. Em um Mac, as configurações específicas do macOS são abordadas no guia de otimização de Macs com chip Apple; no Windows, os princípios são os mesmos, mas o controle dos componentes que fazem chamadas externas é menos preciso do que em um Linux mínimo, por isso a preferência dada aqui ao Linux.

#Preparar a máquina

Sistema mínimo
Debian ou Ubuntu Server sem interface gráfica para um servidor de inferência. Sem navegador, sem gerenciador de pacotes conectado a uma loja de aplicativos.
Serviços de atualização automática
Desative os timers de atualização, por exemplo sudo systemctl disable --now apt-daily.timer apt-daily-upgrade.timer, para que nenhuma tentativa de conexão seja iniciada silenciosamente.
Contas
Uma conta dedicada ao uso do LLM, sudo restrito ao administrador.
Rádios e interfaces
Wi-Fi e Bluetooth desativados no BIOS ou no firmware, melhor: fisicamente ausentes. Sem cabo de rede conectado.
Sem dual boot
Uma partição com conexão à rede no mesmo computador cria vias indiretas (arquivo de troca, arquivos compartilhados).
Hora
Ajuste a hora manualmente ou por meio de uma fonte interna: uma sincronização com um servidor de tempo público gera tráfego de saída.
Disco criptografado
Um computador isolado pode ser roubado ou apreendido: criptografe o disco (consulte o guia específico).

#Softwares da pilha LLM que fazem chamadas externas por padrão

Em uma máquina fisicamente isolada, essas chamadas falham sem causar danos; em uma máquina protegida apenas por um firewall, ou ainda aguardando a desconexão, elas são o verdadeiro risco. Uma pilha local típica contém vários componentes que se conectam à internet se não forem impedidos. Veja quais deles podem ter essas conexões desativadas conforme a documentação oficial.

Componentes que se comunicam com o exterior e como desativar essa comunicação
ComponenteO que ele pode fazerConfiguração documentada
OllamaModelos e busca web hospedados (Ollama Cloud)OLLAMA_NO_CLOUD=1 ou disable_ollama_cloud no ~/.ollama/server.json ; os logs exibem então « Ollama cloud disabled: true »
Ollama (exposição à rede)Servidor HTTP localEscuta em 127.0.0.1 por padrão; altere OLLAMA_HOST somente para uma rede interna isolada
Open WebUIVerificações de atualização, download de modelos de embeddings do Hugging FaceOFFLINE_MODE=true (desativa também ENABLE_VERSION_UPDATE_CHECK) ; baixe os modelos de embeddings antes
Bibliotecas Hugging Face (transformers, sentence-transformers)Chamadas ao Hub para verificar ou baixarHF_HUB_OFFLINE=1: nenhuma chamada HTTP ao Hub, apenas os arquivos em cache são usados
Bases vetoriaisPossível telemetriaWeaviate : DISABLE_TELEMETRY=true ; verifique a opção equivalente para cada componente

A documentação do Ollama esclarece que, quando você usa o Ollama localmente, a empresa responsável não vê as requisições nem os dados; desativar as funções de nuvem elimina o acesso aos modelos hospedados e à pesquisa web, o que é exatamente o objetivo. Atenção ao Open WebUI: a documentação alerta que, se você não tiver baixado um modelo de embeddings antes de ativar OFFLINE_MODE, as funções de RAG, pesquisa web e análise de documentos podem não funcionar. Baixe tudo de que a máquina precisará antes de desconectá-la da rede.

→
Ferramentas, agentes e pesquisa web
Um LLM local conectado a ferramentas (busca web, leitores de URL, servidores MCP remotos) pode emitir, por si só, requisições para fora. Em uma máquina isolada, desative ou não instale essas ferramentas: não é o modelo que sai, é a ferramenta que lhe é dada.

#Firewall rigoroso: bloquear por padrão tanto o tráfego de entrada quanto o de saída

O firewall é a segunda linha de defesa, atrás da desconexão física, e a única proteção em um computador conectado a uma rede interna. O princípio é o bloqueio por padrão em ambos os sentidos, com algumas autorizações explícitas para a rede interna isolada. Escreva as regras de autorização antes de ativar o firewall, caso contrário, você vai se desconectar da sessão SSH.

ufw: bloqueio por padrão, rede interna permitida
sudo ufw default deny incoming
sudo ufw default deny outgoing

# Réseau interne isolé (exemple), y compris l'administration SSH depuis un poste connu
sudo ufw allow in from 192.168.50.0/24 to any port 22 proto tcp
sudo ufw allow out to 192.168.50.0/24

sudo ufw enable
sudo ufw status verbose

O tráfego na interface local (loopback) é necessário para o funcionamento do Ollama e do Open WebUI, que se comunicam em 127.0.0.1; verifique com ufw status verbose se sua configuração não bloqueia esse tráfego. Se a máquina estiver em uma LAN interna, reforce também a proteção no roteador: uma VLAN sem rota para a Internet.

#Verificar onde o Ollama está escutando

Portas em escuta
sudo ss -tlnp | grep ollama
# attendu : 127.0.0.1:11434 et non 0.0.0.0:11434
# si 0.0.0.0 : régler OLLAMA_HOST=127.0.0.1:11434

#Transferir os modelos e as atualizações por pendrive

Uma máquina isolada recebe modelos (de alguns GB a várias dezenas de GB), atualizações (Ollama, llama.cpp, Open WebUI) e, às vezes, documentos. O ponto crítico é o pendrive: é a única porta de entrada e, portanto, a única via de entrada de software malicioso. Use sempre o mesmo pendrive, dedicado, formatado regularmente, e nunca um pendrive que tenha sido usado em outro lugar.

  1. 01
    Baixar em uma máquina conectada
    Baixe o arquivo GGUF do modelo do Hugging Face ou o binário de atualização do site oficial. Anote o hash SHA-256 exibido pela fonte, quando disponível.
  2. 02
    Calcular o hash e analisar
    Execute sha256sum no arquivo e, em seguida, analise-o com um antivírus (por exemplo, ClamAV) nessa máquina de trânsito, que não é a máquina isolada.
  3. 03
    Copiar para o pen drive
    Copie o arquivo e um arquivo de texto contendo seu hash.
  4. 04
    Verificar na máquina isolada antes do uso
    Na máquina isolada, recalcule o hash: ele deve ser idêntico. Uma diferença significa que o arquivo foi modificado ou está corrompido: não o use.
  5. 05
    Importar para Ollama
    Crie um Modelfile com FROM /chemin/vers/modele.gguf e depois execute ollama create nom-du-modele -f Modelfile. O Ollama não quantiza um GGUF na importação: o arquivo já deve ter a quantização desejada.
Impressão digital e importação do modelo
# machine de transit
sha256sum modele-q4_k_m.gguf > modele.sha256

# machine isolée
sha256sum -c modele.sha256
printf 'FROM ./modele-q4_k_m.gguf\n' > Modelfile
ollama create mon-modele -f Modelfile
ollama run mon-modele

O método alternativo consiste em copiar todo o diretório dos modelos de uma máquina conectada (blobs e manifestos) para a máquina isolada. Funciona, mas o diretório não está no mesmo local conforme a instalação: a FAQ do Ollama indica ~/.ollama/models no macOS, /usr/share/ollama/.ollama/models no Linux com o instalador padrão e C:\Users\%username%\.ollama\models no Windows. O passo por um arquivo GGUF isolado é mais fácil de verificar, pois há apenas uma impressão a comparar. O guia sobre importação GGUF detalha o Modelfile.

#Reforçar a segurança da porta USB

Um pendrive pode se fazer passar por um teclado ou outro periférico. No Linux, o USBGuard pode ser descrito em uma frase como uma ferramenta de lista de permissões para dispositivos USB: ele define quais tipos de dispositivos são permitidos e como podem interagir com o sistema. Desative também a montagem automática das mídias de armazenamento, para que nada seja executado ao conectá-las. Para contextos muito sensíveis, um diodo de dados (um dispositivo que só permite a passagem de dados em um sentido) substitui o pendrive, ao custo de uma implementação mais complexa.

#Testar o isolamento

Um teste só comprova o isolamento durante o período que monitorou: repita-o após cada atualização e deixe a captura rodando durante uma sessão de trabalho completa. O protocolo mínimo cobre o funcionamento, a ausência de rota, a ausência de resolução de nomes e o tráfego real.

Funcionamento offline
Desconecte o cabo e desative todas as interfaces de rádio, depois execute o fluxo completo (modelo, RAG, interface). Tudo deve funcionar: caso contrário, algum componente dependia da Internet.
Falta de rota
ping -c 1 8.8.8.8 deve falhar (« Network is unreachable » ou equivalente).
Ausência de DNS
host exemple.org deve falhar; verifique /etc/resolv.conf: nenhum servidor externo.
Conexões estabelecidas
sudo ss -tunp state established : aucune connexion vers une adresse hors du réseau interne.
Tráfego real
Uma captura com tcpdump em todas as interfaces, excluindo a rede interna, deve permanecer vazia durante toda a sessão de uso.
Captura de controle
# rien ne doit apparaître (hors loopback et réseau interne)
sudo tcpdump -i any -n 'not (host 127.0.0.1 or host ::1) and not (net 192.168.50.0/24)'

#Auditoria periódica

Frequência de verificação proposta
FrequênciaControleObjetivo
Mensalufw status verbose e lista das regras; ss -tlnpIdentificar uma regra adicionada "para testar"
A cada transferênciaImpressões antes e depois da chave; análise antivírusDetectar um arquivo modificado
A cada atualização de um componenteReexecutar os testes de isolamento e revisar as variáveis de modo offlineUm novo componente pode adicionar uma chamada de saída
Semestral ou anualReinstalação limpa a partir de imagens verificadas; revisão da ameaçaEliminar um comprometimento acumulado

#Perguntas frequentes sobre o air-gap de uma máquina LLM

FAQ
Um firewall de saída é suficiente para falar de air-gap?+
Não. Um firewall é uma configuração de software: uma regra esquecida, uma falha ou um serviço que a contorna são suficientes para abrir uma saída. O air-gap pressupõe a ausência física de ligação de rede. O firewall continua uma boa segunda linha e a única proteção quando a máquina precisa permanecer em uma rede interna.
Como atualizar Ollama em uma máquina sem internet?+
Baixe o programa em uma máquina conectada a partir da fonte oficial, calcule seu hash, analise-o, copie-o para um pendrive dedicado, recalcule o hash na máquina isolada antes da instalação e, em seguida, instale-o manualmente. Execute novamente os testes de isolamento e verifique se as funções de nuvem permanecem desativadas.
Como transferir um modelo para a máquina isolada?+
A forma mais simples é um arquivo GGUF já quantizado: baixe-o, calcule seu hash SHA-256, copie-o para o pendrive, recalcule o hash na máquina isolada e depois crie o modelo com um Modelfile e ollama create. Copiar o diretório de modelos também funciona, mas sua localização varia conforme o sistema.
O Ollama envia minhas requisições para fora?+
De acordo com a documentação do Ollama, o funcionamento local não transmite requisições nem dados à empresa responsável pelo software. As funções de nuvem (modelos hospedados, busca na web) são opcionais e podem ser desativadas com OLLAMA_NO_CLOUD=1 ou uma configuração em server.json. Para uma máquina que exige maior segurança, desative-as explicitamente e verifique a mensagem nos logs.
O pendrive é o ponto fraco?+
É a única porta de entrada, portanto a mais monitorada. Use um pendrive dedicado, desative a montagem automática, compare hashes SHA-256 antes e depois da transferência e considere o USBGuard para permitir apenas os dispositivos esperados. Um diodo de dados é a solução superior se as restrições justificarem seu uso.
É necessário criptografar o disco de uma máquina já isolada?+
Sim. O isolamento de rede não protege contra o roubo ou a apreensão da máquina: um disco não criptografado pode ser lido assim que é conectado a outra máquina. Criptografe o disco do sistema, salve a chave de recuperação fora da máquina e mantenha a mesma disciplina nas cópias de segurança.
Este guia ajudou você?

Um comentário, um erro ou uma observação? Avise-nos; isso ajuda a melhorar o guia para todos.