Avanzado 11 minHardening

Aislar físicamente la máquina de las redes de inferencia

Respuesta directa

Aislar físicamente de la red una máquina de inferencia consiste en quitarle toda conexión de red (cable, Wi-Fi, Bluetooth) e introducir modelos y actualizaciones únicamente mediante un soporte físico controlado. Un cortafuegos de salida es una capa útil, pero no un aislamiento físico de la red (air-gap): se trata solo de una configuración de software. Los puntos débiles reales son los programas que se comunican con el exterior (Ollama Cloud, actualizaciones, descargas) y la memoria USB.

La palabra «local» no basta en ciertos contextos sensibles: una máquina local sigue conectada y sus programas pueden comunicarse con el exterior. Esta guía distingue el aislamiento físico de la red (air-gap) del aislamiento mediante cortafuegos, enumera los componentes de una pila LLM que se comunican con el exterior por defecto y cómo bloquear esas comunicaciones, describe una transferencia de modelos mediante una memoria USB verificada con huellas digitales y propone pruebas para comprobar la ausencia de fugas que puedes repetir.

Por Mohamed Meguedmi·Actualización 2026-09-30·Probado en Windows, macOS y Linux

#Cuándo se justifica un air-gap y cuándo cuesta demasiado

La decisión de usar un air-gap se basa en un análisis de riesgos, no en una cuestión de principio. Los casos en los que se justifica son: datos clasificados o amparados por un secreto industrial de alto nivel, requisitos contractuales o sectoriales que imponen explícitamente una red aislada, entornos que ya aplican el aislamiento y en los que el LLM debe integrarse, y equipos dedicados a expedientes de sensibilidad excepcional (un abogado, un investigador). Para los datos personales ordinarios, incluidos los de salud o financieros, los textos normativos exigen medidas proporcionales al riesgo en lugar de un aislamiento total: un LLM local en un equipo cifrado, sin cuenta en la nube, ya satisface la mayoría de las necesidades. La guía sobre IA local en empresas y la lista de comprobación de privacidad cubren este nivel intermedio.

!
El costo real
Cada actualización, cada modelo y cada documento pasa por un soporte físico y un protocolo. Una máquina aislada de la red que nunca se actualiza acumula vulnerabilidades; si su protocolo es demasiado engorroso, sus usuarios acaban saltándoselo. Planifica quién realiza las transferencias, con qué frecuencia y cómo se verifican.

Antes de empezar, hazte tres preguntas. ¿Quién hará las transferencias y con qué frecuencia? ¿Qué componentes exige la pila que se actualicen (Ollama, llama.cpp, la interfaz, los modelos)? ¿Y qué ocurre el día en que un modelo más reciente se vuelve indispensable? El proceso debe seguir siendo viable sin excepciones, porque una excepción hecha una sola vez se convierte en la regla. Si no puedes responder a estas tres preguntas, empieza con un equipo sin conexión para cada uso, con un cortafuegos estricto, y sube de nivel solo cuando el riesgo lo justifique.

#Air-gap, cuasi air-gap y cortafuegos: no confundirlos

El kit de IA Local para Empresas

Desplegar una IA local en el trabajo: RGPD, AI Act, arquitectura multiusuario, costes, nota para la dirección.

  • Espacio en línea de por vida
  • PDF + archivos
  • Reembolsado 30 j
Tres niveles de aislamiento
NivelQué esLo que aún es posible
Máquina fuera de línea por usoSin conexión activa, pero la tarjeta de red existeUna reconexión por error o por software; todo depende de la disciplina
Firewall estricto (bloqueo por defecto, también del tráfico saliente)Configuración de software que bloquea el tráfico de salidaUna regla añadida «para probar», un fallo del sistema, un servicio que evita
Aislamiento físicoNinguna interfaz de red activa: cable ausente, Wi-Fi y Bluetooth apagados en el firmware o retiradosFugas a través de medios extraíbles; canales físicos (fuera del alcance de esta guía)

