¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Unir dos sedes con un túnel VPN (WireGuard)

Después de esta lección: Puedo explicar cómo un túnel une dos sedes.

Lección de 55 min6 comandosLaboratorio WireGuard: construye un túnel VPN entre dos sedes en el navegador

Una tienda en una ciudad, archivos en otra

Una empresa tiene una tienda en una ciudad y una oficina en otra. Cada una tiene su red privada. La tienda necesita el servidor de archivos de la oficina.

El único enlace entre las dos es internet abierto. Un túnel lleva el tráfico privado por él, envuelto para que nadie en el camino pueda leerlo.

Al final de esta lección

Nota

Puedo explicar cómo un túnel une dos sedes.

Palabras clave

PalabraQué significaEjemplo
Túneltráfico privado envuelto dentro de otro tráfico
Par de clavesuna clave privada que guardas y una pública que compartes
Par remotoel equipo del otro extremo de un túnelpeer
Endpointla dirección pública y el puerto donde se alcanza al otro extremo203.0.113.2:51820
AllowedIPslas redes que se envían al otro extremo y se aceptan de él
Apretón de manosel intercambio que demuestra que ambos extremos tienen las claves correctashandshake

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Las redes privadas no cruzan internet

Cada sede tiene direcciones privadas. Internet no tiene rutas hacia ellas. Un paquete de una sede a la otra se descarta por el camino.

Un túnel lo resuelve. La pasarela de una sede mete el paquete privado entero dentro de un paquete nuevo dirigido a la otra pasarela.

Internet solo ve tráfico entre las dos pasarelas.

Ejemplo resuelto: un paquete, dos vistas

DóndeOrigenDestinoVisible
Dentro de la tienda172.30.1.5172.30.2.9Datos en claro
En internet198.51.100.1198.51.100.2Datos cifrados en UDP
Dentro de la oficina172.30.1.5172.30.2.9Datos en claro

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Conoce las dos sedes

Comando
wglab status

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Intenta cruzar a la otra sede

Comando
sudo ip netns exec a1 ping -c 2 -W 1 10.2.0.2

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Lee las rutas de la pasarela

Comando
sudo ip netns exec gwA ip route

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Qué dicen las respuestas

El primer Run lista cuatro máquinas y sus direcciones. Cada pasarela tiene una segunda dirección en wan0, el enlace que hace de internet.

El ping falla con Destination Net Unreachable. La tabla de la pasarela tiene dos líneas: su propia sede y el enlace de internet. No tiene línea para la otra sede.

Cada pasarela tiene un par de claves

Cada pasarela crea un par de claves: una privada y una pública que sale de ella. Nadie puede volver de la pública a la privada.

La clave privada se queda en su pasarela. La pública va al otro extremo, por el medio que quieras, incluso por correo.

Cada pasarela apunta a la otra como par remoto, con su clave pública.

Cuenta los caracteres de una clave

Comando
wg genkey | wc -c

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Ejemplo resuelto: partes de una configuración

LíneaSecciónQué dice
PrivateKeyInterfaceEl secreto de esta pasarela
AddressInterfaceLa dirección de este extremo dentro del túnel
ListenPortInterfaceEl puerto UDP por el que escucha
PublicKeyPeerLa clave pública de la otra pasarela
AllowedIPsPeerLas redes que van a este par
EndpointPeerDónde encontrar al par en internet

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Pide los túneles que existen

Comando
sudo ip netns exec gwA wg show

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Mira la carpeta de la configuración

Comando
sudo ip netns exec gwA ls -ld /etc/wireguard

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Qué dicen las dos respuestas

El primer Run no imprime nada. Todavía no hay túnel ni claves. Un comando que no encuentra nada suele no decir nada.

El segundo Run empieza por drwx------. Solo root puede abrir esa carpeta, y es lo correcto: guardará una clave privada.

Un error frecuente

Advertencia

Mucha gente cree que la clave pública también es un secreto. Solo lo es la privada. La pública se comparte sin miedo. La privada no se envía nunca, y solo su dueño debe poder leer el fichero que la guarda.

AllowedIPs es la lista de rutas

La línea AllowedIPs lista las redes que se pueden enviar a ese par. Un paquete que llega del par solo se acepta si su origen está en esa lista.

Si levantas el túnel con wg-quick, también añade una ruta hacia esas redes por el túnel. La orden wg sola no añade ninguna: entonces la ruta la escribes tú.

Ejemplo para una tienda y una oficina

Código: bash
# La pasarela de la tienda. Otras direcciones que las del laboratorio.
[Interface]
PrivateKey = (clave privada de la pasarela de la tienda)
Address = 10.77.0.1/24
ListenPort = 51820

[Peer]
PublicKey = (clave pública de la pasarela de la oficina)
AllowedIPs = 172.30.2.0/24
Endpoint = 198.51.100.2:51820

El apretón de manos prueba las claves

Cuando el primer paquete necesita el túnel, las dos pasarelas hacen un apretón de manos. Cada una demuestra que tiene la clave privada que corresponde a la pública que espera la otra.

Después fluyen los paquetes, y el apretón se repite cada pocos minutos mientras haya tráfico. Un túnel sin apretón de manos no lleva nada.

Para ir más lejos: un apretón fallido

Cuando el túnel del laboratorio funcione, copia el wg0.conf de gwA y cambia una letra de la clave pública de su par. Levanta otra vez el túnel con esa copia.

Haz ping a la otra sede y lee wg show. ¿Qué línea falta? ¿Te avisa algo del error? Vuelve a poner el fichero bueno al terminar.

Sobre este laboratorio y su código: Laboratorio WireGuard: construye un túnel VPN entre dos sedes en el navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.