Si quieres acceder a tu Home Assistant desde Internet, y hacerlo de la forma más segura, entonces tendrás que instalar y configurar el servidor VPN WireGuard que tenemos la posibilidad de instalar como «Complemento» en el sistema operativo. Si actualmente ya tienes en tu router doméstico o en tu NAS un servidor VPN, ya sea con OpenVPN o bien con WireGuard, no sería necesario que también tuvieras uno instalado, porque a través del router o del NAS podrías acceder a la administración del sistema de domótica. No obstante, si tienes solamente un mini PC y tu router no lo permite, una gran opción es instalarlo directamente aquí.
La forma más sencilla de acceder desde el exterior a nuestro sistema de domótica es abriendo un puerto en nuestro router, no obstante, este método no es nada seguro utilizarlo porque cualquier persona haciendo un escaneo de puertos podría localizarlo, e intentar entrar explotando alguna vulnerabilidad, o simplemente probando usuarios y contraseñas. Por este motivo, solamente os recomendamos acceder a vuestro sistema de domótica desde el exterior usando una VPN local, un proxy inverso como el de Traefik o Nginx, o bien usar Cloudflare Tunnels como ya os hemos explicado anteriormente.
Requisitos para un servidor VPN en Home Assistant
Lo primero que tenemos que hacer para instalar y configurar la VPN de WireGuard, es irnos al perfil de usuario que hayamos registrado, y a mitad de todas las opciones debemos activar el «Modo avanzado«, para tener a nuestra disposición todas las opciones avanzadas del sistema de domótica.
Una vez que hayamos hecho esto, nos tenemos que ir a «Ajustes / Complementos«, aquí es necesario que tengamos el complemento de «File Editor», si no lo tienes os recomendamos que lo instaléis ya que será totalmente necesario para poder configurar la VPN correctamente. También os recomendamos instalar la base de datos de MariaDB como ya os hemos explicado en RedesZone, con el objetivo de que todos los registros se guarden en una base de datos fiable y muy rápida.




Ahora nos tenemos que meter en el complemento de «File Editor» que ya lo tenemos instalado, e irnos directamente a la pestaña de «Configuración«, aquí tenemos que deshabilitar el «Enforce Basepath», para que nos proporcione acceso a toda la raíz de archivos y carpetas. Una vez que lo hayamos hecho, pinchamos en el botón de «Guardar» y ya lo tendríamos configurado para usarlo más adelante.


Es muy importante asegurarnos de cuál es la dirección IP de nuestro Home Assistant, estamos seguros que ya lo sabéis, pero es muy importante asegurarse porque tendremos que abrir un puerto en nuestro router para poder entrar al servidor VPN desde el exterior, de lo contrario, no funcionará.
Otra recomendación importante es utilizar algún servicio de DDNS (Dynamic DNS) o DNS dinámico, actualmente servicios como No-IP son ampliamente utilizados para configurarlo directamente en nuestro router. Si usas un router de ASUS o de AVM, tenemos un servicio DDNS totalmente gratuito del fabricante y es muy fácil de utilizar. Otra alternativa es utilizar el servicio gratuito de DuckDNS, de hecho, el propio sistema de domótica de Home Assistant dispone de un complemento llamado «DuckDNS» que nos permitirá integrar este servicio en el sistema operativo, para que automáticamente se actualice la dirección IP pública a la que apunta el dominio registrado. Este requisito es fundamental si en tu conexión a Internet tienes una conexión con IP dinámica, en el caso de que tengas IP fija, no es necesario que lo hagas porque la dirección IP pública no cambiará.
También es muy importante que nuestra conexión a Internet no esté detrás de CG-NAT, es totalmente necesario que nuestro operador nos proporcione una dirección IP pública, de lo contrario, no podemos acceder desde el exterior y tendremos que utilizar otro tipo de técnicas, como usar Cloudflare Tunnels entre otras soluciones como Zero Tier.
Ahora ya estaremos listos para instalar un nuevo complemento a nuestro sistema de domótica.
Instalación del servidor VPN en Home Assistant
Para instalar este complemento nos vamos a la «tienda de complementos«, y en la sección de Add-ons de la comunidad lo tendremos disponible para su instalación fácil y rápida. Recordad que está organizado por orden alfabético, por lo que está al final de todo el listado.
Procedemos a instalar este complemento en nuestro sistema de domótica, no hay que olvidarse de activar las tres opciones disponibles:
- Iniciar en el arranque.
- Vigilancia.
- Actualización automática.


Una vez que lo hayamos hecho, ya estaremos listos para realizar la configuración necesaria del servidor VPN de WireGuard integrado en el Home Assistant.
Configuración del servidor VPN
La documentación incorporada en este complemento es bastante completa, tenemos una guía paso a paso de todo lo que debemos hacer para configurar el servidor, no obstante, es posible que surjan algunas dudas a la hora de configurar los «peers» o clientes VPN.
En la pestaña de «Configuración» es donde tenemos todas las partes de la configuración, tanto del servidor como también de los peers. La configuración que debemos poner en la parte de «server» es el siguiente:
host: dominioredeszone.duckdns.org
addresses:
- 172.27.66.1
dns:
- 1.1.1.1
- 8.8.8.8
Ahora procedemos a explicar cada sentencia del código anterior:
- Host: es la dirección IP pública o dominio DDNS que tengas registrado. Es importante que este dominio esté «apuntando» hacia tu dirección IP pública.
- Addresses: es la dirección IP privada del servidor de WireGuard, podemos dejarlo por defecto.
- DNS: son los servidores DNS que se usarán para la resolución de nombres, también podrías poner la dirección IP privada de tu router que normalmente es 192.168.1.1.
En la parte de «peers» es donde podemos configurar todos los clientes VPN de forma simultánea, de hecho, el propio complemento se encargará de generar las claves privadas y públicas necesarias para la configuración, además, también nos proporcionarán directamente el archivo de configuración y un código QR para ponerlo en los diferentes clientes para acceder al servidor VPN.
- name: cliente1
addresses:
- 172.27.66.2
allowed_ips: []
client_allowed_ips:
- 192.168.5.0/24
Ahora procedemos a explicar cada sentencia del código anterior:
- Name: es el nombre identificador del cliente VPN.
- Addresses: es la dirección IP privada del cliente de WireGuard, con cada cliente nuevo tenemos que poner una nueva IP, cambiando el último dígito.
- Allowed_ips: lo dejamos vacío para aceptar cualquier cliente que se conecte.
- client_allowed_ips: tenemos que poner la subred o subredes que queramos que estén en el «Allowed IPs» de los clientes, es para generar automáticamente la configuración. Si queremos hacer redirección completa del tráfico tenemos que poner también 0.0.0.0/0.
A continuación, podéis ver la configuración completa que acabamos de aplicar en el servidor.


Un aspecto muy importante es el puerto 51820 UDP que tenemos en la parte inferior. Este puerto es el que debemos abrir en la sección de «NAT», «Port Forwarding» o «Reenvío de puertos» de nuestro router. Los datos que tendremos que poner en el router es tanto la dirección IP privada del Home Assistant que hemos visto antes, como también el puerto 51820 de tipo UDP.
Ahora ya podemos acceder a la carpeta «ssl» para proceder a descargar toda la configuración.
Descargar la configuración y usarla en los clientes
Si nos vamos al complemento de «File Editor«, tenemos que irnos a la raíz del sistema y entrar dentro del directorio «ssl/wireguard» donde tendremos perfectamente organizados todos los clientes VPN que hemos creado, cada uno en su carpeta con toda la información. Si entramos dentro de la carpeta, podemos ver el archivo de configuración, y al abrirlo podemos ver todo el código que debemos introducir en los clientes, o bien descargar el código QR para escanearlo con nuestro smartphone.



