WireGuard se ha convertido en una de las soluciones VPN más populares por su simplicidad, velocidad y seguridad. A diferencia de OpenVPN o IPSec, utiliza un código base muy pequeño y fácil de auditar, lo que lo hace ideal tanto para servidores como para equipos personales.
En este artículo aprenderás a configurar WireGuard desde cero en Debian, Ubuntu o cualquier distribución Linux compatible.
Índice
🔧 1. Instalación de WireGuard
En la mayoría de distribuciones modernas (Debian, Ubuntu, Fedora, etc.), WireGuard está disponible en los repositorios oficiales.
Ejecuta el siguiente comando:
sudo apt update
sudo apt install wireguard
Esto instalará los paquetes necesarios:
wireguard-tools: herramientas para crear claves y configurar interfaces.wg-quick: utilidad que simplifica la puesta en marcha del túnel.
🔑 2. Generar las claves pública y privada
Cada nodo (cliente y servidor) necesita un par de claves. Genera las del servidor:
umask 077
wg genkey | tee /etc/wireguard/server_private.key | wg pubkey > /etc/wireguard/server_public.key
Para el cliente:
umask 077
wg genkey | tee client_private.key | wg pubkey > client_public.key
Guarda estas claves en lugar seguro. Las privadas nunca deben compartirse.
🖥️ 3. Configurar el servidor
Crea el archivo principal de configuración:
sudo nano /etc/wireguard/wg0.conf
Ejemplo de configuración básica:
[Interface]
Address = 10.8.0.1/24
PrivateKey = (clave_privada_servidor)
ListenPort = 51820
[Peer]
PublicKey = (clave_publica_cliente)
AllowedIPs = 10.8.0.2/32
Guarda y cierra.
Asegúrate de que el servicio se inicie al arrancar:
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
🌐 4. Activar reenvío de paquetes
Para que el tráfico pase a través del servidor:
sudo sysctl -w net.ipv4.ip_forward=1
Hazlo permanente editando /etc/sysctl.conf:
net.ipv4.ip_forward=1
Si usas nftables o iptables, añade una regla NAT (suponiendo que tu interfaz externa es eth0):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
💻 5. Configurar el cliente
En tu equipo cliente (Linux, Windows o Android), crea un archivo wg0.conf similar:
[Interface]
Address = 10.8.0.2/32
PrivateKey = (clave_privada_cliente)
DNS = 1.1.1.1
[Peer]
PublicKey = (clave_publica_servidor)
Endpoint = tu_ip_publica:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
En Linux, inícialo con:
sudo wg-quick up wg0
Puedes comprobar el estado con:
sudo wg
🧩 6. Conexión automática al inicio
Para que el túnel se active al arrancar el sistema:
sudo systemctl enable wg-quick@wg0
🛡️ 7. Verificación de conexión
Desde el cliente, prueba la conectividad:
ping 10.8.0.1
Y comprueba la IP pública:
curl ifconfig.me
Si ves la IP del servidor VPN, ¡la conexión está funcionando correctamente!
🔍 8. Consejos de seguridad
- Usa claves nuevas por cada cliente.
- Mantén actualizado WireGuard y tu sistema operativo.
- No abras el puerto 51820 a todo el mundo; limita IPs si es posible.
- Considera combinarlo con un firewall como
ufwonftables.