Esta guía abarca los tres: el cortafuegos es la capa mínima que cualquier equipo sensible debería tener, y el aislamiento físico air-gap es la capa superior. En un Mac, los ajustes propios de macOS se tratan en la guía sobre la optimización de los Mac con chip Apple; en Windows, los principios son los mismos, pero el control de los componentes que se comunican con el exterior es menos preciso que con un Linux mínimo, de ahí que aquí se prefiera Linux.

#Preparar la máquina

Sistema mínimo
Debian o Ubuntu Server sin interfaz gráfica para un servidor de inferencia. Sin navegador, sin gestor de paquetes conectado a una tienda de aplicaciones.
Servicios de actualización automática
Desactiva los temporizadores de actualización, por ejemplo sudo systemctl disable --now apt-daily.timer apt-daily-upgrade.timer, para que no se produzca ningún intento de conexión de forma silenciosa.
Cuentas
Una cuenta dedicada al uso del LLM, sudo restringido al administrador.
Radios e interfaces
Wi-Fi y Bluetooth desactivados en el BIOS o en el firmware, mejor aún: físicamente ausentes. Sin cable de red conectado.
Sin arranque dual
Otra partición conectada a la red crea vías indirectas (archivo de intercambio, archivos compartidos).
Hora
Ajusta el reloj manualmente o a partir de una fuente interna: la sincronización con un servidor de tiempo público implica tráfico de salida.
Disco cifrado
Un equipo aislado puede ser robado o incautado: cifra el disco (ver la guía específica).

#Los programas de la pila LLM que realizan llamadas externas por defecto

En una máquina físicamente aislada, estas llamadas fallan sin causar daños; en una máquina protegida únicamente por un cortafuegos, o pendiente de desconexión, constituyen el verdadero riesgo. Una pila local típica contiene varios componentes que contactan con Internet si no se les impide hacerlo. Estos son los que se pueden desactivar según la documentación oficial.

Componentes que se comunican con el exterior y su opción de desactivación
ComponenteLo que puede hacerAjuste documentado
OllamaModelos y búsqueda web alojados (Ollama Cloud)OLLAMA_NO_CLOUD=1 o bien disable_ollama_cloud en ~/.ollama/server.json; los registros mostrarán entonces « Ollama cloud disabled: true »
Ollama (exposición a la red)Servidor HTTP localEscucha por defecto en 127.0.0.1; cambia OLLAMA_HOST solo para una red interna aislada
Open WebUIVerificaciones de actualización, descarga de modelos de embeddings desde Hugging FaceOFFLINE_MODE=true (desactiva también ENABLE_VERSION_UPDATE_CHECK) ; descarga los modelos de embeddings antes
Bibliotecas Hugging Face (transformers, sentence-transformers)Llamadas al Hub para verificar o descargarHF_HUB_OFFLINE=1: ninguna petición HTTP al Hub; solo se utilizan los archivos en caché
Bases de datos vectorialesTelemetría posibleWeaviate: DISABLE_TELEMETRY=true; comprueba la opción equivalente para cada componente

La documentación de Ollama especifica que, cuando se utiliza Ollama en local, el desarrollador no ve las consultas ni los datos; desactivar las funciones de la nube implica perder el acceso a los modelos alojados y a la búsqueda web, lo cual es exactamente el objetivo. Cuidado con Open WebUI: la documentación advierte que, si no has descargado un modelo de embeddings antes de activar OFFLINE_MODE, las funciones de RAG, búsqueda web y análisis de documentos pueden no funcionar. Descarga todo lo que necesite la máquina antes de desconectarla de la red.

→
Herramientas, agentes y búsqueda web
Un LLM local conectado a herramientas (búsqueda web, lectores de URL, servidores MCP remotos) puede emitir por sí mismo solicitudes al exterior. En una máquina aislada, desactiva o no instales estas herramientas: no es el modelo el que se conecta al exterior, sino la herramienta que se le proporciona.

