tutoriales.com

Configurando WireGuard en tu Router para una Red Doméstica Segura y Rápida

Este tutorial te guiará a través de la configuración de WireGuard directamente en tu router, asegurando todo el tráfico de tu red doméstica. Descubre cómo proteger todos tus dispositivos con una VPN rápida y eficiente, paso a paso.

Intermedio20 min de lectura13 views
Reportar error

🚀 Introducción a WireGuard y VPNs en el Router

En la era digital actual, la privacidad y la seguridad en línea son más importantes que nunca. Una Red Privada Virtual (VPN) es una herramienta fundamental para proteger tu tráfico de internet. Tradicionalmente, las VPNs se configuran en dispositivos individuales, pero ¿qué pasa si quieres proteger toda tu red doméstica, incluyendo dispositivos IoT, consolas de juego o invitados?

Aquí es donde entra en juego la configuración de una VPN directamente en tu router. Y dentro de las opciones de VPN, WireGuard se ha destacado como una alternativa moderna, eficiente y segura. WireGuard es conocido por su simplicidad, velocidad y robustez criptográfica, superando en muchos aspectos a protocolos más antiguos como OpenVPN o IPSec.

Al configurar WireGuard en tu router, todos los dispositivos conectados a tu red Wi-Fi o por cable se beneficiarán automáticamente de la protección VPN, sin necesidad de instalar software en cada uno. Esto no solo simplifica la gestión, sino que también extiende la seguridad a dispositivos donde la instalación de software VPN no es posible o es complicada.

🔥 Importante: Este tutorial asume que tienes un router compatible con firmware personalizado (como OpenWrt, DD-WRT, pfSense, o router que admita WireGuard de forma nativa) o con capacidad para ejecutar WireGuard. La implementación específica puede variar ligeramente según el modelo y el firmware de tu router.

¿Por qué WireGuard?

WireGuard ofrece varias ventajas significativas sobre otros protocolos VPN:

  • Velocidad: Utiliza criptografía de última generación y un código base mucho más pequeño, lo que resulta en un rendimiento significativamente superior.
  • Simplicidad: Su configuración es notablemente más sencilla que la de OpenVPN o IPSec.
  • Seguridad: Emplea algoritmos criptográficos modernos y probados, como Curve25519 para intercambio de claves y ChaCha20-Poly1305 para cifrado autenticado.
  • Eficiencia: Es más eficiente en el uso de recursos del sistema, ideal para routers con hardware limitado.
💡 Consejo: Considera un router con hardware potente si planeas usar WireGuard intensivamente, especialmente si tienes una conexión a internet de alta velocidad, ya que el cifrado y descifrado requieren capacidad de procesamiento.

🛠️ Requisitos Previos

Antes de sumergirnos en la configuración, asegúrate de tener lo siguiente:

  1. Router compatible: Un router que admita WireGuard. Esto generalmente significa un router con firmware personalizado como OpenWrt, DD-WRT, pfSense, o routers de gama alta que incluyan WireGuard de fábrica. Para este tutorial, nos centraremos principalmente en la lógica general, pero los ejemplos se inclinarán hacia la configuración en OpenWrt debido a su popularidad y flexibilidad.
  2. Acceso SSH/Web al router: Necesitarás acceso a la interfaz de administración de tu router (generalmente vía navegador web o SSH).
  3. Servidor WireGuard (VPN Provider): Necesitarás un servidor WireGuard al que conectarte. Puede ser un servicio VPN comercial que soporte WireGuard o tu propio servidor WireGuard auto-hospedado (por ejemplo, en un VPS). En este tutorial, asumiremos que ya tienes los datos de configuración de tu servidor VPN (el peer de tu router).
  4. Conocimientos básicos de red: Familiaridad con conceptos como direcciones IP, subredes y rutas.
⚠️ Advertencia: Modificar el firmware de tu router o realizar configuraciones incorrectas puede dejarlo inutilizable (brick). Procede con precaución y asegúrate de tener una copia de seguridad de tu configuración actual.

🔑 Generación de Claves WireGuard

