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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Túnel | tráfico privado envuelto dentro de otro tráfico | |
| Par de claves | una clave privada que guardas y una pública que compartes | |
| Par remoto | el equipo del otro extremo de un túnel | peer |
| Endpoint | la dirección pública y el puerto donde se alcanza al otro extremo | 203.0.113.2:51820 |
| AllowedIPs | las redes que se envían al otro extremo y se aceptan de él | |
| Apretón de manos | el intercambio que demuestra que ambos extremos tienen las claves correctas | handshake |
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ónde | Origen | Destino | Visible |
|---|---|---|---|
| Dentro de la tienda | 172.30.1.5 | 172.30.2.9 | Datos en claro |
| En internet | 198.51.100.1 | 198.51.100.2 | Datos cifrados en UDP |
| Dentro de la oficina | 172.30.1.5 | 172.30.2.9 | Datos en claro |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Conoce las dos sedes
wglab statusSe 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
sudo ip netns exec a1 ping -c 2 -W 1 10.2.0.2Se 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
sudo ip netns exec gwA ip routeSe 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
wg genkey | wc -cSe 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ínea | Sección | Qué dice |
|---|---|---|
| PrivateKey | Interface | El secreto de esta pasarela |
| Address | Interface | La dirección de este extremo dentro del túnel |
| ListenPort | Interface | El puerto UDP por el que escucha |
| PublicKey | Peer | La clave pública de la otra pasarela |
| AllowedIPs | Peer | Las redes que van a este par |
| Endpoint | Peer | Dó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
sudo ip netns exec gwA wg showSe 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
sudo ip netns exec gwA ls -ld /etc/wireguardSe 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
# 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:51820El 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.