Crea tu Proxy inverso blindado con CloudFlare Zero Trust

Proxy Inverso de CloudFlare. Ultraseguro y compatible con usuarios que están bajo CG-NAT.

Crea tu Proxy inverso blindado con CloudFlare Zero Trust
Regístrate en HDS+
Es gratuito. Ten acceso a todo el contenido.
🔓
Dificultad del tutorial: Media

Cuando queremos acceder a un servicio de forma externa sin la utilización de una VPN de por medio, estamos obligados a la utilización de un Proxy Inverso. Esto tiene como desventaja que expondremos nuestros servicios a Internet. Todos sabemos que cualquier servicio que expongamos, será susceptible de posibles ataques y por lo tanto, fugas de información. Nuestra seguridad y la de nuestros datos puede verse mermada. Como siempre digo, la seguridad absoluta no existe, y menos aún cuando exponemos un servicio al exterior.

En la actualidad existen decenas de soluciones para intentar evitar esto lo máximo posible cuando estamos usando un Proxy Inverso como NPM: GeoIP2, Fail2Ban, Authelia, Authentik, etc. En todos ellos, es necesario un equipo capaz de ejecutar Docker, además de contar con una serie de conocimientos para aprender a configurar y poner en marcha todos ellos.

Authelia: Configuración con 2FA, LDAP, SSO e integración con Nginx Proxy Manager
Guía completa para la instalación y configuración de Authelia en tu NAS. Añade una capa extra de seguridad a tus servicios e intégralo con NPM.

Es por ello que CloudFlare sacó al mercado Zero Trust, una solución muy rápida y sencilla. No se requieren conociminentos ni la instalación de ningún Docker, bueno, sólo uno. Toda la configuración se lleva a cabo a través de su Dashboard.

Con Zero Trust, no necesitas la instalación de Nginx Proxy Manager ni servicios asociados para restringir el acceso a los servicios. ¡Todo se vuelve my fácil!

Además, para todos aquellos usuarios que están bajo CG-NAT por culpa de su operador, y que hasta ahora, no podían levantar un Proxy Inverso, ahora podrán hacerlo gracias a CloudFlare Zero Trust, al no tener que redirigir los puertos 80/443 al exterior.

Este método ha sido posible configurarlo gracias a la inestimable ayuda del compañero Pepebetis.

🚨
NO se recomienda utilizar Zero trust con servicios multimedia como Plex dado al alto tráfico de datos. Puede acarrear a baneo por parte de CloudFlare.

PASO 1 - Añadir tu dominio a CloudFlare

Lo primero que tendremos que tener es nuestro dominio en CloudFlare, para ello en HDS+ tenéis un tutorial detallado en el cual explico como hacerlo.

Cómo utilizar CloudFlare como gestor DNS para el Proxy Inverso de tu NAS
Aumenta la seguridad, privacidad y lleva además todo el control DNS desde un único lugar.

PASO 2 - Configuración inicial de Zero Trust

Una vez ya tenemos nuestro dominio en CloudFlare, nos dirigimos al Dashboard de Zero Trust y rellenamos el formulario inicial para dar de alta el servicio.

Elegiremos el plan gratuito, que en nuestro caso es más que suficiente. Una vez finalizado el proceso obtendremos una dirección con el nombre que hayamos escogido del tipo: xxxx.cloudflareaccess.com


PASO 3 - Creación del túnel y el primer Proxy Inverso

😄
Si estás bajo CG-NAT, este método es 100% compatible. Podrás crear Proxy Inverso a través de CloudFlare.

Lo primero que tendremos que hacer es la creación del túnel que conectará CloudFlare con nuestro NAS / Servidor. Para ello nos dirigimos a: Access ➙ Tunnels.

Hacemos clic sobre Create a tunnel y tras asignarle un nombre, deberemos de instalar un único contenedor vía Docker-run en nuestro NAS.

Para ello nos conectaremos vía SSH y ejecutaremos el comando que nos genera CloudFlare dentro de la pestaña Docker (ver foto 2).

Ahora que ya tenemos el túnel conectado, en el último paso nos dejará añadir nuestro primer Proxy Inverso, dentro de la pestaña Public networks. Para ello:

  1. Si nos fijamos en la tercera imagen, en el campo marcado en verde, deberemos de especificar que subdominio vamos a crear para el Proxy Inverso (al igual que haríamos en NPM).
  2. En la segunda parte, especificaremos en que IP local + puerto está el servicio que queremos asociar a ese Proxy Inverso.
Una vez hecho esto, ya podremos acceder a nuestro primer Proxy Inverso. Sin creación de certificados ni historias. De todo esto, se encarga CloudFlare.
Cuando se crea un Proxy Inverso nuevo a través de Zero Trust, se genera automáticamente un nuevo registro CNAME dentro de las DNS de nuestro dominio en CloudFlare. Por lo tanto, si ya teníamos creado un CNAME con el mismo nombre, deberemos de eliminarlo previamente o dará error.
NPM y ZERO TRUST: Podemos tener NPM corriendo a la vez, no hay problema. Lo único a tener en cuenta que solamente podremos tener un servicio en un sitio u otro, ya que solo se puede generar un CNAME por servicio que apunte o bien a Zero trust o a nuestro NPM.

Para crear más, tendremos que dirigirnos a Access ➙ Tunnels y editar el túnel como muestro en las siguientes capturas e ir añadiendo nuevos Proxy Inverso, tantos como queramos:

Deshabilitar "Proxied" a nuestro Proxy Inverso

