23.9 C
Santiago

Aislamiento de LLMs Locales: Configuración Strict-Mode con iptables

Published:

El concepto de Aislamiento de LLMs es el eje central de este análisis.

Requisitos Previos y Preparación de Host

El control de la inferencia comienza en la capa base. No hay confianza en el sandbox del modelo ni en las políticas del runtime. La única solución viable es el aislamiento de red a nivel de host. Esto requiere un sistema Linux con privilegios root para la gestión de `iptables` y un runtime de contenedores estable como Docker o Podman. El primer paso es asegurar las herramientas necesarias para el despliegue y la persistencia del cortafuegos, sin teorías sobre la privacidad: solo packages y servicios.

sudo apt update sudo apt install docker.io netfilter-persistent -y sudo systemctl enable --now docker sudo usermod -aG docker $USER # Reinicie la sesión o el shell para que los permisos de Docker surtan efecto.

Paso 1: Despliegue de Ollama en Modo Local

Utilizaremos Ollama debido a su simplicidad en el manejo de modelos GGUF, ideal para el auto-alojamiento. El contenedor debe estar configurado para ser accesible localmente, típicamente en el puerto 11434, sin forzar una red host que pudiera eludir las reglas de iptables. Un archivo `docker-compose.yaml` define el servicio de manera reproducible y limpia. Cree el archivo en un directorio de trabajo (`~/ollama-host/`).

version: '3.8' services:   ollama:     image: ollama/ollama     container_name: ollama-strict     restart: always     ports:       - "11434:11434"     volumes:       - ollama_data:/root/.ollama     # Establece una red puente estandar; el control estricto va en el HOST.     network_mode: "bridge"   volumes:   ollama_data:

Telegram

Canal Oficial de Telegram Scripts, noticias y debates en tiempo real.

Unirme Ahora

Publicidad

Paso 2: Aislamiento de Red con Política DROP en OUTPUT

El punto de fuga de la telemetría es la cadena OUTPUT del host. Es la única cadena que controlamos a ciencia cierta. La política por defecto debe ser `DROP`. Esto significa que, por defecto, nada sale. Luego, se crean excepciones mínimas para la comunicación interna y las respuestas a las peticiones aceptadas. Esto es un cortafuegos con denegación por defecto (fail-safe).

# Limpieza de reglas y cadenas antiguas (precausion). sudo iptables -F sudo iptables -X  # Establecer las políticas por defecto para bloquear todo el trafico (INPUT y FORWARD) sudo iptables -P INPUT DROP sudo iptables -P FORWARD DROP  # CONFIGURACION CRITICA: Bloqueo de OUTPUT # Temporalmente en ACCEPT antes de aplicar las reglas para evitar el bloqueo del shell. sudo iptables -P OUTPUT ACCEPT 

La implementación del bloqueo en OUTPUT debe ser quirúrgica. Se acepta la interfaz de loopback (`lo`) para la comunicación de procesos internos (incluyendo Docker), y el tráfico ya establecido o relacionado. Todo lo demás se dirige a DROP, impidiendo cualquier intento de HTTP(s) o DNS saliente hacia servidores propietarios.

# 1. Aceptar localhost (loopback) para comunicaciones internas del host/Docker. sudo iptables -A OUTPUT -o lo -j ACCEPT  # 2. Aceptar el tráfico de respuesta para conexiones ya iniciadas (ESTABLISHED/RELATED). sudo iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT  # 3. APLICAR EL BLOQUEO: Cambiar la política por defecto a DROP. sudo iptables -P OUTPUT DROP  # 4. Persistir las reglas inmediatamente. sudo netfilter-persistent save

Publicidad

Paso 3: Test de Inferencia y Verificación de Bloqueo

Ahora se levanta el servicio de Ollama y se ejecuta una prueba de inferencia local. La inferencia debe funcionar sin problemas, ya que el tráfico se resuelve en `localhost` o en el bridge de Docker, permitido por la regla `OUTPUT -o lo`. La prueba de fuga se realiza intentando acceder a una URL externa desde el host. El resultado esperado es un timeout silencioso.

# Iniciar el servicio Ollama docker compose up -d  # Prueba de inferencia local (DEBE FUNCIONAR) curl http://localhost:11434/api/generate -d '{"model": "llama3", "prompt": "1+1="}' # NOTA: Si el modelo no está descargado, primero use 'docker exec ollama-strict ollama pull llama3' (esto requiere acceso temporal o previa descarga).  # Prueba de fuga a internet (DEBE FALLAR CON TIMEOUT/CONEXION RECHAZADA) curl -I -m 5 https://google.com 

El estado de DROP es la única garantía de que la telemetría no sale del servidor. La auditoría final de las cadenas muestra el contador de paquetes: los contadores de la regla DROP deberían aumentar con cualquier intento de conexión externa, mientras que la regla de loopback (`lo`) mostrará tráfico activo durante la inferencia. La única verdad está en los contadores del cortafuegos.

# VERIFICACION: Comprobar el estado de las reglas OUTPUT sudo iptables -L OUTPUT -v -n # MANTENIMIENTO: Comando para revertir el bloqueo si es necesario para una descarga puntual (USAR CON PRECAUCION) # sudo iptables -P OUTPUT ACCEPT # sudo netfilter-persistent save

Publicidad

Cipher ‘Localhost’ Vance,
Bunker de Soberanía de Datos.

Esperamos que esta guía sobre Aislamiento de LLMs te haya dado una nueva perspectiva.

Related articles

spot_img

Recent articles

spot_img