En el cliente VPN oficial, simplemente lo que debemos hacer es agregar un nuevo perfil, le damos un nombre y copiamos todo el código. Automáticamente reconocerá la clave pública y simplemente debemos pinchar en «Guardar».
Lo más importante es la parte de «AllowedIPs» en «Peer«, si aquí ponemos el rango privado de la red local podemos acceder a todos los recursos de la red local doméstica, incluyendo Home Assistant y también el resto de equipos que tengamos en la red local. Con esta configuración, solamente el tráfico que vaya hacia el sistema de domótica o la red local, pasará el tráfico por la VPN, pero no así el resto de la navegación. Para poder hacer un reenvío total del tráfico, tendrías que poner lo siguiente:
- AllowedIPs = 192.168.5.0/24, 0.0.0.0/0
De esta forma, tendrás acceso tanto a la red local como redirección de Internet también.
En el siguiente menú podéis ver todo el registro de conexión del cliente VPN, si os fijáis, nosotros estamos en un entorno local y el «Endpoint» no es la dirección IP pública o dominio, sino una IP privada. En esta sección debería aparecer directamente el dominio DynDNS o IP pública.
Tal y como podéis ver, es muy sencillo utilizar este servidor VPN WireGuard para acceder tanto al sistema de domótica como también a todos los servicios de la red local doméstica.
Consideraciones del servidor VPN en Home Assistant
Pese a que un servidor VPN nos ofrece muchas ventajas en Home Assistant, como hemos podido ver, también cuenta con una serie de problemas que es mejor conocer antes de empezar a instalarlo, ya que puede que no a todo el mundo le convenza.
- Configuración compleja: Aunque os hemos dejado una guía de como hacerlo, si no eres un usuario experto y tienes nociones básicas en informática, puede que todo te suene a chino, y, por tanto, tengas que pedir ayuda para la configuración completa del mismo.
- Consumo de recursos: Como cualquier tipo de servidor, requerirá un consumo de hardware y red, por lo que si tienes un equipo o conexión muy limitada, puede que acabes teniendo problemas.
- Seguridad: Pese a que una VPN es precisamente para mejorar esta, un servidor VPN mal configurado puede introducir vulnerabilidades de seguridad, lo que sería una brecha perfecta para un intruso.
- Latencia y velocidad de conexión: Toda VPN reduce la velocidad de red debido a los procesos necesarios para ocultar tu identidad y conseguir que navegues lo más seguro y anónimo posible, por tanto, no esperes que todo cargue al mismo ritmo que sin ella. Deberás tener paciencia.
Por otro lado también podríamos hablar de la necesidad de mantenimiento y gestión, la dependencia de conectividad, o el coste adicional por los recursos extras necesarios si queremos que todo siga con el mismo rendimiento que antes de instalarla, sin embargo, si estos problemas son algo que ya tenías en mente, adelante, los beneficios de una VPN ya los hemos comentado, y será una gran opción.
Reforzar la seguridad
Tenemos claro que los clientes de una VPN como WireGuard en Home Assitant es importante para reforzar la seguridad y el acceso controlado a la red. Como WireGuard utiliza pares de claves criptográficas para cada cliente, con clave privada y pública, es importante que las claves privadas de los clientes permanezcan seguras y que solo los usuarios autorizados tengan acceso a ellas.
Un consejo es rotar las claves para reducir el riesgo de que una clave que haya podido ser comprometida, sea usada por un atacante durante mucho tiempo. Dentro de la interfaz de administración de Home Assistant, se puede acceder a cada cliente y generar claves. Otro aspecto que afecta a la seguridad y que debemos tener en cuenta es que revocación de accesos en caso necesario cuando un dispositivo se pierde, se vende o deja de tener acceso por otros motivos.
Falta de rendimiento
Se puede hacer eliminando o desactivando la configuración de ese cliente específico en el servidor VPN de WireGuard. En la interfaz de Home Assistant hay que acudir hasta la configuración de “peers” y eliminar o deshabilitar el cliente que sea oportuno. Tampoco podemos pasar por alto que aunque WireGuard es popular por ser más eficiente que otras opciones VPN, el rendimiento del sistema puede verse mermado. Una explicación lo tenemos en su diseño moderno y criptografía avanzada, que requiere de ciertos recursos.
Esto puede ser un problema cuando hablamos de equipos poco potentes como un Mini PC o un ordenador más antiguo que uses para estos quehaceres. Si es tu caso o simplemente notas que el rendimiento ha bajado demasiado, puedes ajustar y optimizar el rendimiento de WireGuard. Dentro de los ajustes de WireGuard podemos entrar en las opciones de MTU (Maximum Transmission Unit) para reducir la fragmentación de paquetes y mejorar así la deficiencia de la red.
¿Es mejor tener el servidor VPN en el router?
Hoy en día todos los routers de marcas como ASUS o AVM disponen de soporte para WireGuard VPN, asimismo, marcas como Synology o QNAP en sus routers y NAS también lo soportan. Sin embargo, si tienes el router del operador y no dispones de un servidor NAS, no tendrás más remedio que instalar este popular programa de VPN en el Home Assistant Operating System para conectarte desde Internet de forma segura. Por supuesto, también podrías usar otras técnicas para conectarte de forma remota, como usar Cloudflared a través de subdominios de un dominio principal, o bien usar ZeroTier para crear una red VPN SDN y acceder desde cualquier equipo que tengamos conectado a esta red.
En el caso de que tengas la posibilidad de tener el servidor VPN en el router, o si puedes instalarlo en tu sistema operativo para NAS, ya sea TrueNAS, unRAID o un NAS comercial como el fabricante QNAP o Synology, nuestra recomendación es que lo pongas en el router o en el NAS, para «quitarle» carga al sistema operativo de Home Assistant, y que cuando estemos reiniciando el sistema no perdamos la conectividad con la VPN en ningún momento. De esta forma, mientras estamos realizando configuraciones en la domótica y reiniciando el sistema, podremos seguir trabajando con normalidad y saliendo a Internet a través de nuestra red local doméstica, sin necesidad a esperar a que vuelva a iniciarse el sistema y arrancar el servidor.
En resumen, sí, será mejor usar VPN directamente en el router, pero primero deberás comprobar si tienes la posibilidad, ya que no es lo más común y puede que no tengas más remedio que hacerlo como indicamos hoy.