#Cortafuegos estricto: rechazar por defecto tanto el tráfico entrante como el saliente

El firewall es la segunda línea, tras la desconexión física, y la única protección en un equipo que permanece en una red interna. El principio es el rechazo por defecto en ambos sentidos, con algunas autorizaciones explícitas hacia la red interna aislada. Escribe las reglas de autorización antes de activar el firewall, de lo contrario te desconectas tú mismo de una sesión SSH.

ufw: rechazo por defecto, red 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

El tráfico en la interfaz local (loopback) es necesario para el funcionamiento de Ollama y de Open WebUI, que se comunican en 127.0.0.1; verifica con ufw status verbose que tu configuración no lo bloquee. Si la máquina está en una LAN interna, refuerza también la protección en el router: una VLAN sin ruta hacia Internet.

#Verificar dónde está escuchando Ollama

Puertos en escucha
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 los modelos y las actualizaciones mediante una memoria USB

Una máquina aislada recibe modelos (de unos pocos GB a varias decenas), actualizaciones (Ollama, llama.cpp, Open WebUI) y, a veces, documentos. El punto crítico es la memoria USB: es la única puerta de entrada y, por tanto, la única vía de entrada de software malicioso. Usa siempre la misma memoria USB, dedicada a este uso y formateada regularmente, y nunca una que se haya utilizado en otro lugar.

  1. 01
    Descargar en una máquina conectada
    Descarga el archivo GGUF del modelo desde Hugging Face o el binario de actualización desde el sitio oficial. Anota la huella SHA-256 mostrada por la fuente cuando exista.
  2. 02
    Calcular la huella y analizar
    Ejecuta sha256sum sobre el archivo y luego analízalo con un antivirus (por ejemplo, ClamAV) en esta máquina de tránsito, que no es la máquina aislada.
  3. 03
    Copiar en la memoria USB
    Copia el archivo y un archivo de texto que contenga su huella.
  4. 04
    Verificar en la máquina aislada antes del uso
    En la máquina aislada, recalcula la huella: debe ser idéntica. Una diferencia indica un archivo modificado o corrupto: no lo utilices.
  5. 05
    Importar en Ollama
    Crea un Modelfile con FROM /chemin/vers/modele.gguf y luego ejecuta ollama create nom-du-modele -f Modelfile. Ollama no cuantiza un GGUF al importarlo: el archivo ya debe tener la cuantización deseada.
Huella digital e importación del 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

El método alternativo consiste en copiar todo el dossier de los modelos de una máquina conectada (blobs y manifestos) hacia la máquina aislada. Funciona, pero el dossier no está en el mismo lugar según la instalación: la FAQ de Ollama indica ~/.ollama/models en macOS, /usr/share/ollama/.ollama/models en Linux con el instalador estándar, y C:\Users\%username%\.ollama\models en Windows. Pasar por un archivo GGUF aislado es más fácil de verificar, ya que solo hay una huella para comparar. El guía sobre la importación GGUF detalla el Modelfile.

#Reforzar la seguridad del puerto USB

Una memoria USB puede hacerse pasar por un teclado u otro dispositivo. En Linux, USBGuard puede describirse en una frase como una herramienta de lista blanca de dispositivos USB: define qué tipos de dispositivos están autorizados y cómo pueden interactuar con el sistema. Desactiva también el montaje automático de los soportes de almacenamiento para que no se ejecute nada al conectarlos. En contextos muy sensibles, un diodo de datos (un dispositivo que solo deja pasar datos en un sentido) sustituye a la memoria USB, a costa de una puesta en marcha más compleja.

#Comprobar el aislamiento

Una prueba solo demuestra el aislamiento durante el periodo que ha observado: vuelve a ejecutarla tras cada actualización y deja la captura en marcha durante una sesión de trabajo completa. El protocolo mínimo cubre el funcionamiento, la ausencia de rutas, la ausencia de resolución de nombres y el tráfico real.

