Tutorial Completo de WireGuard: Guía Paso a Paso

WireGuard es un protocolo VPN moderno, rápido y seguro que ha revolucionado la forma en la que se implementan redes privadas virtuales. Su diseño minimalista (menos de 4,000 líneas de código) y su uso de criptografía de última generación lo convierten en una opción ideal tanto para usuarios domésticos como empresariales. En este tutorial, aprenderás desde los conceptos básicos hasta la configuración avanzada de WireGuard en un entorno Linux, aunque los principios se aplican a cualquier sistema compatible.

¿Qué es WireGuard y por qué elegirlo?

WireGuard es un software de código abierto para crear redes privadas virtuales (VPN) de forma sencilla, eficiente y segura. A diferencia de protocolos como OpenVPN o IPsec, WireGuard destaca por:

  • Simplicidad: Configuración y mantenimiento mucho más simples.

  • Rendimiento: Mejor velocidad y menor latencia gracias a su integración en el kernel de Linux y uso exclusivo de UDP.

  • Seguridad: Utiliza criptografía moderna (Curve25519, ChaCha20, Poly1305, BLAKE2s).

  • Auditoría: Su pequeño tamaño facilita la revisión de código y la detección de vulnerabilidades.

Funcionamiento Interno de WireGuard

WireGuard establece un túnel cifrado entre dos dispositivos (servidor y cliente), permitiendo que todo el tráfico viaje seguro a través de Internet. El proceso básico es:

  1. Generación de claves: Cada dispositivo genera un par de claves (privada y pública).

  2. Intercambio de claves públicas: Los dispositivos intercambian sus claves públicas para autenticarse.

  3. Creación del túnel cifrado: Se establece el túnel VPN usando las claves y la configuración definida.

  4. Transmisión de datos: Todo el tráfico entre los dispositivos viaja cifrado y autenticado.

Requisitos Previos

  • Un servidor con Linux (Ubuntu recomendado).

  • Acceso como usuario root o con privilegios sudo.

  • Un cliente (puede ser otro Linux, Windows, macOS, Android o iOS).

  • Conocimientos básicos de red y terminal.

Instalación de WireGuard en el Servidor

1. Actualizar el sistema

bash

apt update && apt upgrade -y

2. Instalar WireGuard

WireGuard está en los repositorios oficiales de Ubuntu:

bash

apt install wireguard -y

Esto instalará el software y sus dependencias.

3. Cargar el módulo del kernel

bash

modprobe wireguard

Este comando activa el módulo necesario para que WireGuard funcione.

Generación de Claves Criptográficas

Cada dispositivo (servidor y cliente) necesita su propio par de claves.

bash

umask 077 wg genkey | tee privatekey | wg pubkey > publickey

  • privatekey: Clave privada del dispositivo.

  • publickey: Clave pública correspondiente.

Guarda estos archivos en un lugar seguro y nunca compartas la clave privada.

Configuración del Servidor WireGuard

Crea el archivo de configuración principal, normalmente en /etc/wireguard/wg0.conf.

Ejemplo de configuración:

text

[Interface] Address = 10.0.0.1/24 ListenPort = 51820 PrivateKey = <clave_privada_servidor> # Cliente 1 [Peer] PublicKey = <clave_publica_cliente1> AllowedIPs = 10.0.0.2/32

  • Address: IP interna de la VPN para el servidor.

  • ListenPort: Puerto UDP donde escuchará WireGuard (por defecto 51820).

  • PrivateKey: Clave privada del servidor.

  • [Peer]: Configuración de cada cliente autorizado.

Puedes añadir más bloques [Peer] para cada cliente.

Configuración del Cliente WireGuard

En el cliente, crea un archivo de configuración, por ejemplo, wg0-client.conf:

text

[Interface] PrivateKey = <clave_privada_cliente> Address = 10.0.0.2/24 DNS = 8.8.8.8 [Peer] PublicKey = <clave_publica_servidor> Endpoint = <IP_publica_servidor>:51820 AllowedIPs = 0.0.0.0/0 PersistentKeepalive = 25

  • PrivateKey: Clave privada del cliente.

  • Address: IP interna de la VPN para el cliente.

  • DNS: Servidor DNS a utilizar.

  • PublicKey: Clave pública del servidor.

  • Endpoint: IP pública y puerto del servidor.

  • AllowedIPs: Qué tráfico debe ir por la VPN (0.0.0.0/0 para todo el tráfico).

  • PersistentKeepalive: Mantiene la conexión activa, útil detrás de NAT.

Habilitar el reenvío de paquetes en el Servidor

Para que los clientes puedan acceder a Internet a través del túnel, habilita el reenvío de paquetes:

bash

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf echo "net.ipv6.conf.all.forwarding=1" >> /etc/sysctl.conf sysctl -p

Configurar NAT (en el servidor)

Permite que el tráfico de los clientes salga a Internet usando la IP pública del servidor:

bash

iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth0 -j MASQUERADE

Para hacerlo persistente, instala iptables-persistent:

bash

apt install iptables-persistent netfilter-persistent save

Arrancar y habilitar WireGuard

Inicia el servicio y haz que se active al arrancar el sistema:

bash

systemctl start wg-quick@wg0 systemctl enable wg-quick@wg0

Esto levantará la interfaz wg0 y el túnel VPN.

Verificar la Conexión

En el servidor y en el cliente, puedes comprobar el estado de la VPN con:

bash

wg

Deberías ver información sobre los peers y el tráfico transmitido.

Agregar más Clientes

Para cada nuevo cliente:

  • Genera un nuevo par de claves.

  • Añade un bloque [Peer] en el servidor con la clave pública y la IP interna deseada.

  • Configura el cliente con la clave privada, la IP y la clave pública del servidor.

WireGuard en Windows, macOS, Android y iOS

WireGuard tiene aplicaciones oficiales para todas las plataformas principales. El proceso es similar:

  • Instala la app.

  • Crea una nueva configuración (puedes importar el archivo .conf o escanear un QR generado desde la configuración).

  • Introduce las claves y parámetros como en Linux.

Ventajas y Desventajas de WireGuard

Casos de Uso Comunes

  • Acceso remoto seguro a una red local.

  • Interconexión de sedes de una empresa.

  • Acceso seguro a Internet desde redes públicas.

  • Túneles punto a punto entre servidores.

Consejos de Seguridad

  • Protege tus claves privadas.

  • Usa puertos aleatorios y cambia el puerto por defecto si es posible.

  • Mantén el software actualizado.

  • Limita los AllowedIPs de cada peer al mínimo necesario.

  • Usa firewalls para restringir el acceso al puerto de WireGuard.

Solución de Problemas Comunes

  • No hay conexión: Verifica que el puerto UDP esté abierto en el firewall y el router.

  • No hay acceso a Internet: Asegúrate de haber configurado el reenvío de paquetes y el NAT.

  • Problemas de DNS: Comprueba la configuración de DNS en el cliente.

  • Errores de clave: Revisa que las claves públicas y privadas estén correctamente asignadas.

Recursos y Enlaces Útiles

  • WireGuard.com

  • Repositorios oficiales de tu distribución Linux.

  • Aplicaciones móviles en Google Play y App Store.

Soporte Wireguard en los routes Teltonika

Teltonika dispone de un paquete software para la instalación del protocolo Wireguard en todos sus dispositivos. Si quieres saber cómo instalar paquetes en los routers Teltonika puedes ver el siguiente artículo y también puedes comprar los routers Teltonika al mejor precio en https://shop.davantel.com

Conclusión

WireGuard representa la nueva generación de VPNs: es rápido, seguro y fácil de implementar. Su eficiencia y simplicidad lo hacen ideal tanto para usuarios particulares como para entornos empresariales. Siguiendo este tutorial, puedes tener tu propia VPN funcional en minutos, disfrutando de privacidad y seguridad en todas tus conexiones.

Si quieres profundizar, explora las opciones avanzadas de configuración, integración con scripts o gestión de grandes cantidades de peers, y experimenta con la flexibilidad que ofrece WireGuard para adaptarse a casi cualquier escenario de red privada virtual.

Reply

or to participate.