Seguridad Informática
7. VPNs
Introducción: el problema de la seguridad en Internet
Cuando dos dispositivos se comunican a través de Internet, los datos no viajan directamente de un punto a otro, sino que atraviesan múltiples routers y redes intermedias. En ese recorrido, el tráfico puede ser interceptado, analizado o incluso modificado por terceros.
Por ejemplo, si un usuario se conecta a una red WiFi pública (como en un café o aeropuerto), es posible que otro usuario en la misma red capture paquetes y observe información sensible. Este tipo de situaciones pone en riesgo la confidencialidad y la integridad de los datos.
Para resolver este problema, se utilizan mecanismos que permiten proteger la comunicación. Uno de los más importantes es la VPN (Virtual Private Network).

Para , razonar:Si la mayoría del tráfico por ejemplo de los sitios está cifrada, ya que es HTTPS, por que pese a eso es necesario Cifrar los datos con una VPN?
Respuesta: HTTPS cifra “la aplicación”, pero la VPN protege “toda la comunicación”.
¿Que se podría ver, sin la VPN ?
Respuesta: Sitios a los que se conectan , consultas DNSs, Metadatos, y otros protocolos que no cifren los datos como HTTPS.
¿Qué es una VPN y qué problema resuelve?
Una VPN permite crear una conexión segura entre dos puntos a través de una red pública como Internet. Aunque físicamente los dispositivos estén separados, la VPN hace que se comporten como si estuvieran dentro de una misma red privada.
El concepto clave es el de túnel: los datos que se envían se encapsulan y se cifran antes de salir a Internet. De esta manera, aunque alguien intercepte el tráfico, no podrá interpretarlo.
En términos prácticos, una VPN permite:
-
Proteger la información que viaja por la red
-
Acceder de forma remota a redes privadas
-
Evitar la exposición de datos sensibles
¿Cómo funciona una VPN?
El funcionamiento de una VPN puede entenderse como una serie de pasos:
-
Un dispositivo genera un paquete de red (por ejemplo, una solicitud web).
-
Antes de enviarlo, la VPN lo cifra.
-
Luego, lo encapsula dentro de otro paquete.
-
Este nuevo paquete viaja por Internet hasta el destino.
-
En el extremo receptor, el paquete se descifra y se entrega como si hubiera sido enviado directamente.
Este proceso se conoce como tunneling y es fundamental para la seguridad de la comunicación.
Seguridad: el modelo CIA aplicado
Las VPN implementan tres principios fundamentales de la seguridad informática:
-
Confidencialidad: los datos están cifrados, por lo que no pueden ser leídos por terceros.
-
Integridad: se garantiza que los datos no fueron modificados durante el tránsito.
-
Autenticación: se verifica la identidad de los dispositivos que participan en la comunicación.
Estos tres aspectos son esenciales para asegurar que la comunicación sea confiable.
¿En qué capa del modelo TCP/IP se ubica una VPN?
Una VPN no pertenece estrictamente a una sola capa del modelo TCP/IP, sino que involucra varias:
-
En la capa de red (capa 3), se encarga de encapsular paquetes IP y crear redes virtuales.
-
En la capa de transporte (capa 4), utiliza protocolos como UDP o TCP para enviar los datos.
-
En la capa de sesión (capa 5), gestiona el establecimiento y mantenimiento de la conexión segura.
Por eso se dice que las VPN son tecnologías transversales, que integran múltiples niveles del modelo.
Tipos de VPN
Existen diferentes formas de implementar una VPN, dependiendo del uso:
-
En el modelo Remote Access, un usuario se conecta a una red privada desde una ubicación remota (por ejemplo, un empleado que accede a la red de su empresa, a un servidor de su casa, a un DVR o NVD de una red privada).
-
En el modelo Site-to-Site, se conectan dos redes completas (por ejemplo, dos sucursales de una empresa).
En el contexto de laboratorio, el modelo más sencillo y didáctico es el de acceso remoto.
En nuestra materia, veremos Wireguard, implementación y configuración, esta aplicación permite transmitir el concepto de una manera muy clara y didacta.
Protocolos VPN: evolución hacia WireGuard
Site: https://www.wireguard.com/
Wireguard tiene una licencia bajo GPLv2, tal como el Kernel de Linux => NO hay que pagar para usar!
A lo largo del tiempo se desarrollaron distintos protocolos VPN. Algunos, como PPTP(*), hoy se consideran inseguros. Otros, como IPSec(**) , siguen siendo ampliamente utilizados, pero presentan una gran complejidad de configuración.
(*) PPTP (Point-to-Point Tunneling Protocol) es un método obsoleto de la década de 1990 para implementar redes privadas virtuales (VPN), diseñado por Microsoft y otros.
(**) Veremos en el próximo capítulo.
En este contexto aparece WireGuard, un protocolo moderno que busca simplificar la implementación sin sacrificar seguridad.
WireGuard: una VPN moderna
WireGuard es una solución VPN diseñada con tres objetivos principales:
-
Simplicidad
-
Alto rendimiento
-
Seguridad moderna
A diferencia de otros protocolos, WireGuard tiene una base de código muy pequeña, lo que reduce la probabilidad de errores y facilita su mantenimiento.
Pensar que Uds. podrían tener que desarrollar con Microcontroladores implementaciones en IoT que tengan cierta seguridad, en esos escenarios protocolos como este, sencillos, seguros y de alto rendimiento serían de utilidad. Probablemente si pensamos implementaciones con servidores con grandes capacidades IPSec, podría ser la opción.
En términos generales podríamos decir :
- IPSec → más típico en Site-to-Site
- WireGuard → más práctico en Remote Access.
¿Cómo funciona WireGuard?
WireGuard se basa en un modelo muy simple: cada dispositivo que participa en la VPN tiene un par de claves criptográficas:
-
Una clave privada, que se mantiene secreta
-
Una clave pública, que se comparte con otros dispositivos
Los dispositivos (llamados peers) se identifican entre sí mediante sus claves públicas. No es necesario un proceso complejo de negociación como en otros protocolos.
Funciona como un sistema de identidades basadas en claves, NO hay cliente/servidor!!.
Wireguard usa un sistema de configuración distribuida.
El concepto de peer
En WireGuard no existe una distinción estricta entre cliente y servidor. Todos los dispositivos son considerados peers.
Sin embargo, en la práctica suele haber un nodo que actúa como punto central (por ejemplo, un servidor con IP pública), al cual se conectan los demás.
Cada peer tiene:
- su propia clave privada (secreta)
- su propia clave pública
- las claves públicas de los peers con los que quiere comunicarse.
- la IP está asociada a cada clave pública de cada peer
Wireguard, NO se enruta hacia máquinas → se enruta hacia claves públicas. Cada peer en WireGuard tiene una identidad (su clave pública), y la comunicación ocurre cuando un peer cifra datos usando la clave pública de otro peer, siempre que exista una relación configurada entre ellos. ( punto 3 y 4) .
En WireGuard: la clave pública = identidad del peer.