Para que WireGuard funcione, tanto el cliente (tu router) como el servidor necesitan pares de claves pública/privada. Si tu proveedor VPN te proporciona un archivo de configuración, es posible que ya incluya la clave pública del servidor y, en algunos casos, una clave privada generada para ti. Si estás configurando tu propio servidor o si tu proveedor te pide que generes tus propias claves, aquí te mostramos cómo.

Claves del Router (Cliente)

El router actuará como cliente. Necesitará su propio par de claves.

  1. Accede a tu router por SSH:
ssh root@<IP_DEL_ROUTER>
  1. Genera las claves privada y pública:
umask 077  # Asegura permisos restrictivos
wg genkey | tee privatekey | wg pubkey > publickey
Esto creará dos archivos: `privatekey` y `publickey` en el directorio actual. Guarda el contenido de ambos.

*   `privatekey`: La clave privada de tu router. **¡Mantenla siempre en secreto!**
*   `publickey`: La clave pública de tu router. Deberás proporcionarla a tu servidor WireGuard.

Si estás en un sistema Linux/macOS, puedes generar las claves localmente y luego transferirlas o copiarlas a tu router:
wg genkey > private_key_router
cat private_key_router | wg pubkey > public_key_router

Claves del Servidor (Peer)

Si usas un servicio VPN comercial, ellos te proporcionarán su clave pública. Si es tu propio servidor, ya deberías haber generado su par de claves.

  • Server_Public_Key: La clave pública del servidor WireGuard al que te conectarás.
📌 Nota: Algunos proveedores de VPN o herramientas de gestión de WireGuard pueden generar un archivo de configuración completo (`.conf`) por ti. En ese caso, muchas de estas claves y direcciones ya estarán preconfiguradas.

⚙️ Configuración de WireGuard en OpenWrt (Ejemplo Detallado)

La configuración de WireGuard en OpenWrt se puede realizar a través de la interfaz web LuCI o mediante la línea de comandos (CLI). Usaremos una combinación para mayor claridad.

1. Instalación de WireGuard

Primero, asegúrate de que WireGuard esté instalado en tu router OpenWrt.

Accede a tu router por SSH y ejecuta:

opkg update
opkg install luci-app-wireguard wireguard-tools

Esto instalará el paquete WireGuard y la interfaz de usuario LuCI para gestionarlo.

2. Creación de la Interfaz WireGuard

