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 |
AllowedIPs (WireGuard): define qué rangos se enrutan por el túnel y qué IP de origen se aceptan del peer; determina el "split tunnel".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