Cloudflare Access para proteger servicios internos sin VPN
- cloudflare
- zero trust
- vpn
- seguridad
- infraestructura
Problemas de las VPNs tradicionales para el acceso a servicios internos
Las VPNs se han vendido como la solución universal para proteger el acceso a redes internas. Sin embargo, en la práctica, introducen fricción para el usuario, son un punto único de fallo y, si se comprometen, otorgan acceso a toda la red. No es un modelo de seguridad escalable ni eficiente cuando solo necesitas que un puñado de usuarios accedan a servicios específicos, como paneles internos de empresas.
Para mí, la filosofía de “confiar en nadie, verificar siempre” es la base. Por eso, he migrado el acceso a mis servicios internos, y los de mis clientes, a un modelo Zero Trust usando Cloudflare Access.
Cloudflare Access como alternativa a VPNs para servicios web
Cloudflare Access funciona como una capa de autenticación y autorización delante de tus aplicaciones internas. En lugar de dar acceso a toda una red, solo permite el paso a servicios específicos una vez que el usuario ha verificado su identidad y cumple ciertas políticas. Esto significa que tus aplicaciones nunca están expuestas directamente a internet.
Esto es diferente de un Cloudflare Tunnel para acceder a un VPS, aunque la tecnología subyacente es similar. Con Access, no solo creas el túnel, sino que añades una capa de autenticación gestionada por Cloudflare.
Cómo funciona Cloudflare Access
El proceso es sencillo. Instalas un conector (cloudflared) en tu servidor que establece una conexión saliente a la red de Cloudflare. Este túnel es la única forma en que Cloudflare puede “ver” tu servicio. Luego, configuras en el panel de Access qué usuarios o grupos pueden acceder a qué rutas, y con qué proveedores de identidad (Google Workspace, Okta, GitHub, etc.).
No necesitas abrir puertos en tu firewall ni gestionar certificados SSL para cada servicio. Cloudflare se encarga de todo eso.
Configurando Cloudflare Access en tu VPS
Primero, instala cloudflared en tu servidor. Aquí tienes un ejemplo para Debian/Ubuntu:
sudo apt update
sudo apt install -y lsb-release curl
curl -L https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --dearmor --output /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/cloudflare-warp.list > /dev/null
sudo apt update
sudo apt install -y cloudflared
Una vez instalado, autenticas cloudflared con tu cuenta de Cloudflare y creas un túnel. Esto generará un credential.json y te dará un ID de túnel. Luego, defines el servicio que quieres proteger en el archivo de configuración del túnel (por ejemplo, ~/.cloudflared/config.yml):
tunnel: <TU_TUNNEL_ID>
credentials-file: /root/.cloudflared/<TU_TUNNEL_ID>.json
ingress:
- hostname: mi-servicio-interno.tudominio.com
service: http://localhost:8080 # O la IP interna y puerto de tu servicio
- service: http_status:404
Finalmente, inicias cloudflared como un servicio del sistema.
Ventajas y desventajas de Cloudflare Access
Ventajas:
- Seguridad Zero Trust: Ningún servicio interno está expuesto directamente a internet.
- Acceso simplificado: Los usuarios solo necesitan un navegador para autenticarse.
- Auditoría: Cloudflare registra todos los intentos de acceso y las identidades.
- Sin gestión de VPN: Olvídate de clientes VPN, configuraciones IP y problemas de red.
- Certificados SSL automáticos: Cloudflare gestiona los certificados para tus servicios.
Desventajas:
- Dependencia de Cloudflare: Si Cloudflare tiene una caída o un problema con sus servicios de Access, el acceso a tus aplicaciones se verá afectado.
- Curva de aprendizaje inicial: Configurar
cloudflaredy las políticas en el panel de Cloudflare requiere entender el concepto. - Costo: Access tiene un coste por usuario, aunque suele ser más bajo que mantener una VPN compleja.
Para mí, los beneficios de seguridad y la simplicidad operativa superan con creces las complicaciones. Es una forma robusta de proteger lo que realmente importa.
Si quieres añadir más capas de seguridad a tu infraestructura, te recomiendo revisar cómo configuro iptables en mi VPS para un control granular del tráfico. También es importante tener un plan para la gestión de secretos en software, especialmente cuando trabajas con tokens y API keys como las de Cloudflare. Para proteger interfaces de gestión web, puedes aprender cómo securizar Portainer para que no esté expuesto a internet.
Técnico freelance especializado en desarrollo a medida, automatizaciones con IA y gestión técnica para negocios en España. Más sobre mí →
¿Necesitas que alguien se ocupe de tu web?
Me encargo de que tu web funcione, esté segura y actualizada. Backups, actualizaciones y soporte directo. Planes desde 49 €/mes.