Vía LuCI (Interfaz Web):

  1. Accede a la interfaz web de tu router (normalmente http://192.168.1.1).
  2. Ve a Network -> Interfaces.
  3. Haz clic en Add new interface....
  4. En Name of the new interface, introduce un nombre descriptivo, por ejemplo, wg0.
  5. En Protocol of the new interface, selecciona WireGuard VPN.
  6. Haz clic en Create interface.

Configuración de la Interfaz wg0:

Una vez creada, edita la nueva interfaz wg0:

  • General Settings:

    • Listen Port: Elige un puerto UDP. Un valor común es 51820. Asegúrate de que no esté en uso por otra aplicación en tu router.
    • Private Key: Pega la clave privada de tu router (generada en el paso anterior).
    • IP Addresses: Asigna una dirección IP para la interfaz WireGuard de tu router dentro de la red VPN. Esta IP te la proporcionará tu proveedor VPN o la habrás definido en tu propio servidor (ej. 10.0.0.2/24 o 192.168.100.2/32).
    • Public Key: (Normalmente solo se muestra aquí, no se edita directamente).
  • Advanced Settings:

    • Mantén las configuraciones por defecto a menos que tu proveedor VPN indique lo contrario.
  • Firewall Settings:

    • Crea una nueva zona de firewall para WireGuard. Por ejemplo, wg_zone.
    • Configura esta zona para permitir el tráfico de salida (Allow forward to destination zones). En un escenario típico, querrás que el tráfico de wg_zone pueda ir a WAN (la VPN). Sin embargo, para que todo el tráfico de la LAN vaya a la VPN, el escenario es diferente (ver paso de configuración de firewall posterior).

3. Configuración del Peer (Servidor VPN)

Ahora, necesitas decirle a tu router a qué servidor WireGuard conectarse. En la misma interfaz de wg0, ve a la sección Peers y haz clic en Add peer (o Add new peer).

  • General Settings (del Peer):
    • Public Key: Pega la clave pública de tu servidor VPN.
    • Allowed IPs: Esta es una configuración crítica. Define qué tráfico debe ser enrutado a través de este peer. Para que todo el tráfico de tu router pase por la VPN, usa 0.0.0.0/0. Si solo quieres enrutar ciertos rangos, especifícalos aquí (ej. 10.0.0.0/8, 192.168.1.0/24).
    • Endpoint Host/IP: La dirección IP o hostname de tu servidor VPN.
    • Endpoint Port: El puerto UDP del servidor VPN (ej. 51820).
    • Persistent Keep Alive: Configura esto a un valor como 25 segundos. Esto ayuda a mantener la conexión activa a través de NAT si tu router está detrás de uno.
    • Preshared Key: Si tu proveedor VPN te proporciona una clave pre-compartida (PSK), pégala aquí para una seguridad adicional. Es opcional.
📌 Nota: Si el proveedor VPN te da un archivo `.conf`, puedes copiar directamente la sección `[Interface]` y `[Peer]` a ` /etc/config/network` en tu router, luego aplicar los cambios.

Ejemplo de configuración CLI para wg0 y el Peer:

config interface 'wg0'
    option proto 'wireguard'
    option private_key '<TU_CLAVE_PRIVADA_ROUTER>'
    option listen_port '51820'
    list addresses '10.0.0.2/24' # O la IP que te asigne el proveedor VPN

config wireguard_wg0 'wgserver'
    option public_key '<CLAVE_PUBLICA_SERVIDOR>'
    option endpoint_host '<IP_O_HOSTNAME_SERVIDOR_VPN>'
    option endpoint_port '51820'
    option persistent_keepalive '25'
    list allowed_ips '0.0.0.0/0' # Para enrutar todo el tráfico
    # option preshared_key '<TU_CLAVE_PRE_COMPARTIDA>' # Opcional

Después de guardar los cambios en LuCI o actualizar /etc/config/network, aplica los cambios:

uci commit network
service network restart

4. Configuración del Firewall y Enrutamiento

Este es un paso crucial para asegurar que todo el tráfico de tu LAN pase por la VPN.

  1. Crea una nueva zona de firewall para WireGuard:

    • Ve a Network -> Firewall -> Zones.
    • Asegúrate de que la zona wg_zone exista (la creamos al configurar la interfaz).
    • Configura la zona wg_zone de la siguiente manera:
      • Input: Accept
      • Output: Accept
      • Forward: Accept
      • Masquerading: (habilitar)
      • Covered networks: wg0
      • Allow forward from source zones: lan
      • Allow forward to destination zones: wan (Aunque wan es la zona de salida a internet, en este contexto, el tráfico de la LAN que queremos que vaya a la VPN lo haremos pasar por wg0. Esto se complementa con las reglas de enrutamiento.)
  2. Modifica la zona lan:

    • En la zona lan, asegúrate de que Allow forward to destination zones incluya wg_zone.
  3. Configura las reglas de enrutamiento (CLI): Para forzar que todo el tráfico de tu red LAN salga por la interfaz WireGuard, necesitas modificar la tabla de enrutamiento. Esto se hace mejor con reglas de ip rule y ip route.

    Primero, necesitamos una tabla de enrutamiento dedicada para la VPN:

# Añadir una nueva tabla de enrutamiento (ej. 200)
ip rule add from <IP_DE_TU_LAN>/<CIDR_DE_TU_LAN> lookup 200
ip route add default dev wg0 table 200
<div class="callout warning">⚠️ <strong>Advertencia:</strong> Un error en estas reglas puede cortar el acceso a internet para toda tu LAN. Es crucial tener un plan de recuperación.</div>

Una forma más robusta y común en OpenWrt para lograr esto es usando `odhcp6` o `dnsmasq` para forzar las rutas y DNS, y configurando la métrica de las interfaces. Sin embargo, para una configuración simple donde TODO va por VPN, la forma más sencilla es modificar las métricas de las interfaces `wan` y `wg0` para que `wg0` tenga una métrica inferior a `wan` (así se prioriza).

**Opción 1: Ajustar métricas de interfaz (LuCI):**
*   Ve a `Network` -> `Interfaces`.
*   Edita la interfaz `wan` (o `wan6` si usas IPv6).
*   En `Advanced Settings`, cambia `Use gateway metric` a un valor alto (ej. `20`).
*   Edita la interfaz `wg0`.
*   En `Advanced Settings`, cambia `Use gateway metric` a un valor bajo (ej. `10`).
*   Guarda y aplica.

**Opción 2: Reconfigurar Firewall para forzar todo el tráfico:**
Esto implica una configuración de firewall más sofisticada donde la zona `lan` solo puede reenviar a la zona `wg_zone`, y la zona `wg_zone` puede reenviar a `wan` (la internet externa *a través del túnel VPN*).

Vía CLI para OpenWrt (ejemplo):
uci set firewall.@zone[0].forward='REJECT' # Asumiendo que zone[0] es 'lan'
uci set firewall.@zone[0].network='lan' # Asegura que es la zona LAN
uci add firewall redirect
uci set firewall.@redirect[-1].name='Force_LAN_to_WireGuard'
uci set firewall.@redirect[-1].src='lan'
uci set firewall.@redirect[-1].src_dport='*' # Todo el tráfico saliente
uci set firewall.@redirect[-1].dest_port='*' # Hacia cualquier puerto
uci set firewall.@redirect[-1].target='DNAT' # Destination NAT
uci set firewall.@redirect[-1].dest='wg0' # Redirecciona a la interfaz WireGuard
uci commit firewall
service firewall restart
⚠️ Advertencia: Esta configuración de redirección de firewall es avanzada y puede requerir ajustes finos para tu red específica. Es más común y recomendado usar reglas de enrutamiento y métricas si tu objetivo es simplemente que todo el tráfico pase por la VPN. La redirección (`DNAT`) puede ser necesaria en casos más complejos o con configuraciones de `AllowedIPs` muy específicas en el `peer`. Para la mayoría, ajustar las métricas es suficiente.

Una forma más sencilla y generalmente efectiva para forzar todo el tráfico de la LAN a través de la VPN es que la interfaz lan solo pueda hacer forward a la zona wg_zone, y la zona wg_zone hace forward a la zona wan (internet real).

Vamos a usar las métricas de interfaz para simplificar, que es el método preferido en OpenWrt para este propósito cuando se tiene una VPN global.

    # En /etc/config/network

    config interface 'wan'
        option proto 'dhcp'
        # ... otras opciones ...
        option metric '20' # Mayor métrica para WAN

    config interface 'wg0'
        option proto 'wireguard'
        # ... otras opciones ...
        list addresses '10.0.0.2/24'
        option metric '10' # Menor métrica para WireGuard

Asegúrate de que la zona de firewall de lan pueda reenviar a wg_zone, y wg_zone pueda reenviar a wan.

    # En /etc/config/firewall

    config zone
        option name 'lan'
        list network 'lan'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        list dest_zone 'wg_zone' # La LAN puede reenviar a la VPN

    config zone
        option name 'wg_zone'
        list network 'wg0'
        option input 'ACCEPT'
        option output 'ACCEPT'
        option forward 'ACCEPT'
        option masq '1'
        list dest_zone 'wan' # La VPN puede reenviar a la WAN (internet externa)

    config zone
        option name 'wan'
        list network 'wan' 'wan6'
        option input 'REJECT'
        option output 'ACCEPT'
        option forward 'REJECT'
        option masq '1'
        option mtu_fix '1'
💡 Consejo: Después de cada cambio de configuración de firewall o red, es una buena práctica reiniciar los servicios: ```bash service network restart service firewall restart ```

5. Configuración de DNS

Para evitar fugas de DNS y asegurar que todas las consultas pasen por la VPN, es esencial configurar los servidores DNS correctamente.

  1. En LuCI:
  • Ve a Network -> Interfaces.
  • Edita la interfaz wg0.
  • En Advanced Settings, desmarca Use DNS servers advertised by peer si ya está marcado y especifica los servidores DNS de tu proveedor VPN (o servidores DNS públicos que confíes, como 1.1.1.1, 8.8.8.8) en Use custom DNS servers.
  1. En Network -> DHCP and DNS:
  • Ve a la pestaña Advanced Settings.
  • Asegúrate de que la opción Rebind protection esté activada.
  • En la pestaña Resolv and Hosts Files, puedes añadir los servidores DNS directamente en DNS forwardings.

Esto hará que tu router use los DNS especificados para todas las consultas que haga, incluyendo las de los clientes de tu LAN.


✅ Verificación y Solución de Problemas

Después de aplicar la configuración, es crucial verificar que todo funciona correctamente.

Verificación de la Conexión

  1. Estado de la interfaz WireGuard: Accede al router por SSH y ejecuta:
    wg show wg0
    ```
    Deberías ver información sobre tu interfaz `wg0`, incluyendo tu clave pública, el puerto de escucha y el `peer` (servidor VPN). Busca el campo `latest handshake` debajo de la información del `peer`. Si muestra una fecha y hora reciente, la conexión está establecida.

2.  **Verificar la IP Pública:**
    Desde un dispositivo conectado a tu router (PC, teléfono), visita una web que muestre tu IP pública, como `whatismyip.com` o `ipinfo.io`. La IP mostrada debe ser la de tu servidor VPN, no la de tu ISP local.

3.  **Prueba de Fugas de DNS:**
    Visita sitios como `dnsleaktest.com`. Ejecuta la prueba estándar y la extendida. Asegúrate de que los servidores DNS mostrados pertenezcan a tu proveedor VPN o a los servidores DNS que configuraste manualmente para la VPN, y que no haya fugas de DNS de tu ISP original.

### Solución de Problemas Comunes

*   **No hay conexión/Handshake:**
    *   **Claves incorrectas:** Revisa que las claves pública y privada estén correctamente copiadas sin espacios adicionales.
    *   **Endpoint incorrecto:** Asegúrate de que la IP/hostname y el puerto del servidor VPN sean correctos.
    *   **Problemas de firewall:** Revisa que el puerto de escucha de WireGuard en tu router no esté bloqueado por el firewall de tu router o de tu ISP. Si tu router está detrás de otro router (doble NAT), necesitarás abrir el puerto en ambos.
    *   **`Allowed IPs` del peer:** Verifica que `0.0.0.0/0` (o el rango correcto) esté configurado para el peer si quieres enrutar todo el tráfico.

*   **Conexión WireGuard establecida, pero no hay internet en la LAN:**
    *   **Enrutamiento incorrecto:** Revisa las métricas de tus interfaces `wan` y `wg0`. `wg0` debe tener una métrica más baja para ser priorizada.
    *   **Configuración de firewall:** Asegúrate de que el tráfico de la zona `lan` pueda reenviar a la zona `wg_zone`, y que `wg_zone` pueda reenviar a `wan`. También verifica que el `masquerading` esté habilitado en la zona `wg_zone`.
    *   **DNS:** Asegúrate de que los servidores DNS estén correctamente configurados y que el router esté usándolos.

*   **Problemas de rendimiento:**
    *   **Hardware del router:** Routers más antiguos o de gama baja pueden tener dificultades para manejar el cifrado/descifrado de WireGuard a altas velocidades.
    *   **Carga del servidor VPN:** Si usas un servicio comercial, el servidor puede estar sobrecargado. Intenta con un servidor diferente si es posible.

<div class="callout warning">⚠️ <strong>Advertencia:</strong> Siempre que realices cambios de configuración, es una buena práctica reiniciar los servicios de red y firewall (`service network restart; service firewall restart`) y probar la conectividad.</div>

--- 

## 📊 Comparativa de Rendimiento (Indicativo)

La velocidad de una VPN puede variar enormemente dependiendo de muchos factores: la potencia de tu router, la velocidad de tu conexión a internet, la distancia al servidor VPN, la carga del servidor, y el protocolo VPN. Sin embargo, WireGuard generalmente supera a OpenVPN y IPSec.

| Característica         | OpenVPN             | IPSec/IKEv2         | WireGuard           |
| :--------------------- | :------------------ | :------------------ | :------------------ |
| **Velocidad**          | Buena               | Muy buena           | **Excelente**       |
| **Complejidad Config.**| Alta                | Alta                | **Baja**            |
| **Uso de CPU**         | Moderado a Alto     | Moderado            | **Bajo**            |
| **Estabilidad**        | Alta                | Alta                | Alta                |
| **Código Base**        | ~100.000 líneas     | ~400.000 líneas     | **~4.000 líneas**   |
| **Criptografía**       | Varias opciones     | Varias opciones     | Curated set moderno |

Comparativa de Throughput por Protocolo 0 250 500 750 1000 Velocidad (Mbps) 115 Mbps OpenVPN 500 Mbps IPSec 920 Mbps WireGuard Protocolo VPN
WireGuard: 90% de eficiencia
IPSec: 70% de eficiencia
OpenVPN: 50% de eficiencia

✨ Consideraciones Adicionales y Seguridad

Rotación de Claves

Aunque WireGuard utiliza el concepto de claves de larga duración, es una buena práctica rotar tus claves privadas periódicamente (cada pocos meses o anualmente), especialmente si sospechas que han podido ser comprometidas. Genera un nuevo par de claves para tu router y actualiza la clave pública en tu servidor VPN.

Reglas de Firewall Avanzadas

Dependiendo de tus necesidades, podrías querer reglas de firewall más específicas. Por ejemplo:

  • Acceso local sin VPN: Si quieres que ciertos dispositivos o aplicaciones accedan directamente a internet sin pasar por la VPN, puedes crear reglas de enrutamiento basadas en IP de origen o puerto de destino.
  • Acceso al router desde internet: Si necesitas acceder a la interfaz de administración de tu router desde fuera de tu red (lo cual no se recomienda sin medidas de seguridad adicionales), asegúrate de que el firewall lo permita y de que el puerto esté abierto en tu router principal o ISP.

DNS Cifrado (DNS over TLS/HTTPS)

Incluso con una VPN, tus consultas DNS aún podrían ser visibles para tu proveedor VPN. Para una privacidad aún mayor, considera configurar DNS over TLS (DoT) o DNS over HTTPS (DoH) en tu router, o directamente en los clientes, apuntando a servicios como Cloudflare (1.1.1.1) o Google (8.8.8.8) que soporten estos protocolos.

¿Por qué configurar DNS sobre TLS/HTTPS?DNS cifrado (DoT/DoH) protege tus consultas DNS de ser interceptadas o modificadas, añadiendo una capa extra de privacidad incluso si tu proveedor VPN ya gestiona el DNS. Previene que tu ISP o atacantes externos vean a qué sitios web intentas acceder, basándose solo en tus peticiones DNS.

Monitorización de la Conexión

Es recomendable monitorizar el estado de tu conexión WireGuard. En OpenWrt, puedes usar herramientas como luci-app-statistics para visualizar el tráfico y el estado de la interfaz wg0 a lo largo del tiempo. También puedes configurar scripts para reiniciar la interfaz si la conexión se cae.


🔚 Conclusión

Configurar WireGuard en tu router es una excelente manera de asegurar y optimizar la privacidad de toda tu red doméstica. Ofrece una combinación inigualable de velocidad, seguridad y simplicidad en comparación con las alternativas más antiguas. Aunque requiere una configuración inicial cuidadosa, los beneficios a largo plazo en términos de tranquilidad y rendimiento son significativos.

Al seguir este tutorial, habrás dado un gran paso hacia una experiencia de internet más segura y privada para todos tus dispositivos.

¡Disfruta de tu red doméstica segura con WireGuard! 🔒✨

Tutoriales relacionados

Comentarios (0)

Aún no hay comentarios. ¡Sé el primero!