Saltar al contenido principal

Conectar y proteger una nueva aplicación

Tarea

Conectar una nueva aplicación y definir el acceso

Por qué

Muchas empresas siguen manteniendo aplicaciones self hosted, ya sea en sus propios servidores físicos en datacenters o en máquinas virtuales en hyperscalers de nube como AWS, Azure o Google Cloud. Estas aplicaciones están diseñadas para ser accedidas únicamente por empleados y otros usuarios autorizados, y en el pasado, mediante appliances VPN heredados de empresas como Cisco, Fortinet, Palo Alto y otras. Sin embargo, con plataformas SASE modernas como Cloudflare, podemos ofrecer soluciones mucho más escalables, seguras y fáciles de usar para el acceso remoto a aplicaciones self hosted.

Ya tenemos acceso a un sitio web de intranet self hosted; ahora vamos a ver lo fácil que es añadir otra aplicación, una herramienta de administración de bases de datos. A diferencia de la intranet, que se puede acceder desde cualquier lugar, en cualquier dispositivo y por cualquier empleado, la herramienta de administración de bases de datos requiere controles de acceso y seguridad más estrictos.

Pasos

Crear la política de acceso

Antes de exponer el acceso a la herramienta de administración de bases de datos, definamos la política de acceso para ella.

  • En la pestaña del dashboard de Cloudflare, ve a Access controls > Policies y haz clic en Add a policy
  • Nombra la política Secure IT Admins y deja el Action como allow
  • Ahora añadimos reglas para definir a quién se aplicará esta política.
    • En la sección Include, selecciona el desplegable Selector y elige SAML Groups
      • Attribute name = User Groups
      • Attribute value = itadmins
    • Esto define a quién se aplicará la regla; ahora definamos algunos requisitos que deben cumplirse para que esta política se aplique. Selecciona el enlace Add require en la sección Add rules para crear una nueva regla de tipo require.
    • En el desplegable selector, elige Gateway
    • Añade otra regla require haciendo clic de nuevo en Add require. Esta vez elige OS Version y selecciona Latest version of Windows como valor.
    • Por último, añade otra regla require y esta vez selecciona Firewall y elige el valor Windows firewall enabled
    • Baja hasta Additional settings y activa Purpose justification
    • Por último, haz clic en Save

Crear la conectividad hacia la aplicación

Entonces, ¿dónde se ejecuta la aplicación de administración de bases de datos y cómo exponemos el acceso a ella?

  • Vuelve a la pestaña de https://labs.cloudflare.com y haz clic en Ubuntu origin.
  • Eleva tus privilegios a root escribiendo sudo su - y ahora puedes ejecutar docker ps para ver que tenemos varios contenedores en ejecución. Puedes ver la intranet ejecutándose en http://localhost:8000 y también tenemos una herramienta de administración de bases de datos, pgadmin, ejecutándose en http://localhost:3004.

docker ps output showing running containers

  • Vamos a exponer la herramienta de administración de bases de datos a través del tunnel que ya tenemos hacia este servidor.
    • En la pestaña del dashboard de Cloudflare, ve a Networks > Connectors, selecciona y edita Application Server
    • Cambia a la pestaña Published application routes y haz clic en Add a published application route
    • Dale el nombre dbadmin para la parte del Subdomain del hostname, y selecciona tu único dominio.
    • Para el servicio, elige HTTP como tipo y la URL debe ser localhost:3004. Esto enruta todo el tráfico para el hostname dbadmin.grateful-terminal.sxpdemo.com hacia el contenedor docker que escucha tráfico HTTP en el puerto 3004.
    • Haz clic en Save

Añadir los controles de acceso

Ya tenemos una política de acceso definida para nuestros IT admins, y hemos expuesto el acceso a la aplicación. Ahora toca conectar ambas cosas.

  • De vuelta en el dashboard de Cloudflare, ve a Access controls > Applications y haz clic en Add an application.
  • Se te presentará qué tipo de aplicación quieres añadir. Soportamos integrar aplicaciones SaaS, redes completas, o en este caso, una aplicación self hosted. Así que elige Self-hosted.
  • Para el nombre de la aplicación, llámala Database Administration
  • Haz clic en Add public hostname e introduce la misma información que coincide con lo que expusimos a través del tunnel.
    • Subdomain = dbadmin
    • Domain = grateful-terminal.sxpdemo.com
  • Baja hasta Access policies y haz clic en Select existing policies. Elige Secure IT admins, que acabas de crear.
  • En la sección Login methods, desactiva Accept all available identity providers y deselecciona la opción One-time PIN. Luego activa la opción Instant Auth. Esto asegura que solo los usuarios autenticados en el IDP de la empresa puedan acceder a esta aplicación, sin importar qué política se aplique.
  • Haz clic en Next, deja el resto de configuraciones y haz clic en Next de nuevo, sin cambiar nada, y finalmente pulsa Save

Acceder a la nueva aplicación de administración de bases de datos

Ahora que hemos configurado el acceso, probemos esto como nuestro usuario IT admin.

  • Primero probemos el acceso sin usar nuestro dispositivo conectado. Vuelve a la pestaña del navegador que se ejecuta en tu máquina local y ve a https://dbadmin.grateful-terminal.sxpdemo.com. Verás que se te deniega el acceso. Esto es porque la única política en esta aplicación requiere que la solicitud provenga de un dispositivo o red conectada a Cloudflare, es decir, donde Cloudflare sea el gateway.
  • Ahora vuelve al escritorio Windows 11 que se ejecuta en labs.cloudflare.com. En el navegador, ve a la misma URL; puede que no se te pida autenticarte porque ya lo has hecho antes. Pero se te presentará el formulario de justificación. Escribe cualquier cosa y haz clic en Submit. Ahora tendrás acceso a la herramienta de administración de bases de datos.
  • La política también está comprobando la versión del sistema operativo de tu dispositivo y si el firewall está activo. Podemos verlo desde la entrada de registro del dispositivo en Cloudflare.
    • Vuelve a la pestaña del dashboard de Cloudflare y ve a Team & Resources > Devices
    • Haz clic en el único dispositivo de la lista y selecciona View details. Este es el escritorio Windows que conectamos.

Haz clic en la pestaña Posture checks, y verás que el device agent ha reportado que la versión del escritorio Windows es superior a 10.0.0 y que el firewall local está activo.