Si un peer recibe un paquete que dice venir de 10.0.0.2 pero fue descifrado usando una clave que NO está asociada a esa IP. ¿Que debería hacer?
Respuesta: Descartarlo!
Direccionamiento en la VPN
Dentro de la VPN se define una red privada, independiente de la red física. Si la red LAN privada interna está en la 192.168.x.x la VPN tendía otra red.
Por ejemplo:
-
Red VPN: 10.0.0.0/24
-
Servidor: 10.0.0.1
-
Cliente: 10.0.0.2
Esto permite que los dispositivos se comuniquen como si estuvieran en una LAN de la VPN (distinta de la LAN privada) .
El rol clave de AllowedIPs
Uno de los conceptos más importantes en WireGuard es el parámetro AllowedIPs.
Este campo define dos cosas simultáneamente:
-
Qué direcciones IP pueden ser alcanzadas a través de un peer
-
Qué tráfico debe enviarse por el túnel
En otras palabras, actúa como una combinación de:
-
Tabla de enrutamiento
-
Lista de control de acceso
Con esto la seguridad aumenta, no cualquiera se puede conectar a la VPN!.
Flujo de comunicación
Cuando un cliente quiere comunicarse:
-
Envía un paquete al servidor usando UDP ( ver que eso hace que sea rápido , frente a TCP)
-
Se establece una relación segura basada en claves (publica-privada)
-
Se crea un túnel cifrado
-
Todo el tráfico posterior viaja protegido
Este proceso es muy eficiente y rápido.
¿Por qué WireGuard usa UDP?
WireGuard utiliza UDP en lugar de TCP por varias razones:
-
Reduce la sobrecarga de control
-
Evita problemas como retransmisiones duplicadas
-
Permite mayor control del flujo dentro del protocolo
Esto se traduce en mejor rendimiento. Notar que esto refuerza la idea de uso en situaciones donde no se tiene capacidad de procesamiento potente, ejemplo microcontroladores en IoT.
NAT y acceso a Internet
Cuando un cliente VPN necesita acceder a Internet a través del servidor, es necesario configurar:
-
IP forwarding (para permitir el reenvío de paquetes)
-
NAT (para traducir direcciones privadas a públicas)
Este aspecto conecta la VPN con conceptos de routing.
WireGuard funciona añadiendo una o varias interfaces de red, como eth0 o wlan0, denominadas wg0 (o wg1, wg2, wg3, etc.). Esta interfaz actúa como un túnel.
WireGuard asocia las direcciones IP de los túneles con claves públicas y puntos finales remotos.
Envío y Recepción
Veamos la secuencia de pasos que se realizan cuando la interfaz envía un paquete a un peer y el peer del otro extremo lo recive.

Nota: WireGuard no “abre sesiones”, simplemente decide: “¿este paquete pertenece a un peer válido y autorizado?
¿Dónde ocurre el cifrado?.
Respuesta: El cifrado ocurre en el peer que envía el paquete, utilizando la clave pública del peer destino.
- El cifrado ocurre en el peer emisor
- Usa la clave pública del peer destino
¿Dónde se decide descartar?
Respuesta: El descarte puede ocurrir tanto en el envío (si no existe un peer asociado a la IP destino) como en la recepción (si falla el descifrado o si la IP no está permitida en AllowedIPs).
¿Qué rol cumple AllowedIPs?
Respuesta: AllowedIPs define qué direcciones IP están asociadas a cada peer, funcionando tanto como una tabla de enrutamiento (qué tráfico enviar) como un mecanismo de control de acceso (qué tráfico aceptar).
