Proteccion con Tunel ARGO


Un túnel Argo es una tecnología proporcionada por Cloudflare que permite exponer servicios locales, como aplicaciones web o APIs, a Internet de forma segura, sin necesidad de abrir puertos en tu firewall o configurar complejas reglas de red.

Características principales:

  1. Sin necesidad de abrir puertos: Los túneles Argo eliminan la necesidad de exponer directamente tu servidor a Internet, reduciendo riesgos de seguridad.
  2. Conexión segura: Utilizan conexiones cifradas a través de TLS para proteger los datos en tránsito.
  3. Distribución global: Al estar respaldado por la red de Cloudflare, los usuarios se conectan al nodo más cercano, mejorando la latencia y la experiencia del usuario.
  4. Integración con servicios locales: Puedes exponer servicios como servidores web locales, APIs RESTful o aplicaciones internas sin necesidad de configuración adicional.

¿Cómo funciona?

  1. Cliente del túnel: Configuras el cliente llamado cloudflared en tu servidor local, que crea un túnel seguro hacia la red de Cloudflare.
  2. DNS o subdominio: Asociarás este túnel con un subdominio de tu sitio web gestionado por Cloudflare. Por ejemplo, miapp.midominio.com puede redirigir automáticamente al servicio local.
  3. Reenviar tráfico: Todo el tráfico que llega al túnel se reenvía desde la red de Cloudflare hacia tu servidor local.

Casos de uso:

  1. Exponer aplicaciones locales: Ideal para desarrolladores que quieren compartir aplicaciones en desarrollo sin configuraciones complejas.
  2. Acceso remoto seguro: Puedes acceder a servicios internos desde cualquier lugar del mundo sin configurar una VPN.
  3. Protección contra ataques DDoS: El tráfico pasa por la red de Cloudflare, que protege contra ataques distribuidos.
  4. Asegurar servicios expuestos: Útil para exponer servicios sensibles sin dejar expuesta la IP real de tu servidor.

Ejemplo de uso:Instala cloudflared en tu servidor:

1. Instala cloudflared en tu servidor linux:

$ sudo curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared
mv cloudflared /usr/local/bin

2. Autentica el túnel con Cloudflare:

$ sudo cloudflared tunnel login

3. Crea un túnel y asócialo a un subdominio:
$ sudo cloudflared tunnel create mi-tunel

4. Configura el túnel para redirigir a un servicio local:
$ sudo cloudflared tunnel route dns mi-tunel miapp.midominio.com

5. Ejecuta el túnel:
$ sudo cloudflared tunnel run mi-tunel

Ventajas frente a alternativas:

  • Menor configuración manual: Comparado con soluciones como NAT o configuración de firewalls.
  • Escalabilidad y fiabilidad: Al aprovechar la red de Cloudflare.
  • Fácil de usar: Unas pocas configuraciones te permiten exponer servicios rápidamente.

TUNEL ARGO EN EC2

En  aplicaciones hospedadas en AWS es una excelente opción para aumentar la seguridad y simplificar la exposición de tus servicios en AWS sin tener que abrir puertos o configurar reglas complejas de red.

1. Configuración básica en AWS

Asegúrate de que tus aplicaciones están configuradas y funcionando correctamente dentro de tu infraestructura de AWS. Puedes usar instancias EC2, ECS, EKS u otros servicios, y exponer tus aplicaciones de forma local, por ejemplo, en puertos internos como localhost:8080.

Requisitos previos:

  • Un dominio registrado en Cloudflare y configurado para usar sus servidores de nombres.
  • Acceso a tu servidor AWS con permisos administrativos.
  • Tener cloudflared instalado en la máquina donde quieres ejecutar el túnel.

2. Instalar Cloudflared en tu instancia EC2

En tu servidor de AWS, instala el cliente de Cloudflare cloudflared:

$ sudo curl -L https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64 -o cloudflared
chmod +x cloudflared sudo mv cloudflared /usr/local/bin

3. Autenticar con Cloudflare

Ejecuta el siguiente comando para autenticarte con tu cuenta de Cloudflare:

$ sudo cloudflared tunnel login

Esto abrirá un enlace en tu navegador para autenticarte. Una vez autenticado, Cloudflare descargará las credenciales necesarias en tu máquina.


4. Crear un túnel

Crea un nuevo túnel para tu aplicación:

$ sudo cloudflared tunnel create mi-tunel

Esto genera un identificador único para tu túnel y almacena su configuración en /home/tu-usuario/.cloudflared.


5. Configurar el túnel

Edita el archivo de configuración para tu túnel (por ejemplo, config.yml):

yml:

tunnel: ID_DE_TU_TUNEL credentials-file: /home/tu-usuario/.cloudflared/ID_DE_TU_TUNEL.json ingress: - hostname: miapp.midominio.com service: http://localhost:8080 - service: http_status:404

Explicación:

  • hostname: El subdominio que estará asociado a tu aplicación.
  • service: El servicio local que quieres exponer. Puede ser un servidor escuchando en localhost:8080.

6. Asociar el túnel a tu dominio

En Cloudflare, configura un registro DNS para el subdominio que usarás:

sudo cloudflared tunnel route dns mi-tunel miapp.midominio.com

Esto conecta el túnel con el subdominio en tu zona DNS administrada por Cloudflare.


7. Ejecutar el túnel

Inicia el túnel para que comience a redirigir el tráfico:


$ sudo cloudflared tunnel run mi-tunel

También puedes configurarlo como un servicio para que se ejecute automáticamente al iniciar tu instancia:


$ sudo cloudflared service install

Ventajas de usar Argo Tunnel en AWS:

  1. Sin exposición directa: No necesitas exponer la IP pública de tu instancia EC2.
  2. Seguridad mejorada: Todo el tráfico pasa por la red de Cloudflare, que incluye protección contra DDoS.
  3. Fácil de gestionar: Puedes usar la consola de Cloudflare para administrar subdominios y configuraciones.
  4. Escalabilidad: Funciona bien con instancias EC2, contenedores en ECS/EKS o incluso servicios internos como RDS.

Casos comunes de uso:

  • Exponer aplicaciones internas en EC2.
  • Proteger APIs RESTful o GraphQL.
  • Proveer acceso remoto seguro a servicios internos (como herramientas de administración o dashboards).

Comentarios

Entradas populares