
ziti v1.5.17
Plataforma de redes de confianza cero que hace invisibles los servicios mediante identidad criptográfica, acceso basado en políticas y cifrado de extremo a extremo. Reemplaza las VPN, protege IoT y conecta entornos multinube sin puertos abiertos.
OpenZiti
OpenZiti es una plataforma de redes de confianza cero de código abierto que hace que los servicios de red sean invisibles para los usuarios no autorizados. Cada conexión, ya sea de un usuario, un servicio, un dispositivo o una carga de trabajo, se autentica con identidad criptográfica, se autoriza mediante políticas y se cifra de extremo a extremo.
OpenZiti funciona tanto con aplicaciones existentes (usando tunelizadores ligeros sin necesidad de cambios en el código) como con nuevas aplicaciones (usando SDKs incrustados para el modelo de confianza cero más sólido). Esto lo hace práctico tanto para entornos existentes como para desarrollo desde cero.
Creado y patrocinado por NetFoundry. Licenciado bajo Apache 2.0.
Tabla de Contenidos
- Casos de Uso
- Capacidades Clave
- Tres Modelos de Despliegue
- Primeros Pasos
- Arquitectura
- Confianza Cero, Servicios Oscuros y Cifrado de Extremo a Extremo
- SDKs
- Comunidad y Soporte
- Contribuir
- Adoptantes
- Solución Gestionada
Casos de Uso
OpenZiti te permite extender la confianza cero a cualquier lugar para cualquier caso de uso, incluyendo cargas de trabajo y flujos de trabajo no humanos, a través de múltiples redes y terceros. A continuación se presentan algunos casos de uso comunes.
Reemplazar VPNs
Proporciona acceso seguro a servicios internos sin clientes VPN, dolores de cabeza por tunelización dividida o cuellos de botella de concentradores. Cada servicio está autorizado individualmente. Sin el problema de "una vez que entras, puedes llegar a todo".
APIs y Servicios Oscuros
Haz que las APIs y servicios sean invisibles para Internet. Cero puertos de escucha significa cero superficie de ataque. Los clientes autorizados se conectan a través de OpenZiti; los demás no ven nada.
IoT e Identidad No Humana
Dale a cada dispositivo, sensor y máquina una identidad criptográfica única. El modelo de identidad de OpenZiti funciona para cargas de trabajo no humanas igual que para usuarios humanos, proporcionando una autenticación sólida para las conexiones máquina a máquina que constituyen la mayoría del tráfico moderno de red.
Cargas de Trabajo de Confianza Cero
Asegura la comunicación entre cargas de trabajo a través de nubes y entornos. Los servicios se autentican mutuamente con identidad criptográfica, no con ubicación de red. Sin secretos compartidos, listas de permitidos de IPs ni autoridad ambiental.
IA Agente
Asegura la comunicación agente-servicio y agente-agente con identidad criptográfica para cada participante de IA. Los servidores MCP, los puntos finales de herramientas y los LLMs privados permanecen oscuros, sin puertos de escucha ni URLs públicas. Los agentes se autentican con identidades únicas y sólidas y solo alcanzan los recursos que la política permite, por lo que los flujos de trabajo autónomos obtienen el acceso que necesitan sin autoridad ambiental sobre todo lo demás.
Conectividad Multinube e Híbrida
Una red superpuesta a través de AWS, Azure, GCP, centros de datos on-premise y ubicaciones periféricas. Sin herramientas de red específicas de cada nube, túneles VPN entre entornos ni acuerdos de interconexión complejos.
Acceso a Servicios Autogestionados
Accede a servicios de laboratorio local o autogestionados como Nextcloud, Home Assistant, servidores multimedia y entornos de desarrollo desde cualquier lugar. Sin puertos de router abiertos, DNS dinámico ni dependencia de servicios de túnel de terceros. Tú controlas toda la ruta.
Kubernetes y Servicios entre Clústeres
Conecta servicios entre clústeres de Kubernetes sin reglas de entrada complejas, sidecars de malla de servicios ni túneles VPN entre clústeres. Funciona más allá de Kubernetes, permitiendo conectar servicios de k8s con VMs, metal desnudo, dispositivos IoT o cualquier otra cosa en la superposición.
Capacidades Clave
| Capacidad | Descripción |
|---|---|
| Servicios Oscuros | Los servicios tienen cero puertos de escucha. Invisibles para escáneres y usuarios no autorizados. |
| Identidad para Todo | Identidad criptográfica para usuarios, servicios, dispositivos y cargas de trabajo no humanas (NHI). No basada en IP. |
| Operaciones Basadas en Identidad | Gestiona redes mediante identidades y políticas en lugar de direcciones IP y reglas de firewall. Simplifica las operaciones y elimina la configuración manual de red. |
| Cifrado de Extremo a Extremo | Datos cifrados desde el origen hasta el destino usando libsodium. mTLS para autenticación. Confianza cero en la ruta de red. |
| Sin VPNs ni Puertos Abiertos | Las conexiones se enrutan a través de la superposición de OpenZiti. Sin clientes VPN, reglas de firewall de entrada ni puertos expuestos. |
| Enrutamiento Inteligente | Malla de tela con selección inteligente de ruta para rendimiento y confiabilidad. |
| Despliegue Flexible | Incrusta SDKs, usa tunelizadores o despliega a nivel de red. Combina y combina por servicio. |
| Acceso Basado en Políticas | Políticas detalladas basadas en identidad. El acceso se puede revocar en tiempo real, cerrando conexiones activas. |
| APIs REST Programables | API de gestión completa para automatización e integración. Consola de administración web incluida. |
| Totalmente Autogestionable | Ejecuta toda la plataforma en tu infraestructura. Sin dependencias de proveedores. Código abierto, Apache 2.0. |
Tres Modelos de Despliegue
OpenZiti soporta tres modelos de confianza cero. Mezclarlos en una sola red y migrar entre ellos con el tiempo.
Acceso de Red
Despliega un router de borde de OpenZiti en una zona de red de confianza. El tráfico entra en la superposición desde clientes autenticados y sale a la red privada donde se ejecutan los servicios.
- Cambios en el código: Ninguno
- Agente en el host del servicio: Ninguno
- Modelo de seguridad: Acceso basado en identidad en el límite de la red. Similar a una puerta de enlace, pero con identidad criptográfica y transporte cifrado.
Acceso de Host
Ejecuta un tunelizador de OpenZiti en el mismo host que tu servicio. El tunelizador maneja la identidad, autenticación y cifrado. El servicio solo necesita aceptar conexiones desde localhost.
- Cambios en el código: Ninguno
- Configuración: Instalar tunelizador, inscribir identidad
- Modelo de seguridad: Límite de confianza en el sistema operativo del host. El servicio es oscuro para la red y solo se puede alcanzar a través del tunelizador.
Acceso de Aplicación (Más Robusto)
Incrusta un SDK de OpenZiti directamente en las aplicaciones cliente y/o servidor. La propia aplicación posee la identidad criptográfica y cifra el tráfico en proceso. No existen puertos de escucha, ni siquiera en localhost.
- Cambios en el código: Sí
- Modelo de seguridad: Más robusto. Cifrado de extremo a extremo en proceso. Totalmente oscuro. Identidad en la capa de aplicación, no en la red ni en el host.
Por dónde empezar: Muchos equipos comienzan con Acceso de Host (tunelizadores) para servicios existentes. Se despliega en minutos sin cambios de código. Para nuevo desarrollo o cargas de trabajo de alta seguridad, Acceso de Aplicación (SDKs) proporciona la postura de confianza cero más sólida.
Primeros Pasos
Los siguientes Inicios Rápidos muestran cómo configurar una red OpenZiti local para desarrollo, pruebas y aprendizaje. Para despliegues en producción, consulta la documentación del producto en https://netfoundry.io/docs/openziti/category/deployments/.
Inicio Rápido con Docker
La forma más rápida de obtener una red OpenZiti local en funcionamiento:
wget https://get.openziti.io/dock/all-in-one/compose.yml
docker compose up
Esto inicia un controlador, un router de borde y la consola Ziti en una sola pila de compose. La consola está disponible en https://localhost:1280/zac/. Desde aquí puedes crear identidades, definir servicios y configurar políticas de acceso.
Consulta el inicio rápido Docker all-in-one para obtener detalles completos, incluyendo opciones de almacenamiento, variables de entorno y uso de CLI.
Inicio Rápido con la CLI
Descarga el binario ziti más reciente desde GitHub Releases, luego:
ziti edge quickstart
Esto levanta una red de desarrollo local: controlador, router y una identidad de administrador predeterminada. Ideal para pruebas y aprendizaje.
Para agregar la Consola de Administración Ziti (ZAC) a un controlador en ejecución:
ziti ops console download --location /opt/openziti/console
ziti ops console configure /path/to/controller.yml --all --location /opt/openziti/console
# reinicia el controlador, luego abre https://<dirección-del-controlador>/zac/
O sirve ZAC localmente sin tocar la configuración del controlador:
ziti run console --version latest
# abre https://127.0.0.1:8443. apúntalo a cualquier controlador desde el navegador
Aprende Más
| Recurso | Descripción |
|---|---|
| Introducción | Conceptos básicos y cómo funciona OpenZiti |
| Guías de Inicio Rápido | Configuración paso a paso para entornos locales, Docker y alojados |
| Modelos de Confianza Cero | Inmersión profunda en los tres modelos de despliegue |
| Referencia de Tunelizadores | Comienza sin cambios de código |
Arquitectura
La red superpuesta de OpenZiti se ejecuta sobre infraestructura existente: cualquier red IP, cualquier nube, cualquier combinación. Los componentes principales:
Controlador
El controlador es el plano de gestión. Maneja:
- Gestión de identidades: emite y verifica identidades criptográficas (certificados x509) para cada participante en la red
- Aplicación de políticas: define qué identidades pueden acceder a qué servicios, a través de qué routers de borde
- Estado de la red: rastrea routers, servicios y topología; proporciona una API REST y una consola de administración web para la gestión
Routers de Borde
Los routers de borde forman el plano de datos, una malla que transporta tráfico cifrado entre los puntos finales.
- Routers públicos son accesibles desde Internet, sirviendo como puntos de entrada a la red
- Routers privados ("oscuros") se despliegan dentro de redes privadas con solo conexiones salientes
Los routers se descubren automáticamente, forman conexiones de malla y utilizan enrutamiento inteligente para seleccionar la mejor ruta según latencia, rendimiento y costo.
Puntos Finales: SDKs y Tunelizadores
Los puntos finales son cómo las aplicaciones y los usuarios se conectan a la red OpenZiti:
-
SDKs (Go, C, Python, Node.js, Java, Swift, C#): incrustan confianza cero directamente en tu aplicación. La aplicación misma posee la identidad y maneja el cifrado. Sin sidecar, sin agente, sin puertos de escucha.
-
Tunelizadores (Linux, Windows, macOS, iOS, Android): aplicaciones ligeras que proporcionan conectividad OpenZiti a software no modificado. El tráfico se intercepta y se enruta a través de la superposición de forma transparente. No se requieren cambios de código.
Confianza Cero, Servicios Oscuros y Cifrado de Extremo a Extremo
Confianza Cero y Segmentación de Aplicaciones
Cada participante (por ejemplo, usuario, servicio, dispositivo, carga de trabajo) en una red OpenZiti lleva una identidad criptográfica única respaldada por certificados x509. Cuando se intenta una conexión, OpenZiti verifica:
- La identidad es válida y está registrada
- Existe una política que otorga a esa identidad acceso al servicio solicitado
- La conexión se realiza a través de un router de borde autorizado
Si falla alguna verificación, la conexión es denegada. Si el acceso se revoca posteriormente, las conexiones activas se terminan inmediatamente. No hay confianza implícita basada en la ubicación de la red. Estar en la misma LAN no otorga más acceso que estar a través de Internet, a menos que la política lo permita explícitamente.
Este modelo proporciona segmentación de aplicaciones de confianza cero: cada servicio está autorizado de forma independiente. Obtener acceso a un servicio no otorga acceso a ningún otro.
Servicios Oscuros
Un servicio "oscuro" no tiene puertos abiertos. No escucha en ninguna interfaz de red para conexiones entrantes. En cambio, el servicio (o un tunelizador junto a él) realiza una conexión saliente a un router de borde de OpenZiti y se registra. Los clientes solo lo alcanzan a través de la tela de OpenZiti, después de la autenticación y autorización.
Lo que esto significa en la práctica:
- Los escaneos de puertos no encuentran nada: no hay puertos de escucha que descubrir
- Sin superficie de ataque: no se puede explotar lo que no se puede alcanzar
- Resistencia a DDoS: no hay un punto final público que inundar
- Invisible para usuarios no autorizados: solo las identidades con una política coincidente saben siquiera que el servicio existe
- Compatibilidad con NAT y firewalls: todas las conexiones son salientes, por lo que CG-NAT, doble NAT y firewalls restrictivos no son un problema
Los routers de borde también pueden ser oscuros. Los routers privados realizan solo conexiones salientes, por lo que no se necesitan reglas de firewall de entrada en tu red privada.
Cifrado de Extremo a Extremo
Con los SDKs de OpenZiti, el tráfico se cifra desde la aplicación emisora hasta la aplicación receptora utilizando libsodium para la ruta de datos y mTLS para la autenticación de identidad. Incluso si los routers o las redes intermedias se ven comprometidos, el tráfico no se puede descifrar ni alterar.
Con los tunelizadores, el cifrado cubre la ruta desde el tunelizador hasta el tunelizador (o desde el tunelizador hasta el SDK), proporcionando cifrado máquina a máquina sin cambios en la aplicación.
SDKs
Incrusta redes de confianza cero directamente en tus aplicaciones:
| Lenguaje | Repositorio | Notas |
|---|---|---|
| Go | sdk-golang | Utilizado por el propio proyecto OpenZiti |
| C | ziti-sdk-c | Ideal para sistemas embebidos, IoT y casos de uso de alto rendimiento |
| Java / Kotlin | ziti-sdk-jvm | Incluye soporte para Android |
| Swift | ziti-sdk-swift | iOS y macOS |
| Node.js | ziti-sdk-nodejs | |
| C# / .NET | ziti-sdk-csharp | |
| Python | ziti-sdk-py |
Todos los SDKs están listados bajo la organización OpenZiti en GitHub.
Seguridad
OpenZiti es un proyecto centrado en la seguridad. La divulgación responsable de vulnerabilidades nos ayuda a mantener seguros la plataforma y sus usuarios.
Reportar una vulnerabilidad: Si descubres un problema de seguridad, revisa nuestra Política de Divulgación de Vulnerabilidades para obtener detalles completos. Los problemas sensibles deben reportarse a [email protected]. Los problemas no sensibles pueden presentarse como incidencias de GitHub en el repositorio correspondiente. Deberías recibir una respuesta en un plazo de 7 días.
Cómo manejamos las vulnerabilidades: Nuestro Proceso de Respuesta a Incidentes de Seguridad de Producto describe cómo se clasifican, documentan y resuelven las vulnerabilidades reportadas, incluyendo cómo se coordinan los lanzamientos de CVE con las correcciones.
Puerto seguro: OpenZiti y NetFoundry no emprenderán acciones legales contra cualquier persona que investigue y reporte vulnerabilidades de buena fe. Fomentamos la investigación de seguridad y atribuimos los hallazgos reportados a sus informantes en avisos y notas de lanzamiento.
Comunidad y Soporte
OpenZiti tiene una comunidad activa y en crecimiento:
- Foro Discourse: Haz preguntas, comparte proyectos, obtén ayuda de la comunidad y los mantenedores
- YouTube: Tutoriales, demostraciones y análisis profundos
- Blog: Actualizaciones del proyecto y artículos técnicos
- Twitter/X: Noticias y anuncios
Contribuir
El proyecto OpenZiti acepta contribuciones que incluyen código, documentación, informes de errores y comentarios.
Repositorios Clave
| Repositorio | Descripción |
|---|---|
| openziti/ziti | Plataforma principal: controlador, routers, CLI |
| sdk-golang | SDK Go |
| ziti-sdk-c | SDK C |
| ziti-sdk-jvm | SDK Java / Kotlin / Android |
| ziti-sdk-swift | SDK Swift / iOS |
| ziti-sdk-nodejs | SDK Node.js |
| ziti-sdk-csharp | SDK C# |
| ziti-sdk-py | SDK Python |
| ziti-tunnel-sdk-c | Tunelizador Linux y SDK de tunelizador principal |
| ziti-tunnel-apple | Clientes de borde macOS e iOS |
| desktop-edge-win | Cliente de borde de escritorio Windows |
| ziti-doc | Sitio de documentación |
Compilar desde el Código Fuente
Consulta el tutorial de desarrollo local para obtener instrucciones de compilación.
Documentación para Desarrolladores
- Visión General para Desarrolladores
- Desarrollo Local
- Despliegue Local
- PKI del Controlador
- Notas de Lanzamiento
Adoptantes
OpenZiti se utiliza en producción por organizaciones como DeltaSecure (SOC gestionado), Resulticks (automatización de marketing), Chirp Wireless (IoT/telecomunicaciones), GIGO Dev (entornos de desarrollo en la nube), OSMIT (TI gestionada/cumplimiento GDPR), y proyectos de código abierto como zrok y BlueBubbles.
Consulta la lista completa: ADOPTERS.md. ¿Usas OpenZiti? Nos encantaría agregarte: abre una incidencia o envía un PR.
Solución Gestionada
Para redes de confianza cero sin gestionar tu propia infraestructura, NetFoundry proporciona una red OpenZiti completamente gestionada y distribuida globalmente como servicio, con SLAs, soporte empresarial y una malla global de routers de borde.
OpenZiti es desarrollado y publicado como código abierto por NetFoundry, Inc.