Skip to content

Laboratorio 5.5.1 · Instalación y configuración de una VPN con WireGuard (Ubuntu 24)

Objetivo

Aprender a desplegar una VPN sencilla y funcional con WireGuard en Ubuntu 24. Al finalizar, el alumnado será capaz de:

  • Crear un servidor VPN.
  • Conectar un cliente a la VPN.
  • Verificar conectividad y tráfico cifrado.

1) ¿Qué vamos a hacer?

Montaremos una VPN real dentro del aula:

[Cliente] ---> (túnel cifrado WireGuard) ---> [Servidor VPN]

Cuando el cliente se conecte:

  • Obtendrá una IP virtual (ejemplo: 10.0.0.2).
  • Podrá comunicarse de forma segura con el servidor (10.0.0.1).

2) Entorno de trabajo

Máquinas necesarias

VM Sistema Rol
VPN-SERVER Ubuntu 24.04 Servidor WireGuard
VPN-CLIENT Ubuntu 24.04 Cliente VPN

Red

  • Ambas máquinas deben estar en la misma red local (labnet o similar).
  • Debe existir conectividad IP entre cliente y servidor antes de empezar.

Importante

Ejecuta los comandos con un usuario con permisos de sudo.


3) Instalación de WireGuard

En ambas máquinas:

sudo apt update
sudo apt install wireguard -y

Comprobar instalación:

wg --version

4) Configuración del servidor VPN (VPN-SERVER)

Paso 1. Generar claves

wg genkey | tee server_private.key | wg pubkey > server_public.key
chmod 600 server_private.key

Ver claves:

cat server_private.key
cat server_public.key

Paso 2. Crear configuración

Editar el archivo:

sudo nano /etc/wireguard/wg0.conf

Contenido:

[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = CLAVE_PRIVADA_SERVIDOR

[Peer]
PublicKey = CLAVE_PUBLICA_CLIENTE
AllowedIPs = 10.0.0.2/32

Sustituye CLAVE_PRIVADA_SERVIDOR y CLAVE_PUBLICA_CLIENTE por los valores reales.

Paso 3. Levantar la interfaz VPN

sudo wg-quick up wg0

Ver estado:

sudo wg
ip a show wg0

Paso 4. Arranque automático (recomendado)

sudo systemctl enable wg-quick@wg0

5) Configuración del cliente VPN (VPN-CLIENT)

Paso 1. Generar claves

wg genkey | tee client_private.key | wg pubkey > client_public.key
chmod 600 client_private.key

Paso 2. Crear configuración

Editar:

sudo nano /etc/wireguard/wg0.conf

Contenido:

[Interface]
Address = 10.0.0.2/24
PrivateKey = CLAVE_PRIVADA_CLIENTE

[Peer]
PublicKey = CLAVE_PUBLICA_SERVIDOR
Endpoint = IP_SERVIDOR:51820
AllowedIPs = 10.0.0.0/24
PersistentKeepalive = 25

Notas:

  • IP_SERVIDOR debe ser la IP real del servidor en la LAN.
  • PersistentKeepalive = 25 ayuda a mantener el túnel activo.

Paso 3. Activar cliente

sudo wg-quick up wg0

Verificar:

sudo wg
ip a show wg0

6) Pruebas de funcionamiento

6.1 Ver IP VPN

ip a

Debe aparecer:

  • Servidor: 10.0.0.1
  • Cliente: 10.0.0.2

6.2 Hacer ping a través de la VPN

Desde el cliente:

ping 10.0.0.1

Opcional (desde servidor):

ping 10.0.0.2

6.3 Ver túnel activo

sudo wg

Debe mostrarse transferencia de datos (transfer) y latest handshake reciente.


7) Gestión básica del servicio

Comandos útiles en servidor y cliente:

sudo wg-quick down wg0     # detener
sudo wg-quick up wg0       # iniciar
sudo systemctl status wg-quick@wg0

8) Comprobación con Wireshark (opcional)

Filtro de captura:

udp.port == 51820

Se observará tráfico WireGuard, pero el contenido viaja cifrado y no es legible.


9) Problemas comunes

Problema Posible causa Solución
No conecta Claves incorrectas Revisar PublicKey y PrivateKey en ambos equipos
No hay ping AllowedIPs mal definida Comprobar red 10.0.0.0/24 y IPs /32 del peer
No aparece tráfico Puerto bloqueado o endpoint erróneo Revisar 51820/UDP e IP_SERVIDOR
Se desconecta NAT o inactividad Mantener PersistentKeepalive = 25

10) Entrega

Incluye capturas de:

  1. wg0.conf del servidor.
  2. wg0.conf del cliente.
  3. Salida de sudo wg con handshake y transferencia.
  4. Ping exitoso entre 10.0.0.2 y 10.0.0.1.

11) Preguntas de reflexión

  1. ¿Qué IP obtiene el cliente dentro de la VPN?
  2. ¿Qué ventaja aporta una VPN frente a una red sin túnel cifrado?
  3. ¿Qué implica que el tráfico esté cifrado?

12) Evaluación

Criterio Puntos
Instalación correcta 2
Configuración del servidor 2
Configuración del cliente 2
Conectividad VPN verificada 2
Informe y evidencias 2

Total: 10 puntos