Crear subdominios segurizados con Cloudflare

Crear subdominios segurizados con Cloudflare

·

3 min read

Recientemente me han regalado una Raspberry Pi 4 para utilizarla a modo de sencillo Home Lab. He estado montando y probando aplicaciones como Nextcloud, KodBox, Pi-Hole, Ngninx, etcétera. Y uno de los puntos más interesantes ha sido la posibilidad de acceder a todos estos servicios utilizando subdominios (DDNs) en lugar de su correspondiente dirección IP local; posibilitando con ello el hacerlo de forma segura (https). Las ventajas de hacerlo así son varias:

  • Hay servicios que exigen acceder mediante https

  • Evitas los constantes reportes de los navegadores

  • Una vez creado y segurizado el subdominio, dejas abierta la posibilidad de habilitar acceso desde la WAN.

Lo más usual para estos menesteres viene siendo utilizar los servicios de DuckDNS:

  • Permite crear de forma gratuita hasta 5 subdominios (DDNs)

  • Sólo registra los datos mínimos para que funcione el servicio

  • No requiere de renovación -al contrario que otros proveedores.

  • Muy sencillo de configurar

Por otra parte, también te puedes encontrar con algunos inconvenientes:

  • El propio límite de 5 entradas DDNs

  • Por temporadas, ha habido reportes de caídas en el servicio de DuckDNS.

  • Su propia sencillez, impide “trastear” con parámetros DNS

  • No hay ninguna posibilidad más allá del servicio DDNs

Y finalmente, lo que al menos en mi caso, ha decidido que me decantará por utilizar los servicios de Cloudflare: registro de un domino personal sin limitaciones y con muchísimas posibilidades de gestión por tan sólo 10 € anuales.

Puestos en contexto, la idea de éste post es muy sencilla:

Comentar el proceso de crear subdominios para uso local y el token que posteriormente usaremos para segurizar mediante Let’s Encrypt + proxy inverso.

Una vez nos aparezca nuestro dominio, bastará con pulsar sobre él e ir al apartado “Configuración del DNS”.

A continuación elegiremos un nombre ->indicaremos la ip LOCAL ->desmarcaremos el campo “Estado de Proxy” (puede dar problemas con el DDNs)

Con ésto, ya tendríamos el subdominio creado

Ahora, generaremos el token que se nos solicitará más adelante para añadir un certificado de Let’s Encrypt

En el menú de usuario seleccionamos “Mi perfil”

A la izquierda -> Tokens Api y una vez dentro -> “Crear token”

Usaremos la primera plantilla que aparece “Editar zona de DNS” -> “Usar plantilla”

En la pantalla que nos aparece, dejaremos tal y como está el primer campo y añadiremos un segundo mediante la opción “+ Agregar más”.

Finalmente en “Recursos de zona” incluiremos nuestro dominio principal y pulsaremos “Ir a resumen” donde nos mostrará el árbol generado y si todo está correcto “Crear token”

Aquí ya obtendremos el token con el cual interactuar. Lo copiamos y lo guardamos

Ahora nos toca configurar los subdominios creados + la ip LOCAL + los correspondientes certificados. Para ello necesitamos un PROXY INVERSO.

Hay muchas opciones de Proxy Inverso: Nginx, Traefik, Caddy… yo me he decantado por el primero, lo veo muy sencillo y se integra perfectamente en el flujo de una Raspberry Pi 4.

Lo primero es crear un nuevo host. En el menú principal Host -> Proxy Host.

  • Como “Domain Names” el subdominio creado en Cloudflare

  • Forward Hostname/IP -> nuestra Ip LOCAL

  • Forward Port -> El puerto donde está corriendo el servicio

Posteriormente creamos el certificado: SSL Certificates -> Add SSL Certificate -> Let´s Encrypt

Y finalmente asociamos host con certificado. Volvemos al menú de Host -> Proxy Host y elegimos el que hemos creado: Edit Proxy Host -> SSL

Y poco más. Con ésto hemos habilitado acceder a nuestros servicios DE FORMA LOCAL mediante una dirección web con certificado de seguridad.

Para poder acceder al subdominio creado desde Internet (WAN) hay que realizar otra serie de procedimientos. Por temas de seguridad, viene siendo mucho más recomendable dejarlo así y acceder al subdominio mediante VPN.