VPNWireGuardPrivacidad7 min de lectura

Configurar VPN con WireGuard

Instalación de WireGuard, generación de claves, configuración de servidor y cliente, y conexión desde múltiples dispositivos.


¿Qué es WireGuard?

WireGuard es un protocolo VPN moderno, rápido y seguro. Usa criptografía de última generación y tiene un código base mínimo (~4000 líneas), lo que reduce la superficie de ataque.

Paso 1: Instalar WireGuard

bash
sudo apt update
sudo apt install -y wireguard

Paso 2: Generar claves del servidor

bash
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.key

Paso 3: Configurar el servidor

Creá /etc/wireguard/wg0.conf:

ini
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = CLAVE_PRIVADA_SERVIDOR
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

[Peer]
PublicKey = CLAVE_PUBLICA_CLIENTE
AllowedIPs = 10.0.0.2/32

Paso 4: Habilitar IP forwarding

bash
echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Paso 5: Iniciar WireGuard

bash
sudo systemctl enable wg-quick@wg0
sudo systemctl start wg-quick@wg0
sudo wg show

Paso 6: Configurar el cliente

En tu máquina local, generá claves:

bash
wg genkey | tee client_private.key | wg pubkey > client_public.key

Creá el archivo de configuración del cliente:

ini
[Interface]
Address = 10.0.0.2/24
PrivateKey = CLAVE_PRIVADA_CLIENTE
DNS = 1.1.1.1

[Peer]
PublicKey = CLAVE_PUBLICA_SERVIDOR
Endpoint = IP_SERVIDOR:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Abrir puerto en el firewall

bash
sudo ufw allow 51820/udp

Conectar desde diferentes dispositivos

  • Windows/Mac/Linux: Descargá la app oficial de wireguard.com e importá el archivo .conf
  • Android/iOS: Descargá WireGuard de la tienda, escaneá un QR code generado con:
bash
sudo apt install -y qrencode
qrencode -t ansiutf8 < client.conf

Agregar más clientes

Por cada cliente nuevo:

  1. Generá un par de claves
  2. Agregá un bloque [Peer] en el servidor con la clave pública y una IP única
  3. Reiniciá: sudo systemctl restart wg-quick@wg0

Recomendaciones

  • Usá una IP diferente para cada cliente (10.0.0.2, 10.0.0.3, etc.)
  • Guardá las claves privadas de forma segura
  • Usá PersistentKeepalive = 25 para clientes detrás de NAT
  • Monitoreá conexiones con sudo wg show
  • Considerá usar DNS privado (Pi-hole) a través de la VPN

¿Te resultó útil esta guía?