Funcionamiento offline
Desconecta el cable y desactiva todas las interfaces inalámbricas, luego ejecuta el flujo completo (modelo, RAG, interfaz). Todo debe funcionar: de lo contrario, un componente dependía de Internet.
Falta de ruta
ping -c 1 8.8.8.8 debe fallar (« Network is unreachable » o equivalente).
Ausencia de DNS
host exemple.org debe fallar; revisa /etc/resolv.conf: ningún servidor externo.
Conexiones establecidas
sudo ss -tunp state established : aucune connexion vers une adresse hors du réseau interne.
Tráfico real
Una captura con tcpdump en todas las interfaces, excluyendo la red interna, debe quedar vacía durante toda la sesión de uso.
Captura de control
# 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)'

#Auditoría periódica

Frecuencia de comprobación propuesta
FrecuenciaControlObjetivo
Mensualufw status verbose y lista de reglas; ss -tlnpDetectar una regla añadida «para probar»
Cada transferenciaHuellas antes y después de la clave; análisis antivirusDetectar un archivo modificado
En cada actualización de un componenteVolver a ejecutar las pruebas de aislamiento y revisar las variables sin conexiónUn nuevo componente puede añadir una llamada de salida
Semestral o anualReinstalación limpia a partir de imágenes verificadas; revisión de la amenazaEliminar el compromiso de seguridad acumulado

#Preguntas frecuentes sobre el aislamiento físico de red (air-gap) de una máquina LLM

FAQ
¿Basta con un firewall de salida para hablar de air-gap?+
No. Un cortafuegos es una configuración de software: basta con una regla olvidada, una vulnerabilidad o un servicio que la eluda para permitir una conexión saliente. El aislamiento air-gap supone la ausencia física de conexión de red. El cortafuegos sigue siendo una buena segunda línea de defensa y la única protección cuando la máquina debe permanecer en una red interna.
¿Cómo actualizar Ollama en una máquina sin internet?+
Descarga el programa desde la fuente oficial en una máquina conectada, calcula su huella digital, analízalo, cópialo en una memoria USB dedicada, vuelve a calcular la huella digital en la máquina aislada antes de la instalación y luego instálalo manualmente. Después, vuelve a ejecutar las pruebas de aislamiento y comprueba que las funciones en la nube sigan desactivadas.
¿Cómo transferir un modelo a la máquina aislada?+
Lo más sencillo es un archivo GGUF ya cuantizado: descárgalo, calcula su SHA-256, cópialo en la memoria USB, vuelve a calcular la huella en la máquina aislada y luego crea el modelo con un Modelfile y ollama create. Copiar el directorio de modelos también funciona, pero su ubicación varía según el sistema.
¿Envía Ollama mis consultas al exterior?+
Según la documentación de Ollama, el funcionamiento en local no envía ni solicitudes ni datos al desarrollador. Las funciones en la nube (modelos alojados, búsqueda web) son opcionales y pueden desactivarse con OLLAMA_NO_CLOUD=1 o mediante un ajuste en server.json. Para un equipo que maneje información sensible, desactívalas explícitamente y comprueba el mensaje en los registros.
¿Es la memoria USB el eslabón débil?+
Es la única vía de entrada, por lo tanto la más vigilada. Utiliza una memoria USB dedicada, desactiva el montaje automático, compara huellas SHA-256 antes y después de la transferencia y considera USBGuard para permitir solo los dispositivos previstos. Un diodo de datos es una solución superior si las restricciones lo justifican.
¿Se debe cifrar el disco de una máquina ya aislada?+
Sí. El aislamiento de la red no protege contra el robo ni la incautación de la máquina: un disco no cifrado se puede leer en cuanto se conecta a otro equipo. Cifra el disco del sistema, guarda una copia de la clave de recuperación fuera de la máquina y mantén la misma disciplina con las copias de seguridad.
¿Esta guía te ha ayudado?

¿Un comentario, un error, una precisión? Avísanos, eso mejora la guía para todos.