How to:

Tunel Cloudflare Apache server

Cloudflare Tunnel

Cloudflare Tunnel te proporciona una forma segura de conectar tus recursos a Cloudflare sin una dirección IP pública enrutable. Con Tunnel, no envías tráfico a una IP externa; en su lugar, un daemon ligero en tu infraestructura (cloudflared) crea conexiones salientes únicamente hacia la red global de Cloudflare.

Cloudflare Tunnel puede conectar de forma segura servidores web HTTP, servidores SSH, escritorios remotos y otros protocolos a Cloudflare. De esta manera, tus orígenes pueden servir tráfico a través de Cloudflare sin ser vulnerables a ataques que intenten eludir su protección.

Que son..?

Docker

Plataforma de contenedores que permite empaquetar aplicaciones con sus dependencias para ejecutarlas en cualquier entorno. Facilita la implementación y escalabilidad de servicios de manera eficiente.

Apache Server

Servidor web de código abierto ampliamente utilizado para alojar sitios y aplicaciones web. Es flexible, seguro y compatible con múltiples lenguajes y tecnologías.

Raspberry Pi

Microcomputadora de bajo costo y tamaño reducido, ideal para proyectos de servidores, automatización y aprendizaje. Su eficiencia energética y compatibilidad con Linux la hacen muy versátil.

Protocolo HTTP

Protocolo base de la web que define la comunicación entre navegadores y servidores. Su versión segura, HTTPS, usa SSL/TLS para cifrar datos y evitar ataques de interceptación. Es esencial para proteger la privacidad en internet.

Certificados SSL/TLS

Archivos digitales que autentican sitios web y cifran la comunicación entre el servidor y los clientes, protegiendo los datos transmitidos. Let’s Encrypt emite certificados para habilitar HTTPS en servidores como Apache.

Daemon

Proceso que se ejecuta en segundo plano, esperando y respondiendo a eventos sin intervención del usuario. Un lightweight daemon es una versión optimizada que consume pocos recursos.

Vamos a proceder con la configuracion

Objetivo: Conectar tu servidor Apache (ejecutándose en Docker sobre Raspberry Pi) a Internet de forma segura usando Cloudflare Tunnel.

Beneficios: Acceso remoto seguro sin exponer puertos y mayor protección contra ataques.

Pre-Requisitos y Entorno

Recordatorio: Verifica que tu Raspberry Pi tenga suficiente capacidad y conectividad.

Hardware: Raspberry Pi configurada y conectada a la red.

Software: Docker instalado, Apache funcionando en un contenedor y dominio gestionado en Cloudflare.

Un Dominio en cloudflare.com

Instalar Cloudflared

Comando ejemplo:

Paso 1: Descarga e instala cloudflared en tu Raspberry Pi (puede estar en el contenedor Docker o en el host).

wget -q https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm -O cloudflared
chmod +x cloudflared
sudo mv cloudflared /usr/local/bin/

Autenticar y Crear el Túnel

Resultado: Se genera un identificador para tu túnel que usarás en la configuración.

Paso 2: Autentica cloudflared con tu cuenta de Cloudflare:

cloudflared tunnel login

Paso 3: Crea el túnel:

cloudflared tunnel create mi-tunel

Configurar el Túnel para Apache

Ubicar el archivo de configuración:

Si no existe, créalo en: /etc/cloudflared/config.yml

Y Dentro del mismo:

tunnel: mi-tunel
credentials-file: /home/{USER}/.cloudflared/Credenciales-xxx-xxxx-xxx-xxxxxxx.json
ingress:

  • hostname: midominio.com
    service: http://ip_apache:puerto_apache
  • service: http_status:404

Configurar DNS en Cloudflare

Enlace DNS: Usa el comando:

cloudflared tunnel route dns mi-tunel midominio.com

Verificar y Probar la Configuración

Inicia el túnel con:

cloudflared tunnel run mi-tunel

Prueba: Accede a https://midominio.com desde un navegador y verifica que se muestre tu sitio Apache.

Dato: lo mejor que se puede realizar al probar y confirmar que el túnel funciona correctamente, es configurar la conexión para que trabaje como un deamon y que se inicie a la par del resto de servicios: Creación y gestión de servicios Daemon en Linux mediante Systemd

¡Túnel Creado!

Con estos pasos, tendremos listo nuestro túnel.

Hemos combinado la practicidad de poder manejar nuestro propio entorno, la seguridad de Cloudflare para no exponer nuestro sistema, y el ahorro de costos al utilizar un dispositivo Raspberry Pi como servidor web.

Las posibilidades son inmensas, entre otras cosas. Tanto este WordPress como el siguiente portafolio son parte de esta funcionalidad.