Firewall para servicios de IA: Asegurar puertos
Qué cubre este artículo sobre firewalls
- Cómo configurar y asegurar una firewall para servicios locales de IA como Ollama
- La diferencia entre
ufweiptablesy cuándo usar cada herramienta - Guía paso a paso para asegurar el puerto 11434 y otros puertos de servicios
- Buenas prácticas para políticas default-deny, acceso VPN y superficie mínima de ataque
- Errores comunes que sabotean tus reglas de firewall y cómo evitarlos
Introducción: firewall explicado de forma clara
Cuando ejecutas servicios locales de IA como Ollama en tu servidor, es probable que en algún momento un servicio esté escuchando en un puerto accesible desde otros dispositivos de tu red. Esto es conveniente porque puedes acceder a los modelos desde otras máquinas, pero también representa un riesgo si el servicio no requiere autenticación y cualquiera en la red puede enviar solicitudes.
Una firewall es tu primera línea de defensa. Controla qué tráfico de red llega hasta tus servicios. En Operación segura y específicamente en Seguridad de red, la configuración de firewall es fundamental antes de usar servicios de IA en producción.
Este artículo te muestra cómo construir una firewall con ufw e iptables, qué reglas tienen sentido para Ollama y cómo identificar fuentes de error comunes.
¿Por qué necesito una firewall?
Un ejemplo concreto: Ollama inicia por defecto y escucha en el puerto 11434. Si estableces la variable de entorno OLLAMA_HOST en 0.0.0.0, para hacer el servicio accesible desde la red, Ollama acepta solicitudes de cualquier dispositivo que pueda alcanzar tu servidor. Sin autenticación. Sin TLS. Sin rate-limiting.
En una red doméstica con tres dispositivos esto puede parecer aceptable. En una oficina, espacio de coworking o WLAN público se convierte en un problema. Cualquiera que conozca o adivine la dirección IP de tu servidor puede cargar modelos, ejecutar prompts y consumir recursos. En el peor caso, alguien usa tu servidor para generar contenido inapropiado bajo tu dirección IP.
Una firewall restringe quién puede establecer una conexión al puerto 11434. En lugar de confiar en todos en la red, solo permites acceso a direcciones IP específicas o a través de VPN. Todas las demás solicitudes se descartan antes de llegar a Ollama.
Firewall explicada brevemente
Una firewall es un software que filtra el tráfico de red basándose en reglas. Cada regla describe qué tráfico se permite o bloquea, basándose en criterios como IP origen, puerto destino, protocolo (TCP o UDP) e interfaz de red.
En sistemas Linux, la firewall funciona en el kernel a través del framework Netfilter. Las herramientas ufw e iptables son frontends que usas para definir reglas sin comunicarte directamente con el kernel.
ufw(Uncomplicated Firewall) es el frontend recomendado en Ubuntu. Simplifica la sintaxis y es adecuada para la mayoría de casos de uso.iptableses la herramienta clásica y más poderosa. Ofrece control granular sobre cada fase del procesamiento de paquetes, pero requiere más conocimiento sobre las tablas y chains internas.
Ambas herramientas escriben en las mismas tablas de Netfilter. Lo que configuras con ufw se traduce internamente a reglas de iptables.
A quién está dirigido este artículo
Este artículo es para ti si ejecutas servicios locales de IA como Ollama en un servidor Linux y quieres asegurar que solo dispositivos autorizados puedan acceder. Deberías tener conocimientos básicos de línea de comandos y saber cómo conectarte a tu servidor por SSH. Experiencia previa con firewalls es útil pero no obligatoria, ya que cada paso se explica.
Términos importantes
| Término | Significado |
|---|---|
| Firewall | Software que filtra tráfico de red basándose en reglas |
| Puerto | Dirección numerada donde escucha un servicio, p. ej. 11434 para Ollama |
| ufw | Uncomplicated Firewall, frontend simplificado para reglas de firewall en Ubuntu |
| iptables | Herramienta clásica para configurar directamente las reglas de Netfilter en el kernel |
0.0.0.0 | Dirección de enlace que incluye todas las interfaces de red |
127.0.0.1 | Dirección de loopback, solo accesible localmente, no desde la red |
| Allow | Regla que permite cierto tráfico de red |
| Deny | Regla que bloquea cierto tráfico de red |
| Rule | Regla individual de firewall con criterios definidos |
| Default Policy | Comportamiento cuando ninguna regla se aplica, generalmente Allow o Deny |
Comportamiento predeterminado de Ollama
Ollama se enlaza por defecto a 127.0.0.1:11434. Esto significa que solo procesos en la misma máquina pueden acceder al servicio. Desde otros dispositivos en la red, el puerto 11434 no es accesible. En esta configuración no necesitas reglas de firewall para Ollama porque el servicio no escucha hacia el exterior.
Esto cambia cuando quieres que Ollama esté disponible en la red. Estableces la variable de entorno OLLAMA_HOST en 0.0.0.0:11434, y Ollama escucha en todas las interfaces de red. Ahora el servicio es accesible desde cualquier dispositivo que pueda alcanzar tu servidor. Aquí es donde entra en juego la firewall.
Encontrarás detalles de configuración en el artículo sobre Configuración de Ollama y Acceso de red de Ollama.
Firewall con ufw
ufw viene preinstalado en Ubuntu pero generalmente está desactivado. Los siguientes pasos te muestran cómo activar la firewall y definir reglas para Ollama.
Paso 1: Instalar ufw y verificar estado
sudo apt update && sudo apt install ufw
sudo ufw status
La salida mostrará Status: inactive mientras la firewall no esté activa.
Paso 2: Establecer la política predeterminada
Antes de activar la firewall, defines la política predeterminada. La variante más segura es bloquear el tráfico entrante por defecto y permitir el saliente.
sudo ufw default deny incoming
sudo ufw default allow outgoing
Paso 3: Permitir acceso SSH
Si activas la firewall ahora, se bloquearán todas las conexiones entrantes, incluyendo SSH. Esto te bloqueará el acceso si trabajas de forma remota. Por lo tanto, permite SSH primero.
sudo ufw allow ssh
Si ejecutas SSH en un puerto diferente, p. ej. 2222, especifícalo explícitamente:
sudo ufw allow 2222/tcp
Paso 4: Activar la firewall
sudo ufw enable
ufw te advertirá que las conexiones SSH existentes podrían interrumpirse. Confirma con y si permitiste SSH en el paso anterior.
Paso 5: Permitir Ollama solo para localhost
Si Ollama escucha en 127.0.0.1, no necesitas una regla adicional porque ufw permite el tráfico de loopback por defecto. Si Ollama escucha en 0.0.0.0 pero quieres restringir el acceso a un dispositivo específico, permites el puerto solo para esa dirección IP.
sudo ufw allow from 192.168.1.50 to any port 11434
Reemplaza 192.168.1.50 con la dirección IP de tu máquina de trabajo. Todos los demás dispositivos en la red no podrán conectarse al puerto 11434.
Paso 6: Verificar las reglas
sudo ufw status verbose
La salida lista todas las reglas activas con sus direcciones y direcciones IP de origen. Comprueba que solo los puertos y direcciones deseados estén permitidos.
Firewall con iptables
Si no utilizas ufw o necesitas un control más granular, configuras iptables directamente. La sintaxis es más compleja, pero ves exactamente qué reglas están activas en el kernel.
Mostrar reglas existentes
sudo iptables -L -n -v
La opción -L lista las reglas, -n evita la resolución de nombres para direcciones IP, y -v muestra estadísticas adicionales como contadores de paquetes.
Permitir tráfico de loopback
sudo iptables -A INPUT -i lo -j ACCEPT
Esta regla permite todo el tráfico a través de la interfaz de loopback lo, por lo que procesos locales como Ollama en 127.0.0.1 funcionan sin restricciones.
Permitir conexiones establecidas
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Las conexiones ya establecidas o relacionadas con una conexión existente se aceptan. Esto evita que se bloqueen las respuestas a solicitudes salientes.
Permitir SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Permitir Ollama para una IP específica
sudo iptables -A INPUT -p tcp -s 192.168.1.50 --dport 11434 -j ACCEPT
Bloquear todo lo demás
sudo iptables -A INPUT -j DROP
Esta regla está al final de la cadena y descarta todos los paquetes que no coinciden con ninguna regla anterior. El orden es crucial, porque iptables procesa las reglas de arriba hacia abajo y se detiene en la primera coincidencia.
Guardar reglas permanentemente
Las reglas de iptables se pierden al reiniciar. Guárdalas de forma permanente con iptables-persistent:
sudo apt install iptables-persistent
sudo netfilter-persistent save
Mejores prácticas
Denegación predeterminada como punto de partida
Establece siempre la política predeterminada en Denegar para el tráfico entrante. Permite solo lo que necesitas explícitamente. El principio de superficie mínima de ataque reduce el riesgo de que un nuevo servicio sea accesible accidentalmente.
Específico en lugar de general
Permite puertos solo para direcciones IP o subredes concretas, no para todos. ufw allow 11434 abre el puerto a toda Internet si tu servidor tiene una IP pública. ufw allow from 192.168.1.0/24 to any port 11434 restringe el acceso a tu subred local.
VPN en lugar de apertura de puertos
Si quieres acceder a Ollama desde fuera de tu red, no abras el puerto en el router. Utiliza un VPN como Tailscale en su lugar, que establece una conexión cifrada entre tus dispositivos. El puerto permanece invisible hacia el exterior, y solo los participantes VPN autenticados pueden pasar.
Documentar reglas
Las reglas de firewall crecen con el tiempo. Comenta cada regla para que meses después sepas por qué existe. Con ufw usas prefijos en la descripción, con iptables ayuda un documento separado o la herramienta iptables-save con comentarios.
Revisar regularmente
Revisa tus reglas cada pocas semanas. Elimina reglas para servicios que ya no usas. Cada regla abierta es un vector potencial de ataque.
Ejemplo: hacer que Ollama sea seguro y accesible
Este ejemplo muestra el flujo completo para configurar Ollama de modo que solo tu computadora de trabajo pueda acceder.
Paso 1: Vincular Ollama a 0.0.0.0
Establece la variable de entorno en el archivo de servicio de Ollama:
sudo systemctl edit ollama.service
Añade estas líneas en el editor:
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
Guarda y recarga la configuración:
sudo systemctl daemon-reload
sudo systemctl restart ollama
Paso 2: Establecer una regla de firewall
Permite el puerto 11434 solo para tu computadora de trabajo:
sudo ufw allow from 192.168.1.50 to any port 11434
Paso 3: Probar el acceso
Prueba desde tu computadora de trabajo:
curl http://192.168.1.10:11434/api/tags
Reemplaza 192.168.1.10 con la dirección IP de tu servidor. Deberías recibir una respuesta JSON con los modelos instalados.
Prueba desde otro dispositivo en la red. La conexión debería agotarse el tiempo de espera o ser rechazada.
Paso 4: Opcionalmente, agregar un proxy inverso
Para mayor seguridad y cifrado TLS, coloca un proxy inverso frente a Ollama. El proxy termina TLS, proporciona autenticación y reenvía solicitudes internamente a Ollama. El firewall permite solo el puerto 443 para el proxy, mientras que el puerto 11434 permanece completamente cerrado.
Errores típicos
- Bloquearte a ti mismo con SSH: La fuente de error más común. Si activas el firewall sin permitir SSH, pierdes acceso al servidor. Siempre permite SSH como primera regla.
- Olvidar la política predeterminada: Sin una política predeterminada explícita,
ufwpuede estar en un estado ambiguo. Establecedeny incomingyallow outgoingantes de activar. - Bloquear loopback: Una regla demasiado estricta puede bloquear el tráfico de loopback, impidiendo que procesos locales se comuniquen entre sí. Asegúrate de que
127.0.0.1siempre esté permitido. - Ignorar el orden de las reglas: Con
iptables, el orden es crucial. Una reglaDROPal principio de la cadena bloquea todo, aunque una reglaACCEPTpara el mismo puerto aparezca después. - Pasar por alto la IP pública: Si tu servidor tiene una IP pública y ejecutas
ufw allow 11434sin una IP de origen, Ollama es accesible desde toda Internet. Verifica siempre si tu servidor está detrás de un router o conectado directamente a Internet. - No guardar reglas permanentemente: Las reglas de
iptablesdesaparecen al reiniciar. Usaiptables-persistentpara guardarlas, de lo contrario tu servidor quedará sin protección después del próximo arranque. - Descuidar IPv6: Si IPv6 está activo, las reglas de
iptablespara IPv4 no se aplican automáticamente a IPv6. Configuraip6tablespor separado o utilizaufw, que cubre ambos protocolos. - Los puertos de Docker eluden el firewall: Docker manipula reglas de
iptablesdirectamente y puede pasar por alto tus reglas manuales. Si ejecutas Ollama en Docker, verifica si el puerto del contenedor está expuesto y usa redes de Docker en lugar de asignaciones de puertos.
Hardware, costos y seguridad
Un firewall no cuesta hardware adicional. Se ejecuta como software en tu servidor existente. Las herramientas ufw e iptables son código abierto y gratuitas. El único esfuerzo es tu tiempo para la configuración y revisión regular.
Desde el punto de vista de la seguridad, un firewall no es una panacea. Filtra el tráfico de red, pero no protege contra ataques que llegan a través de puertos permitidos. Si expones el puerto 11434 a un dispositivo e infectas ese dispositivo con malware, el firewall no sirve de nada. Es una capa en un concepto de seguridad multicapa, complementado por autenticación, cifrado y actualizaciones periódicas.
Enlaces relacionados
- Operación segura, descripción general de todos los artículos sobre la operación segura de servicios de IA
- Seguridad de redes, más temas sobre la protección de redes
- Proxy inverso, cómo agregar TLS y autenticación frente a Ollama
- Acceso de red de Ollama, detalles sobre el acceso de red a Ollama
- Configuración de Ollama, todas las opciones de configuración de Ollama
- Tailscale, solución VPN para acceso remoto seguro
- Ubuntu, conceptos básicos para operar servidores Ubuntu
Preguntas frecuentes
¿Cuál es la diferencia entre ufw e iptables?
ufw es una interfaz simplificada que genera reglas de iptables en segundo plano. Funciona bien para escenarios estándar y es más legible. iptables ofrece control directo sobre las tablas y cadenas de Netfilter, permitiendo reglas más granulares, pero requiere más experiencia.
¿Una firewall también bloquea el tráfico saliente?
No por defecto en ufw. La política predeterminada para tráfico saliente es allow. Puedes cambiarla a deny, pero entonces necesitarás autorizar explícitamente cada puerto saliente, lo que aumenta significativamente la carga administrativa.
¿Necesito una firewall si Ollama escucha en 127.0.0.1?
No. Si Ollama está vinculado solo a 127.0.0.1, el servicio no es accesible desde la red. Una regla de firewall para el puerto 11434 no es necesaria en este caso. Sin embargo, la firewall protege otros servicios en tu servidor que escuchan hacia el exterior.
¿Cómo pruebo si mis reglas de firewall funcionan?
Usa curl o nc desde otro dispositivo para verificar si el puerto es accesible. Un timeout o una conexión rechazada indica que la firewall está bloqueando el tráfico. Una respuesta exitosa confirma que la regla está activa.
nc -zv 192.168.1.10 11434
¿Qué sucede si desactivo ufw?
sudo ufw disable elimina todas las reglas activas del kernel y no bloquea más tráfico. Las reglas permanecen guardadas en la configuración y se restauran cuando vuelves a activar ufw.
¿Puedo usar ufw e iptables simultáneamente?
Sí, pero con cuidado. ufw genera reglas de iptables, y las reglas manuales de iptables pueden entrar en conflicto con ellas. Si usas ambas, verifica la cadena completa de reglas con iptables -L -n -v para asegurar que no haya reglas contradictorias.
¿Cómo aseguro Ollama para acceso remoto a través de Internet?
No abras el puerto 11434 en el router. Usa una VPN como Tailscale, que establece un túnel cifrado entre tu dispositivo y el servidor. El puerto permanece invisible hacia el exterior, y solo los participantes VPN autenticados pueden acceder.
¿Por qué mi regla de ufw para Ollama no funciona?
Si Ollama corre en Docker, Docker puede eludir las reglas de ufw porque inserta sus propias reglas de iptables para mapeos de puertos. Verifica con iptables -L -n -v si Docker ha abierto el puerto directamente, y usa redes Docker en lugar de mapeos de puertos.
¿Debo configurar reglas IPv6 por separado?
Sí con iptables, porque solo maneja IPv4. Debes configurar ip6tables por separado. ufw maneja IPv4 e IPv6 conjuntamente, siempre que la opción IPV6=yes esté establecida en el archivo /etc/default/ufw.
¿Cuál es el costo de operar una firewall?
Ninguno. ufw e iptables son software de código abierto y vienen preinstalados en la mayoría de distribuciones Linux. El único esfuerzo es tu tiempo para la configuración y el mantenimiento.
¿Con qué frecuencia debo revisar mis reglas de firewall?
Cada pocas semanas o después de cualquier cambio en tus servicios. Elimina reglas para servicios que ya no usas y verifica que nuevos servicios no hayan abierto puertos accidentalmente.
Fuentes
- Ubuntu Documentation, Uncomplicated Firewall
- Ollama Documentation, Configuration and Environment Variables
- Netfilter Project, iptables Documentation
- Tailscale Documentation, Access Controls


