network
Photo by Praveen kumar Mathivanan on Unsplash

Instalación de DuckDNS en Home Assistant. Acceso remoto desde internet.

En este post haremos que nuestro sistema domótico sea accesible en remoto desde cualquier lugar del mundo con la instalación de DuckDNS en Home Assistant… Con paciencia (y con seguridad)

En esta ocasión vamos a preparar nuestro sistema domótico compuesto por el software Home Assistant ejecutándose en una Raspberry PI. para que podamos acceder de forma remota cuando no estemos conectados a nuestra red de casa.

Acceso en remoto desde internet

En esta otra entrada vimos que aunque nuestro sistema no sea accesible desde internet, podemos empezar a ver todo su potencial con algunas integraciones de equipos ya existentes en nuestra red.

Pues bien, ahora vamos a incluir la posibilidad de ver desde cualquier rincón del mundo todos esos dispositivos y todas las opciones que estén disponibles con la Instalación de DuckDNS.

La compañía con la que tengáis contratado el acceso a internet será indiferente, pero hay pasos que pueden variar según el router . Os recomiendo encarecidamente (es una inversión por ese precio) el router todoterreno de Mikrotik si tenéis la oportunidad:

Prestaremos especial atención a la seguridad, pues desde este momento cualquiera podría iniciar ataques que podrían en riesgo nuestra privacidad o incluso nuestra seguridad física al poder controlar dispositivos de casa.

Vamos manos a la obra.


Entender el servicio DNS

La red Internet (WAN) no se diferencia demasiado de una red doméstica (LAN), aparte de por el tamaño, obviamente. La regla básica es que en una misma red las direcciones IP deben ser únicas. Si queremos conectar dispositivos de la misma red podremos usar un switch, pero pasar de una red a otra tendremos que usar un router.

En el caso del router que nos instala nuestro proveedor de internet en nuestra casa, suele integrar un pequeño switch con unos pocos puertos.

Por tanto, nosotros saldremos a internet con una IP única dentro de lo que es internet en todo momento, y como hemos comentado antes, muy recomendable usar encriptación SSL para evitar que puedan leer los paquetes de datos.

Hasta aquí la teoría, pero nos queda un pequeño detalle. Las empresas proveedoras de servicios (ISP) compran un rango de direcciones IP que asignarán a sus clientes. Para optimizar no siempre asignarán la misma IP al mismo cliente. Es decir, esta dirección IP pública será dinámicana y no podemos usarla en nuestro navegador al llamar a nuestro equipo de casa pues puede cambiar.

Necesitamos un servicio externo que haga de directorio. Este servicio devolverá una dirección IP (la IP pública que tengamos en ese momento) cuando alguien acceda a nuestro dominio https://www nuestroDominio.com

Para complicar las cosas algunos proveedores sí comparten al mismo tiempo una única IP con una técnica llamada NAT (Network Address Translation), por lo que primero deberemos consultar si tenemos la mala suerte de que sea nuestro caso.

Resumiendo: Accederemos desde cualquier navegador usando un nombre de dominio único que nunca cambiará, ya que el servicio DNS lo traducirá internamente y de forma transparente en la IP pública de nuestro sistema en ese momento.

El servicio DNS dinámico gratuito que nos permitirá acceder remotamente a nuestro sistema en remoto desde internet lo implementaremos usando DuckDNS en Home Assistant . Sigue leyendo y veremos cómo configurar DuckDNS en Home Assistant.


DuckDNS

Quizás sea el servicio DNS gratuito más usado. La forma de tener acceso en DuckDNS será logeándonos con alguna cuenta (Google, Reddit, Twitter o GitHub entre otras)

Los pasos para la instalación serán los siguientes:

1. Creando el subdominio

Desde la propia página de DuckDNS y una vez logeados y pasado algún captcha para verificar que somos humanos, directamente teclearemos el nombre del subdominio por el que se nos conocerá en internet. Aqui se puede usar cualquier cadena válida que no esté usada ya. Algo fáicl de recordar que no de mucha información. Puede ser las inciales de vuestro nombre seguidas de las inciales de vuestra ciudad…. Lo que os apetezca. Nuestro dominio completo tendrá la forma http://nuestroDominio.duckdns.org

Instalación de duckdns en Home Assistant

Y nos aparecerá la dirección IP pública que tiene en ese momento nuestro reciente dominio:

2. Anotando los datos importantes

En la parte superior aparecerán los siguientes datos: Aparte del nombre de vuestro dominio, debéis anotar el token asignado, pues nos hará falta para el siguiente paso:

home assistant duckdns

3. Instalando el Addon DuckDNS en Home Assistant

Viene el paso de instalar el Addon correspondiente en nuestro sistema. En este enlace tenéis cómo se realiza la instalación inicial y la forma de acceder

Accedemos al menú Supervisor y buscamos en Addon Store el complemento DuckDNS en Home Assistant, y procedemos a la instalación.

Una vez finalizada la instalación podremos acceder a la pantalla principal del mismo:

Os aconsejo que dejéis activada la opción de «Start on boot» y «Watchdog». La primera es evidente y la segunda nos arrancará el Addon si alguna vez para.

4. Configurando el Addon DuckDNS en Home Assistant

Dentro del Addon veremos la sección Configuration, donde le diremos lo necesario para conectar con nuestra cuenta de DuckDNS.org:

Pondremos tal como se muestra en la imagen nuestro token anotado en el paso 2, así como nuestro subdominio delante de .duckdns.org

Es importante dejar la opción certfile y keyfile para poder acceder con ssl (url comenzando con https)

Como siempre en todos nuestros ficheros .yaml debemos ser cuidadoso con los espacios, pues no es muy flexible en cuanto a formato se refiere.

Nos queda incluir en nuestro fichero principal de configuraciónde Home Assistant (configuration.yaml) la siguiente información para uso del certificado gratuito de let’s encrypt. Si no sabes cómo editar dicho fichero puedes ver cómo se hace en nuestro post Raspberry PI + Home Assistant paso a paso.

http:
    #base_url: No usar esta opción. Deprecated
    ssl_certificate: /ssl/fullchain.pem
    ssl_key: /ssl/privkey.pem

Nota: La opción base_url ya no se usa en las últimas versiones. La podéis comentar con # o sencillamente eliminarla.

Tendremos que resetear el sistema para que tome la nueva configuración: En el menú Connfiguration, la opción Server Controls:

Siempre chequearemos primero que nuestro fichero configuration.yaml es correcto con la opción «CHECK CONFIGURATION» para luego resetear. Perderemos la conexión un momento mientras vuelve a arrancar.

5. Mapeado de puertos. Forwarding

Como paso final, es necesario decirle a nuestro router a qué puertos de nuestra raspberry debe acceder (en el protocolo TCP) con el mapeo adecuado. Os dejo la configuración de los 3 puertos a dirigir:

La redirección del puerto 80 exterior con el puerto 8123 interior es conflictivo si queréis algún día integrar Alexa con Home Assistant. Resulta que Alexa solo puede encontrar y enlazar sus propios dispositivos usando ese puerto. También Home Assistant lo usa por ejemplo cuando queremos meter un nuevo repositorio en Supervisor>Add-on Store. Si no ponemos este mapeado no funcionará.

En algunos otros casos (por ejemplo para integraciones tipo Alexa) tendremos que mapear también el puerto 443 externo (público) con el 8123 interno (o el que hayamos elegido para nuestro sistema).

6. Pruebas

Ahora tendremos posibilidad de acceso a nuestra máquina con 2 accesos distintos. Los que tengan la posibilidad de habilitar NAT Loopback solo necesitarán el acceso remoto, tanto si están conectados a su LAN como si acceden desde el exterior:

– Acceso local

En cualquier ordenador o móvil conectado a nuestra red tecleamos

https://nuestra-ip-local:8123

En este caso, nuestra-ip-local será la que pusimos fija en nuestro router (ver Raspberry PI + Home Assistant paso a paso)

– Acceso remoto

Para hacer la prueba de acceso de forma remota desde internet y terminar con la Instalación de duckdns , usaremos nuestro móvil. Tendremos que desconectarnos momentáneamente de nuestra red Wifi y accederemos a internet con los datos de nuestro proveedor de telefonía. En este caso la url será:

https://nuestroDominio.duckdns.org:8123

Si ya has conseguido acceder en remoto a tu sistema pero tienes problemas con la conexión de tus dispositivos en tu red WiFi interna, te invito a leer sobre la mejor forma de solucionarlo con un extensor:

Otras entradas que te pueden interesar:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *