Por fin entendí el túnel de Cloudflare Zero Trust
(david.coffee)- Explica la estructura para conectar redes privadas y controlar el acceso a servicios con Cloudflare Zero Trust y WARP, sin problemas de NAT ni firewall
- Con el túnel Argo, es posible exponer una red privada o un servicio local mediante un dominio público, o bien crear una red privada accesible solo cuando hay conexión con WARP
- Tailscale es rápido porque se basa en P2P, pero tiene limitaciones en entornos NAT; Cloudflare, en cambio, enruta todo el tráfico a través de la red edge, lo que brinda una conexión estable
- Cloudflared se encarga de crear túneles, y el cliente WARP de la conexión de red y la aplicación de políticas; con Tunnels, Routes y Targets se configura el flujo de tráfico y el control de acceso
- Se puede construir un entorno de red seguro con Access Policy detalladas, usando inicio de sesión por correo electrónico o GitHub, y omitiendo o restringiendo el proceso de login según si existe conexión WARP
Resumen de Cloudflare Zero Trust y WARP
- Empezó a aprender Cloudflare Zero Trust + WARP después de que fallara la traversía NAT de Tailscale
- Con los túneles de Zero Trust se pueden aprovechar varias funciones: conectar redes privadas, publicar servicios, construir redes con IP privadas y exponer temporalmente servicios locales
- Todo el tráfico se transmite por la red de Cloudflare sin problemas de NAT, y con políticas de acceso granulares es posible controlar el acceso entre usuarios, bots y servidores
- Para conexiones SSH, ofrece inicio de sesión basado en autenticación de Zero Trust sin necesidad de puertos públicos
Cloudflare Zero Trust vs Tailscale
- Tailscale intenta establecer conexiones P2P sorteando NAT y firewalls, y si no es posible usa un servidor de retransmisión
- En Cloudflare, salvo Warp-to-Warp, todo el tráfico pasa por los servidores edge de Cloudflare, así que no hay problemas de NAT, aunque sí aparece algo de latencia
Diferencia entre Cloudflared y WARP
- Cliente WARP: herramienta que conecta el cliente a la red de Cloudflare y aplica políticas
- Normalmente se ejecuta en el cliente, aunque también puede usarse en servidores
- Soporta conexiones P2P mediante enrutamiento Warp-to-Warp
- Cloudflared: herramienta que crea túneles y los agrega a la red Zero Trust
- Se ejecuta en el servidor para ofrecer un punto de entrada a la red
- Puede conectarse a otros recursos de Zero Trust con el comando
cloudflared access - Permite crear túneles de un solo uso para pruebas
Estructura de Tunnels, Routes y Targets
- Tunnels: puntos de salida de tráfico desplegados con
cloudflared- Ejemplo: instalarlo en un equipo siempre encendido dentro de la red doméstica (192.168.1.1/24)
- En el archivo de configuración (
/etc/cloudflared/config.yml) se define a dónde enrutar cuando llega una solicitud - Ejemplo:
gitlab.widgetcorp.tech→localhost:80,gitlab-ssh→localhost:22
- Ejemplo de exposición pública:
homeassistant.mydomain.com→ se enruta a192.168.1.3- Si en Cloudflare DNS se define un
CNAMEhacia la dirección del túnel, se puede acceder sin WARP
- Routes: definen a qué túnel enviar un rango IP específico
- Ejemplo: toda la red
192.168.1.1/24o una sola IP192.168.1.3/32 - Cuando hay conexión WARP, las solicitudes a esas IP se envían al túnel a través de la red de Cloudflare
- También es posible enrutar IP virtuales inexistentes, por ejemplo
10.128.1.1
- Ejemplo: toda la red
- Targets: definen la unidad de infraestructura que se va a proteger
- Ejemplo:
homeassistant.mydomain.com→192.168.1.3/32 - Se pueden asignar políticas de acceso al destino para permitir acceso solo a usuarios específicos
- Ejemplo:
Access Policies: control de acceso
- Después de configurar túneles, rutas y targets, los permisos de acceso se definen con Access Policy
- Componentes de la política
- Include: condiciones para permitir acceso (OR)
- Require: condiciones que deben cumplirse obligatoriamente (AND)
- Action: Allow / Deny / Bypass / Service Auth
- Ejemplo 1 – control de acceso basado en correo electrónico
- Solo se permite el acceso a una dirección de correo específica
- También se puede restringir la autenticación usando inicio de sesión con GitHub
- Ejemplo 2 – omitir el login cuando hay conexión WARP
- Usando el selector de Gateway, se puede omitir la pantalla de login cuando existe conexión Zero Trust WARP
- Si no hay conexión WARP, se exige inicio de sesión con GitHub
Despliegue y registro del cliente WARP
- Configuración de la política de registro en Settings → Warp Client
- Se puede permitir el registro solo con autenticación de GitHub y ciertos correos electrónicos
- Si se configura un ID de autenticación de WARP, se puede usar el selector de Gateway
- En Profile Settings se define el comportamiento del cliente
- Se pueden configurar protocolo (MASQUE/WireGuard), modo de servicio, IP excluidas del enrutamiento, etc.
- También es posible instalar automáticamente la CA de Cloudflare, asignar una IP CGNAT única y configurar Device Posture
- Después de iniciar sesión en el cliente WARP, se completa la conexión a la red Zero Trust
- A partir de ahí, las solicitudes a
192.168.1.3se enrutan por el túnel
- A partir de ahí, las solicitudes a
Resumen del resultado de la implementación
- Se registró el cliente WARP con políticas de login basadas en GitHub y correo electrónico
- El túnel dentro de la red privada envía las solicitudes a
homeassistant.mydomain.comhacia192.168.1.3 - El tráfico a
192.168.1.3solo puede accederse por el túnel cuando existe conexión WARP - Se ofrecen dos métodos: acceso público basado en DNS y acceso privado basado en WARP
- Cuando hay conexión WARP se omite el login; sin conexión, se exige autenticación con GitHub
Temas adicionales que no se cubrieron
- Enrutamiento Warp-to-Warp
- Creación de IP privadas internas exclusivas de Zero Trust
- Configuración de políticas de autenticación SSH
- Tipos de aplicaciones distintos de Self-Hosted
No hay información adicional en el original
1 comentarios
Opiniones de Hacker News
Cloudflare actúa como punto de terminación TLS, así que tiene desventajas para uso personal
Con Tailscale Funnel, el certificado se instala directamente en mi endpoint, pero Cloudflare descifra el tráfico en medio y luego lo vuelve a cifrar
No sé bien cuál es el nivel de privacidad de la red personal de WARP, pero creo que al tunelizar tráfico de Internet hay una gran pérdida de privacidad
Además, una arquitectura de conexión P2P + fallback por relay puede funcionar sin intermediación de terceros, así que me parece mucho más deseable
Usa la máquina de un amigo como exit node basada en WebRTC, y solo soporta P2P, sin servidores TURN/relay
La tasa de éxito de conexión es baja según el entorno NAT, pero como el tráfico no pasa por servidores de terceros, la garantía de privacidad es clara
Se puede armar algo parecido con Caddy, pero igual hace falta port forwarding
Su ventaja es el cifrado de extremo a extremo y el buen rendimiento y confiabilidad gracias a más de 100 PoP
Como solo los peers participantes exponen endpoints, tiene ventajas en seguridad y privacidad
Puedes self-hostearlo o usar el servicio oficial
Yo uso Netbird en casa y para uso personal
Lo instalé en un Synology NAS y en todas las laptops, desktops y móviles de la familia, y es muy cómodo para usarlo como escritorio remoto dentro de un entorno Tmux
Dejé de leer en la frase “todo el tráfico pasa por la red de Cloudflare”
Hyprspace ha logrado atravesar todos los NAT con los que me he topado, y funciona bien sin infraestructura de una gran empresa
El texto se siente como una guía de configuración realmente excelente
Cloudflare incluso podría documentarlo y usarlo como guía oficial
Leí un post de alguien que decía que aprendió Cloudflare Zero Trust + Warp porque se frustró cuando Tailscale no lograba establecer conexiones P2P en entornos NAT
Pero Cloudflare ni siquiera intenta P2P desde el principio, así que al final lo que hace es cambiarse al modelo de confianza de Cloudflare
Cuesta entender la motivación, pero el texto en sí está bien organizado
Nuestra empresa también es totalmente remota, y el rendimiento mejoró después de pasar de Tailscale a Cloudflare
Si se mantiene, la diferencia en el modelo de confianza no es tan grande, pero Cloudflare destaca por el rendimiento del relay, así que tiene ventaja en velocidad
Aun así, la capacidad de NAT hole punching de Tailscale es muy buena, así que prefiero conexión directa cuando se puede
Estoy usando tuns.sh para exponer servicios personales
Me gusta que, al estar basado en túneles SSH, se puede usar de inmediato sin instalación
Tanto el artículo como los comentarios fueron útiles
Eso sí, las imágenes del texto están rotas y dan error 404 — por ejemplo: targets-config-screen.png
Me alegra por fin ver críticas al tema de oro de CF
Creo que hace falta una discusión que señale los problemas del modelo Zero Trust
Es fatal que con una cuenta gratuita de Cloudflare no se pueda operar un servidor Plex
Los términos relacionados se pueden revisar aquí
Yo uso Emby y Jellyfin con amigos sobre IPv6 sin problemas
A diferencia del tráfico web simple, una sola película genera costos de ancho de banda cientos de veces mayores
Este método me sirvió porque en la laptop de trabajo de mi novia no se puede instalar Tailscale
Me queda la duda de si usar Cloudflare no es vendor lock-in
Al menos creo que Tailscale no tiene ese tipo de dependencia
Pensaba que era un proyecto open source, pero no lo es