Parte: 1 — Redes y seguridad de redes · Fuente: RFC 4301 (IPsec); documentación de WireGuard y OpenVPN ⏱️ Duración estimada: 130 min · Nivel: Intermedio
Comprender cómo funcionan las redes privadas virtuales y los túneles cifrados, y configurar los tres más usados: WireGuard (moderno y simple), OpenVPN (flexible y probado) e IPsec (estándar para site-to-site). El alumno aprenderá a elegir la tecnología según el caso de uso y a desplegar un túnel funcional con parámetros seguros.
Al finalizar, el alumno podrá:
AllowedIPs.| # | Tema | Por qué importa |
|---|---|---|
| 1 | Conceptos: VPN, túnel, encapsulación | Base de todo lo demás |
| 2 | Acceso remoto vs. site-to-site | Elegir arquitectura |
| 3 | WireGuard: criptografía moderna | Simplicidad y rendimiento |
| 4 | OpenVPN: PKI y TLS | Flexibilidad y compatibilidad |
| 5 | IPsec: IKE, ESP, AH, modos | Estándar de la industria |
| 6 | Enrutamiento y AllowedIPs/split tunnel |
Qué tráfico va por el túnel |
| 7 | Verificación y hardening | Confirmar que cifra y es seguro |
La idea que sostiene toda VPN es la encapsulación: coger un paquete IP completo, cifrarlo, y meterlo como carga útil dentro de otro paquete IP que viaja por la red pública. El paquete exterior lleva las direcciones de los dos extremos del túnel y no revela nada de lo que transporta; el interior, con las direcciones reales de origen y destino, viaja protegido. Cuando el paquete llega al otro extremo, se descifra y se reinyecta como si hubiera nacido en esa red. Eso es lo que crea la ilusión de que dos redes separadas por Internet son una sola red privada.
De esa mecánica salen las dos arquitecturas. En acceso remoto, un usuario (el "guerrero de carretera") monta un túnel hasta la red de su organización y trabaja como si estuviera dentro. En site-to-site, dos redes enteras se unen a través de un par de gateways que cifran todo lo que cruza entre ellas, de forma transparente para los equipos de cada lado. La diferencia no es de tecnología sino de dónde termina el túnel: en un dispositivo del usuario o en la puerta de una red.
WireGuard es la apuesta moderna y su virtud es la simplicidad. Vive en el kernel,
usa un conjunto fijo de primitivas criptográficas actuales (Curve25519,
ChaCha20-Poly1305, BLAKE2), y su configuración cabe en unas pocas líneas: cada par se
identifica por su clave pública, exactamente como SSH. Menos código significa menos
superficie de ataque y menos que auditar, y su rendimiento supera al de las
alternativas. Su modelo mental clave es AllowedIPs, que cumple doble función: define
qué destinos se enrutan por el túnel y, en recepción, qué IP de origen se aceptan de
cada par (cryptokey routing).
OpenVPN es la opción veterana y flexible: corre en espacio de usuario, se apoya en TLS y en una PKI de certificados, y por eso puede atravesar casi cualquier red —incluso disfrazándose de HTTPS sobre el 443— a costa de más configuración y menor rendimiento. IPsec es el estándar de la industria y el más complejo: no es un protocolo sino una suite (IKE negocia las claves; ESP cifra y autentica la carga; AH solo autentica), con dos modos —transporte, que cifra solo la carga, y túnel, que cifra el paquete entero— y es lo que hablan de fábrica los equipos de red y los cortafuegos corporativos.
Montar el túnel es la mitad del trabajo; la otra mitad es asegurarse de que hace lo que
crees. El error de configuración más frecuente y peligroso es el split tunneling mal
entendido: si solo enrutas por el túnel el rango de la oficina, el resto del tráfico del
usuario sale por su conexión local sin protección, lo que puede ser aceptable o un
agujero según el caso —un portátil comprometido con un pie en cada red es un puente—.
Enrutar todo por el túnel (AllowedIPs = 0.0.0.0/0) protege pero concentra el tráfico
y expone la resolución DNS, que hay que forzar también por el túnel para no filtrar por
fuera qué dominios visita el usuario.
Y una VPN cifra el transporte, no valida al usuario ni comprueba el estado del dispositivo: es un canal, no un control de acceso. Por eso encaja como una pieza dentro del zero trust de la clase 042 y no como su sustituto. Verificar que un túnel realmente cifra —capturando en el interfaz físico y confirmando que ahí no se ve el tráfico interior en claro— es un hábito que separa "lo configuré" de "funciona".
AllowedIPs (WireGuard): define qué rangos se enrutan por el túnel y qué IP de origen se aceptan del peer; determina el "split tunnel".| Término | Definición concisa |
|---|---|
| VPN | Red privada extendida sobre una infraestructura pública mediante cifrado |
| Túnel | Encapsulación de un paquete dentro de otro para atravesar una red |
| Acceso remoto | Túnel de un usuario individual hacia la red de la organización |
| Site-to-site | Túnel entre dos redes completas, gateway a gateway |
| WireGuard | VPN moderna en kernel, con criptografía fija y configuración mínima |
AllowedIPs |
En WireGuard, destinos enrutados y orígenes aceptados por par |
| OpenVPN | VPN en espacio de usuario basada en TLS y PKI; muy flexible |
| IPsec | Suite estándar de VPN: IKE, ESP y AH |
| IKE | Protocolo de intercambio de claves de IPsec |
| ESP / AH | Cifrado+autenticación / solo autenticación en IPsec |
| Modo túnel vs. transporte | Cifrar el paquete entero o solo su carga útil |
| Split tunneling | Enrutar solo parte del tráfico por el túnel |
| PKI | Infraestructura de certificados que autentica los extremos |
| Fuga de DNS | Resolver nombres fuera del túnel, revelando los dominios visitados |
sudo apt install wireguard.sudo apt install openvpn easy-rsa.strongswan (sudo apt install strongswan).⚠️ Nota: genera y protege las claves privadas con permisos estrictos (
chmod 600). Nunca compartas claves privadas ni las subas a repositorios. Practica en tu laboratorio.
bash
wg genkey | tee privada.key | wg pubkey > publica.key
chmod 600 privada.key
/etc/wireguard/wg0.conf:```ini
[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey =
[Peer]
PublicKey =
AllowedIPs = 10.10.0.0/24 y Endpoint = <ip-servidor>:51820.bash
sudo wg-quick up wg0
sudo wg show
ping 10.10.0.1
bash
sudo tcpdump -i eth0 -n udp port 51820
bash
make-cadir ~/ca && cd ~/ca
./easyrsa init-pki && ./easyrsa build-ca nopass
./easyrsa build-server-full servidor nopass
./easyrsa build-client-full cliente1 nopass
Configura server.conf (puerto 1194/udp, dev tun, cifrado AES-GCM) y arranca sudo openvpn --config server.conf.
7. IPsec con strongSwan (site-to-site, esquema): edita /etc/ipsec.conf con ikev2, esp=aes256-sha256, define leftsubnet/rightsubnet, y levanta con sudo ipsec up <conexion>.
Despliega un túnel funcional (WireGuard u OpenVPN) entre dos VMs de laboratorio en subredes distintas, de modo que puedan alcanzarse por la IP interna del túnel. Entrega: los archivos de configuración (sin claves privadas), la salida de wg show/estado de OpenVPN, y una captura de tcpdump en la interfaz física que demuestre que el tráfico va cifrado.
Criterio de aceptación: el ping entre IPs internas funciona, la captura en la interfaz física no muestra el contenido en claro, y las claves privadas tienen permisos 600 (nunca incluidas en la entrega).
| Síntoma / mensaje | Causa y cómo arreglar |
|---|---|
| WireGuard no pasa tráfico | AllowedIPs mal definido o falta habilitar ip_forward; revisa rutas y sysctl net.ipv4.ip_forward=1 |
| "handshake did not complete" | Clave pública equivocada, reloj desincronizado o firewall bloquea el puerto UDP |
| OpenVPN "TLS handshake failed" | Certificados mal generados o CA no confiable; regenera la PKI |
| El túnel sube pero no hay conectividad | Falta NAT/masquerade en el servidor o firewall bloquea el tun; añade regla POSTROUTING |
| IPsec no cifra la subred esperada | leftsubnet/rightsubnet incorrectos; ajusta las políticas de tráfico |
❓ ¿WireGuard o OpenVPN? WireGuard es más simple, rápido y con menor superficie de código; ideal para nuevos despliegues. OpenVPN es más flexible y compatible con entornos que exigen TCP/443 o autenticación por usuario. IPsec domina el site-to-site empresarial.
❓ ¿Una VPN me hace anónimo? No. Cifra el tráfico entre tus extremos y desplaza la confianza al proveedor de la VPN. No es anonimato; para eso hay otras herramientas y consideraciones.
❓ ¿Qué es un split tunnel?
Configuración donde solo parte del tráfico (ciertas subredes) va por la VPN y el resto sale directo. Se controla con las rutas y AllowedIPs.
❓ ¿Por qué importa PFS? Porque si un atacante captura tráfico hoy y roba una clave mañana, con PFS no puede descifrar las sesiones pasadas. WireGuard y las suites modernas lo proporcionan.
Clase 035 — IDS/IPS con Snort y Suricata