VPN en red local doméstica

VPN en red local doméstica

TL;DR: estoy instalando Wireguard en un VPS, me conecto a él desde el enrutador doméstico con OpenWRT y accedo a la red local desde mi teléfono.

Si tienes infraestructura personal en un servidor doméstico o muchos dispositivos gestionados por IP en casa, seguramente querrás acceder a ellos desde el trabajo, el autobús, el tren o el metro. Lo más frecuente es adquirir una IP del proveedor, y después redirigir los puertos de cada servicio hacia el exterior.

En su lugar, configuré una VPN con acceso a la red local en casa. Las ventajas de esta solución son:

  • Transparencia: me siento como en casa en cualquier circunstancia.
  • Simplicidad: configuro y olvido, no tengo que pensar en redirigir cada puerto.
  • Más abajo: ya tengo un VPS, para estas tareas una VPN moderna casi no consume recursos.
  • Seguridad: nada está expuesto al exterior, puedo dejar MongoDB sin contraseña y nadie robará los datos.

Como siempre, también hay desventajas. Primero, tendrás que configurar cada cliente por separado, incluso del lado del servidor. Puede resultar incómodo si tienes muchos dispositivos desde los cuales deseas acceder a los servicios. En segundo lugar, es posible que haya una red local en el trabajo que coincida en el rango — tendrás que resolver ese problema.

Necesitaremos:

  1. VPS (en mi caso, Debian 10).
  2. Enrutador con OpenWRT.
  3. Teléfono.
  4. Servidor doméstico con algún servicio web para realizar pruebas.
  5. Manos hábiles.

Utilizaré Wireguard como tecnología VPN. Esta solución también tiene sus fortalezas y debilidades, las cuales no voy a describir. Para la VPN utilizo la subred 192.168.99.0/24, y en casa tengo 192.168.0.0/24.

Configuración del VPS

Para esto, incluso un VPS muy modesto por 30 rublos al mes es suficiente, si tienes suerte de conseguir uno así. conseguir.

Realizo todas las operaciones en el servidor como root en una máquina limpia; si es necesario, añade `sudo` y adapta las instrucciones.

Wireguard no ha llegado a la versión estable, así que ejecuto `apt edit-sources` y agrego los backports con dos líneas al final del archivo:

deb http://deb.debian.org/debian/ buster-backports main
# deb-src http://deb.debian.org/debian/ buster-backports main

El paquete se instala de la manera habitual: apt update && apt install wireguard.

A continuación, generamos un par de claves: wg genkey | tee /etc/wireguard/vps.private | wg pubkey | tee /etc/wireguard/vps.public. Repite esta operación dos veces más para cada dispositivo participante en el esquema. Cambia las rutas a los archivos de claves para el otro dispositivo y no olvides la seguridad de las claves privadas.

Ahora preparamos la configuración. En el archivo /etc/wireguard/wg0.conf se coloca la configuración:

[Interface]
Dirección = 192.168.99.1/24
PuertoDeEscucha = 57953
ClavePrivada = 0JxJPUHz879NenyujROVK0YTzfpmzNtbXmFwItRKdHs=

[Peer] # OpenWRT
PublicKey = 36MMksSoKVsPYv9eyWUKPGMkEs3HS+8yIUqMV8F+JGw=
AllowedIPs = 192.168.99.2/32,192.168.0.0/24

[Peer] # Smartphone
PublicKey = /vMiDxeUHqs40BbMfusB6fZhd+i5CIPHnfirr5m3TTI=
AllowedIPs = 192.168.99.3/32

En la sección [Interface] se indican las configuraciones de la propia máquina, y en [Peer] — configuraciones para aquellos que se conectarán a ella. En AllowedIPs se enumeran separadas por comas las subredes que serán enrutadas en el par correspondiente. Debido a esto, los pares de dispositivos 'clientes' en la subred VPN deben tener una máscara /32, todo lo demás será enrutado por el servidor. Dado que la red local se enrutará a través de OpenWRT, en AllowedIPs el par correspondiente añadimos la subred doméstica. En PrivateKey y PublicKey despliega la clave privada generada para VPS y las claves públicas de los pares respectivamente.

En el VPS solo queda ejecutar el comando que levantará la interfaz y la añadirá al inicio automático: systemctl enable --now wg-quick@wg0. El estado actual de las conexiones se puede verificar con el comando wg.

Configuración de OpenWRT

Todo lo necesario para esta etapa está en el módulo luci (interfaz web de OpenWRT). Inicie sesión en él y en el menú Sistema abra la pestaña Software. OpenWRT no almacena caché en la máquina, por lo que hay que actualizar la lista de paquetes disponibles presionando el botón verde Actualizar listas. Después de completar, en el filtro introduzca luci-app-wireguard y, al observar la ventana con el hermoso árbol de dependencias, instala este paquete.

En el menú Redes elija Interfaces y presione el botón verde Agregar nueva interfaz debajo de la lista ya existente. Después de ingresar un nombre (también wg0 en mi caso) y seleccionar el protocolo WireGuard VPN, se abre un formulario de configuración con cuatro pestañas.

VPN en red local doméstica

En la pestaña Ajustes generales debe ingresar la clave privada y la dirección IP reservada para OpenWRT junto con la subred.

VPN en red local doméstica

En la pestaña Ajustes de firewall, coloque la interfaz en la red local. Así las conexiones desde VPN podrán acceder libremente a la red local.

VPN en red local doméstica

En la pestaña Peers presione el único botón y, en el formulario actualizado, complete los datos del servidor VPS: clave pública, Allowed IPs (todas las subredes VPN deben ser enrutadas al servidor). En Endpoint Host y Endpoint Port introduzca respectivamente la dirección IP del VPS con el puerto indicado anteriormente en la directiva ListenPort. Marque Route Allowed IPs para que se creen rutas. Y asegúrese de completar Persistent Keep Alive, de lo contrario, el túnel desde VPS al router se interrumpirá si este último está detrás de NAT.

VPN en red local doméstica

VPN en red local doméstica

Después de esto, puede guardar la configuración y luego, en la página con la lista de interfaces, presionar Guardar y aplicar. Si es necesario, inicie explícitamente la interfaz con el botón Reiniciar.

Configuramos el smartphone

Necesitarás el cliente Wireguard, que está disponible en F-Droid, Google Play y App Store. Al abrir la aplicación, haces clic en el signo más y en la sección Interfaz introduces el nombre de la conexión, la clave privada (la pública se generará automáticamente) y la dirección del teléfono con la máscara /32. En la sección Peer indicas la clave pública del VPS, el par dirección: puerto del servidor VPN como Endpoint y las rutas a la subred VPN y doméstica.

Captura de pantalla destacada desde el teléfono
VPN en red local doméstica

Haces clic en el disquete en la esquina, activas y...

Listo

Ahora puedes acceder a la monitorización doméstica, cambiar la configuración del router, o hacer lo que desees a nivel de IP.

Capturas de pantalla de la red local
VPN en red local doméstica

VPN en red local doméstica

VPN en red local doméstica

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster