Cloudflare Zero Trust: Acceso Seguro a Aplicaciones Internas
Las VPN tradicionales fueron disenadas para una epoca donde los empleados trabajaban desde una oficina fija y accedian a recursos en un datacenter local. En el mundo actual de trabajo remoto, aplicaciones en la nube y amenazas sofisticadas, el modelo de “confiar en todo dentro de la red” es insuficiente. Cloudflare Zero Trust reemplaza la VPN con un enfoque donde cada solicitud de acceso se verifica individualmente, sin importar desde donde se origina. Esta guia cubre la configuracion completa para proteger aplicaciones web internas.
Fundamentos de Zero Trust
El modelo Zero Trust se basa en el principio de “nunca confiar, siempre verificar”. En lugar de otorgar acceso amplio a toda la red corporativa, Zero Trust evalua cada solicitud de acceso considerando multiples factores: la identidad verificada del usuario, la postura de seguridad del dispositivo, la ubicacion geografica y el contexto de la solicitud.
Cloudflare Zero Trust se compone de varios servicios integrados. Cloudflare Access actua como un reverse proxy de autenticacion frente a tus aplicaciones, verificando la identidad antes de permitir el acceso. Cloudflare Tunnels establece conexiones seguras entre tus servidores y la red de Cloudflare sin necesidad de abrir puertos entrantes. Cloudflare Gateway filtra el trafico DNS y HTTP para proteger a los usuarios de amenazas en Internet.
La ventaja principal sobre una VPN es la granularidad del control. Un usuario puede tener acceso al panel de administracion pero no al servidor de base de datos, acceso durante horario laboral pero no en fines de semana, o acceso solo desde dispositivos corporativos con antivirus actualizado.
Configuracion de Cloudflare Tunnels
Cloudflare Tunnels elimina la necesidad de exponer puertos publicos en tu servidor. El proceso cloudflared establece conexiones salientes hacia la red de Cloudflare, y todo el trafico hacia tu aplicacion se enruta a traves de estas conexiones cifradas.
# Instalar cloudflared
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
# Autenticar con Cloudflare
cloudflared tunnel login
# Crear un nuevo tunnel
cloudflared tunnel create app-interna
# El comando anterior genera un archivo de credenciales en ~/.cloudflared/
Configura el archivo de enrutamiento del tunnel para dirigir el trafico al servicio local:
# ~/.cloudflared/config.yml
tunnel: app-interna
credentials-file: /home/usuario/.cloudflared/<TUNNEL_ID>.json
ingress:
- hostname: app.miempresa.com
service: http://localhost:8080
- hostname: grafana.miempresa.com
service: http://localhost:3000
- service: http_status:404
Registra el DNS y ejecuta el tunnel como servicio del sistema:
# Crear registro DNS automaticamente
cloudflared tunnel route dns app-interna app.miempresa.com
# Instalar como servicio de systemd
sudo cloudflared service install
sudo systemctl enable --now cloudflared
Con esta configuracion, tu aplicacion en localhost:8080 es accesible en app.miempresa.com a traves de la red de Cloudflare, sin ningun puerto abierto en tu firewall. Cloudflared mantiene multiples conexiones persistentes para alta disponibilidad.
Politicas de Acceso y Autenticacion
Las politicas de acceso definen quien puede acceder a cada aplicacion protegida. Primero configura al menos un proveedor de identidad en el dashboard de Cloudflare Zero Trust bajo Settings > Authentication > Login methods.
Los proveedores soportados incluyen Google Workspace, Microsoft Azure AD, Okta, GitHub y autenticacion por one-time PIN via email. Puedes configurar multiples proveedores simultaneamente para que los usuarios elijan como autenticarse.
Para crear una politica de acceso, navega a Access > Applications > Add an application y selecciona Self-hosted. Configura el dominio de la aplicacion (por ejemplo, app.miempresa.com) y define las reglas de acceso:
- Allow: usuarios con email del dominio
@miempresa.com - Allow: miembros del grupo “Ingenieria” en Azure AD
- Block: accesos desde paises fuera de la lista permitida
- Bypass: rangos de IP de la oficina para acceso sin autenticacion adicional
Las politicas se evaluan en orden y la primera coincidencia determina la accion. Esto permite crear reglas granulares como permitir acceso a administradores desde cualquier ubicacion pero restringir a otros usuarios a paises especificos.
Verificacion de Postura de Dispositivos
Para una seguridad mas completa, Cloudflare Zero Trust puede verificar la postura de seguridad del dispositivo antes de otorgar acceso. Esto requiere que los usuarios instalen el cliente Cloudflare WARP en sus dispositivos.
Las verificaciones de postura incluyen: presencia de software antivirus o EDR activo, version minima del sistema operativo, cifrado de disco habilitado, firewall del sistema activo, y que el dispositivo este registrado en el directorio corporativo. Estas verificaciones se configuran en Settings > WARP Client > Device posture y se agregan como condiciones en las politicas de acceso.
Por ejemplo, puedes crear una politica que permita acceso a la aplicacion solo si el dispositivo tiene Windows 11 o macOS 14+, tiene CrowdStrike Falcon activo y el disco esta cifrado con BitLocker o FileVault. Si alguna condicion no se cumple, el acceso se deniega y el usuario recibe un mensaje explicando que requisitos debe cumplir.
Esta combinacion de verificacion de identidad, contexto de red y postura de dispositivo proporciona una capa de seguridad significativamente superior a una VPN tradicional, que solo verifica credenciales al momento de la conexion.