¿Qué es una VPN?

Una VPN (Virtual Private Network) o Red Privada Virtual es una tecnología que permite crear una conexión segura y cifrada sobre una red menos segura, como Internet. Las VPN se utilizan para proteger la privacidad, asegurar las comunicaciones y acceder de forma remota a recursos de red privados.

Características principales

1. Cifrado

Las VPN utilizan protocolos de cifrado para proteger los datos transmitidos:

  • AES-256: Estándar de cifrado avanzado
  • ChaCha20: Alternativa moderna y eficiente
  • RSA: Para intercambio de claves

2. Tunelización

Proceso de encapsular paquetes de datos dentro de otros paquetes:

[Datos originales] → [Cifrado] → [Encapsulado] → [Transmisión segura]

3. Autenticación

Mecanismos para verificar la identidad de los usuarios:

  • Certificados digitales
  • Credenciales de usuario/contraseña
  • Autenticación de dos factores (2FA)
  • Tokens de seguridad

Tipos de VPN

VPN de Acceso Remoto (Remote Access VPN)

Permite a usuarios individuales conectarse a una red privada desde ubicaciones remotas.

Casos de uso:

  • Teletrabajo
  • Acceso a recursos corporativos
  • Conexión segura desde redes públicas

VPN Sitio a Sitio (Site-to-Site VPN)

Conecta redes completas entre diferentes ubicaciones geográficas.

Casos de uso:

  • Conectar oficinas corporativas
  • Integración de sucursales
  • Redes empresariales distribuidas

Protocolos VPN comunes

OpenVPN

  • Tipo: Open source
  • Seguridad: Alta (TLS/SSL)
  • Plataformas: Multiplataforma
  • Puerto: Configurable (usualmente 1194)
1
2
# Ejemplo de conexión OpenVPN
sudo openvpn --config cliente.ovpn

WireGuard

  • Tipo: Moderno y ligero
  • Seguridad: Alta (Noise Protocol)
  • Rendimiento: Excelente
  • Código: Minimalista (~4,000 líneas)
1
2
3
4
5
6
7
8
9
# Ejemplo de configuración WireGuard
[Interface]
PrivateKey = <clave-privada>
Address = 10.0.0.2/24

[Peer]
PublicKey = <clave-publica-servidor>
Endpoint = vpn.ejemplo.com:51820
AllowedIPs = 0.0.0.0/0

IPSec

  • Tipo: Suite de protocolos
  • Seguridad: Alta
  • Uso: Principalmente empresarial
  • Componentes: IKE, ESP, AH

L2TP/IPSec

  • Tipo: Combinación de protocolos
  • Seguridad: Media-Alta
  • Compatibilidad: Amplia
  • Uso: Común en dispositivos móviles

Arquitectura de una VPN

┌─────────────┐         ┌─────────────┐         ┌─────────────┐
│   Cliente   │◄───────►│ Servidor VPN │◄───────►│ Red Privada │
│   Remoto    │  Túnel  │   (Gateway)  │         │  Corporativa│
└─────────────┘  Cifrado└─────────────┘         └─────────────┘

Casos de uso

1. Teletrabajo seguro

Empleados acceden de forma segura a recursos corporativos desde casa:

  • Acceso a servidores internos
  • Uso de aplicaciones corporativas
  • Protección de datos sensibles

2. Protección de privacidad

Ocultar la dirección IP y ubicación del usuario:

  • Navegación anónima
  • Evitar rastreo
  • Acceso a contenido geo-restringido

3. Seguridad en redes públicas

Protección al usar WiFi público:

  • Cafeterías
  • Aeropuertos
  • Hoteles

4. Interconexión de oficinas

Conectar múltiples ubicaciones corporativas:

  • Compartir recursos
  • Centralizar servicios
  • Backup entre sitios

Ventajas

Seguridad: Cifrado de extremo a extremo
Privacidad: Oculta actividad de navegación
Acceso remoto: Conectividad desde cualquier lugar
Bypass: Evita restricciones geográficas
Costo-efectivo: Alternativa a líneas dedicadas

Desventajas

Velocidad: Puede reducir el ancho de banda
Complejidad: Configuración puede ser compleja
Costo: Servicios premium requieren suscripción
Confianza: Dependes del proveedor VPN
Compatibilidad: Algunos servicios bloquean VPNs

Implementación básica con WireGuard

En el servidor

1
2
3
4
5
6
7
8
9
# Instalar WireGuard
sudo apt update
sudo apt install wireguard

# Generar claves
wg genkey | tee privatekey | wg pubkey > publickey

# Configurar interfaz
sudo nano /etc/wireguard/wg0.conf

Configuración del servidor:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
PrivateKey = <clave-privada-servidor>
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT

[Peer]
PublicKey = <clave-publica-cliente>
AllowedIPs = 10.0.0.2/32

En el cliente

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
[Interface]
PrivateKey = <clave-privada-cliente>
Address = 10.0.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <clave-publica-servidor>
Endpoint = servidor.ejemplo.com:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Mejores prácticas

  1. Usar protocolos modernos: Preferir WireGuard o OpenVPN
  2. Cifrado fuerte: Mínimo AES-256
  3. Autenticación robusta: Implementar 2FA cuando sea posible
  4. Logs y auditoría: Monitorear accesos y actividad
  5. Kill switch: Bloquear tráfico si VPN se desconecta
  6. DNS seguro: Usar DNS cifrado (DoH/DoT)
  7. Actualizaciones: Mantener software actualizado
  8. Política de no logs: Si usas proveedor externo

Comparación de protocolos

ProtocoloVelocidadSeguridadEstabilidadUso
WireGuard⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Moderno
OpenVPN⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Estándar
IPSec⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Empresarial
L2TP/IPSec⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Compatible
PPTP⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐Obsoleto ❌

Monitoreo y diagnóstico

Verificar estado de conexión

1
2
3
4
5
6
7
8
# WireGuard
sudo wg show

# OpenVPN
sudo systemctl status openvpn@server

# Ver interfaces de red
ip addr show

Pruebas de conectividad

1
2
3
4
5
6
7
8
# Verificar IP pública
curl ifconfig.me

# Prueba de velocidad
speedtest-cli

# Traceroute
traceroute google.com

Herramientas relacionadas

  • WireGuard: Cliente/servidor VPN moderno
  • OpenVPN: Solución VPN open source robusta
  • Tailscale: VPN mesh basada en WireGuard
  • Pritunl: Interfaz de gestión para OpenVPN
  • StrongSwan: Implementación IPSec
  • SoftEther: VPN multi-protocolo

Conceptos Relacionados

Referencias

Glosario

  • Túnel: Conexión cifrada punto a punto
  • Gateway: Servidor que actúa como punto de entrada/salida
  • Split tunneling: Enviar solo cierto tráfico por VPN
  • Kill switch: Función que bloquea internet si VPN se cae
  • Perfect Forward Secrecy: Generación de claves únicas por sesión