Si queremos que nuestro Proxy Inverso no esté bajo la protección de Proxied, tendremos que irnos al Dashboard principal de CloudFlare, entrar en nuestro dominio y dirigirnos a la pestaña DNS. Buscamos el CNAME que nos ha generado Zero Trust hacia ese servicio y deshabilitamos la opción Proxied.


PASO 4 - Blindar tu Proxy Inverso

😀
Esta parte es totalmente opcional. Puede ser que solamente queramos usar CloudFlare como gestor de Proxy Inverso, sin ninguna protección extra.

Ya tenemos nuestros servicios levantados con el Proxy Inverso de CloudFlare, pero ahora toca la parte más interesante, que es la de blindar el acceso a aquellos servicios que nosotros queramos.

Como hacía mención al inicio del artículo, es un engorro tener que instalar NPM + servicios asociados para restringir el acceso, como Authelia o GeoIP2. Pues bien, puedes olvidarte de todo esto. Ahora será mucho más sencillo.

Nos dirigimos a Access ➙ Applications y añadiremos una nueva haciendo clic en Add an application.

Seleccionamos aplicación del tipo Self-hosted.

  1. Punto 1: indicamos el nombre de la aplicación.
  2. Punto 2: especificaremos la duración que tendrán las reglas que vayamos a especificar.
  3. Punto 3: especificamos a que subdominio afectarán estos bloqueos que configuraremos en el siguiente paso.
  1. Punto 1: especificaremos el nombre de esta regla.
  2. Punto 2: escogemos que acción queremos llevar a cabo, si Permitir o Bloquear.
  3. Punto 3: especificaremos la duración que tendrán las reglas de bloqueo que vayamos a especificar en dicho Proxy Inverso. Si por ejemplo especificamos como en la captura superior, una duración de 6 horas, una vez validado el acceso, no tendremos que volver a validarnos en ese tiempo.
  4. Include: Yo he seleccionado que solamente pueda acceder al servicio con mi dirección de email.
  5. Require: Además, he especificado que aunque acceda con mi email, si estoy fuera de España, me bloquee el acceso de todas formas.

En la última parte de la configuración solamente nos faltará especificar los CORS. Para ello habilitaremos las dos opciones que señalo a continuación:

Una vez tenemos la regla creada, nos dirigimos de nuevo a Access ➙ Tunnels y editamos nuestro túnel.

Editamos el Proxy Inverso que queremos que aplique esta regla que acabamos de crear. Habilitamos la restricción haciendo clic en Access y habilitando el Protect with Access. Por último seleccionaremos qué regla queremos aplicar (en caso de haver creado más de una) y aplicamos.

Podemos crear tantas reglas como queramos, y con los atributos que queramos. El utilizado en este tutorial es solamente un ejemplo para que veáis cual es el funcionamiento.

Aplicando MFA para incrementar más aún la seguridad

Si además de proteger el acceso a nuestro servicio con las reglas que hayamos creado, queremos una doble verificación que nos permita acceder, CloudFlare también nos lo permite hacer. Para ello nos vamos a Access ➙ Applications y editamos la aplicación a la cual queremos aplicarlo habilitando las opciones de la imagen inferior.

Ejemplo: El usuario pide autorización con su email al acceder al servicio. Llega el email con el código de verificación. Y después, enviará una segunda autorización a la dirección de email que hayamos especificado a continuación que nos acabará permitiendo el paso o no.

El administrador recibirá un email el cual le va a permitir elegir si le otorga acceso o no. Y además durante cuanto tiempo.

ÚLTIMO PASO: Probando que todo funciona

Una vez hemos creado el Proxy Inverso y aplicado la regla de restricción, probamos a acceder a él y deberíamos ver una pantalla de CloudFlare Access donde nos pedirá un email al cual enviar el código para poder acceder al servicio.

🤚🏼
IMPORTANTE: Únicamente recibirá el email aquellas direcciones que hayamos especificado al crear la regla dentro del apartado INCLUDE.

Después de introducir el código, ya nos redireccionará al servicio en cuestión. En mi ejemplo he añadido el Proxy Inverso del Blog HDS+.

Una vez validado el acceso con mi email, puedo acceder al servicio con normalidad. Pero ojo, si recordáis, he especificado en la regla que además, el acceso solamente sea desde España, por lo que si me conecto por VPN a otro país, mostrará la pantalla de la imagen inferior derecha conforme tengo el acceso prohibido.

Invítame a un café



Más artículos

Cómo aumentar la seguridad de tu sitio Web con NPM añadiendo todos los Security Headers

Cómo aumentar la seguridad de tu sitio Web con NPM añadiendo todos los Security Headers

Blinda tu web añadiendo todas las cabeceras de seguridad en Nginx Proxy Manager. También con la protección de Cloudflare.

Por Joan
Cómo instalar AdGuard Home en Synology

Cómo instalar AdGuard Home en Synology

Guía detallada para instalar AdGuard Home en un NAS Synology. Además, añade un plus de privacidad y déjalo configurado con todos tus dispositivos con un router Asus.

Por Joan
Cómo instalar y configurar Eufy Cam con Synology Surveillance Station

Cómo instalar y configurar Eufy Cam con Synology Surveillance Station

Utiliza tus cámaras Eufy con Surveillance Station. Gestiona y graba todo en el NAS.

Por Joan
Cómo añadir automáticamente Torrents mediante RSS en Transmission

Cómo añadir automáticamente Torrents mediante RSS en Transmission

Añade la funcionalidad a Transmission de añadir Torrents automáticamente mediante RSS

Por Joan