Daniel López Azaña

Tema

Social Media

Blog

GNU/Linux, Open Source, Cloud Computing, DevOps y más...

Bastion host vs VPN: ¿cuál es el mejor método de acceso seguro?

Comparación entre bastion host y VPN para acceso seguro a redes

Al asegurar el acceso a servidores y servicios internos, las organizaciones se enfrentan típicamente a una decisión crítica: ¿deberían usar un bastion host, una VPN (Virtual Private Network), o ambos? Cada enfoque ofrece ventajas distintas y aborda diferentes requisitos de seguridad.

En este artículo voy a explorar las diferencias técnicas entre bastion hosts y soluciones VPN, analizar sus fortalezas y debilidades respectivas, y explicar cuándo usar cada enfoque o combinarlos para mejorar la seguridad.

Recordatorio rápido: ¿qué es un bastion host?

Un bastion host (o máquina de salto) es un servidor endurecido que se sitúa en el perímetro de la red, actuando como único punto de acceso controlado a recursos internos. Los usuarios se conectan primero al bastion host y luego “saltan” desde allí para acceder a servidores internos.

Características clave:

  • Gateway de seguridad de propósito único
  • Huella de software mínima
  • Expuesto a internet
  • Todo el acceso registrado y auditado
  • Los usuarios se conectan vía SSH o RDP

Para una comprensión más profunda de los bastion hosts, consulta mi artículo anterior sobre diferencias entre bastion host y jump box.

¿Qué es una VPN?

Una VPN (Virtual Private Network) crea un túnel cifrado entre el dispositivo de un usuario y la red interna, extendiendo efectivamente la red privada hasta el usuario remoto. Una vez conectado, el dispositivo del usuario se convierte en parte de la red interna y puede acceder a recursos como si estuviera físicamente presente en la ubicación.

Tipos de VPN

VPN site-to-site: conecta redes completas entre sí (por ejemplo, sucursales con la sede central).

VPN de acceso remoto: conecta usuarios individuales a la red corporativa desde ubicaciones remotas.

VPN SSL/TLS: acceso VPN basado en navegador sin requerir software cliente dedicado.

VPN IPsec: VPN a nivel de red usando Internet Protocol Security para autenticación y cifrado.

Características clave de una VPN

Acceso a nivel de red: los usuarios obtienen acceso al segmento de red completo, no solo a servidores individuales.

Túnel cifrado: todo el tráfico entre el usuario y la red se cifra.

Software cliente requerido: la mayoría de soluciones VPN requieren instalar software cliente en los dispositivos de usuario (excepto VPN SSL).

Conectividad transparente: una vez conectados, los usuarios acceden a recursos internos usando sus direcciones IP privadas.

Protocolos y estándares: basadas en protocolos establecidos como IPsec, OpenVPN, WireGuard o SSL/TLS.

Bastion host vs VPN: diferencias clave

Entender las diferencias fundamentales ayuda a tomar decisiones arquitectónicas informadas:

1. Alcance de acceso

Bastion host: proporciona acceso a servidores o servicios específicos. Cada conexión es explícita y dirigida.

VPN: otorga acceso a segmentos de red completos. Los usuarios pueden alcanzar cualquier recurso dentro de la red conectada.

2. Método de conexión

Bastion host: proceso de conexión de dos pasos (conectar al bastion, luego al servidor destino). Requiere mantener sesiones SSH/RDP.

VPN: una única conexión establece acceso a todos los recursos permitidos. Las conexiones posteriores son directas a servidores internos.

3. Requisitos del cliente

Bastion host: requisitos mínimos del cliente. Solo necesita cliente SSH o RDP, típicamente integrado en los sistemas operativos.

VPN: requiere instalación y configuración de software cliente VPN (excepto VPN SSL). Puede requerir derechos administrativos para la instalación.

4. Visibilidad de red

Bastion host: la red interna permanece invisible para los usuarios. Solo ven los recursos a los que se conectan explícitamente.

VPN: los usuarios obtienen visibilidad del segmento de red completo. Pueden descubrir servicios mediante escaneo de red (si está permitido).

5. Experiencia de usuario

Bastion host: más engorroso para acceso frecuente. Requiere múltiples pasos de conexión y gestión de credenciales.

VPN: experiencia más fluida. Una vez conectados, acceden a recursos internos como servicios de red local.

6. Control granular

Bastion host: excelente control granular. Puede restringir acceso a servidores específicos y auditar cada conexión.

VPN: modelo de acceso más amplio. El control granular requiere reglas de firewall adicionales y segmentación de red.

Ventajas y desventajas

Comparación de ventajas y desventajas entre bastion host y VPN

Ventajas del bastion host

Superficie de ataque mínima: solo puertos SSH/RDP expuestos, sistema altamente endurecido.

Auditoría completa: cada conexión registrada con todos los detalles de sesión.

Sin software cliente: funciona con herramientas nativas del sistema operativo (SSH, RDP).

Control de acceso preciso: los usuarios solo acceden a servidores autorizados específicos.

Más simple de implementar: un único servidor para desplegar y mantener.

Menor uso de recursos: sobrecarga mínima comparada con túneles VPN completos.

Desventajas del bastion host

Menos conveniente: múltiples pasos de conexión para cada acceso a servidor.

Casos de uso limitados: principalmente útil para acceso administrativo, no para acceso general a red.

Complejidad de conexión: gestionar claves, reenvío de agente y múltiples sesiones puede resultar complicado.

Punto único de fallo: si el bastion host cae, se pierde todo el acceso (a menos que sea redundante).

No adecuado para aplicaciones cliente-servidor: aplicaciones que esperan conectividad de red directa no funcionarán bien.

Ventajas de VPN

Acceso de red fluido: una vez conectados, los usuarios acceden a recursos internos directamente.

Soporta todos los protocolos: funciona con cualquier aplicación o protocolo, no solo SSH/RDP.

Mejor experiencia de usuario: más intuitivo para usuarios finales acostumbrados al acceso de red normal.

Ideal para trabajo remoto: los empleados pueden trabajar como si estuvieran en la oficina.

Soporta aplicaciones complejas: clientes de base de datos, recursos compartidos de archivos, aplicaciones web internas funcionan de forma transparente.

Desventajas de VPN

Superficie de ataque más amplia: infraestructura más compleja con vulnerabilidades potenciales.

Requiere software cliente: los usuarios deben instalar y mantener clientes VPN (excepto VPN SSL).

Sobrecarga de rendimiento: el cifrado/descifrado añade latencia y reduce el rendimiento.

Control de acceso amplio: sin segmentación adicional, los usuarios obtienen acceso a segmentos de red completos.

Riesgos de split-tunneling: si está habilitado, puede exponer recursos internos a dispositivos de usuario comprometidos.

Más complejo de gestionar: gestión de certificados, distribución de clientes, problemas de compatibilidad.

Cuándo usar un bastion host

Los bastion hosts son ideales para:

Acceso administrativo a servidores: administradores de sistemas que necesitan acceso SSH/RDP para gestionar infraestructura.

Entornos de desarrollo: desarrolladores accediendo a instancias cloud para despliegue y depuración.

Requisitos de acceso mínimo: equipos pequeños con servidores limitados a los que acceder.

Cumplimiento normativo y auditoría: organizaciones que requieren registro detallado de sesiones y reproducción.

Acceso de terceros: otorgar acceso temporal a contratistas o proveedores para servidores específicos.

Arquitecturas nativas cloud: acceder a instancias EC2 en subredes privadas sin exponerlas públicamente.

Despliegues sensibles al coste: costes de infraestructura y licenciamiento menores comparados con soluciones VPN empresariales.

Proyecto relacionado

Explora una implementación real que he realizado múltiples veces para varios clientes en producción: bastion host con autenticación 2FA, control de acceso basado en roles, túneles SSH cifrados para servicios internos, auditoría completa de sesiones y gestión automatizada de usuarios en AWS.

Ver proyecto: securización de infraestructura AWS con bastion host avanzado

Cuándo usar una VPN

Las soluciones VPN destacan cuando:

Se necesita acceso amplio a red: los usuarios requieren acceso a múltiples servicios y aplicaciones a través de la red.

Trabajo remoto: permitir a empleados trabajar remotamente con acceso completo a recursos internos.

Aplicaciones complejas: soportar aplicaciones cliente-servidor que requieren conectividad de red directa.

Compartir archivos y colaboración: acceder a servidores de archivos, unidades compartidas y plataformas de colaboración.

Aplicaciones legacy: aplicaciones que no soportan autenticación moderna o requieren configuraciones de red específicas.

Múltiples protocolos y servicios: los usuarios necesitan acceso a bases de datos, aplicaciones web, servidores de correo y más.

Conectividad site-to-site: conectar sucursales o redes de socios.

Cuándo combinar ambos: VPN en bastion host

Las arquitecturas más seguras frecuentemente combinan ambos enfoques, ofreciendo servicios VPN desde un bastion host endurecido. Esto proporciona defensa en profundidad:

Beneficios de la arquitectura

Seguridad en capas: VPN proporciona cifrado de red, mientras el bastion host añade control de acceso y auditoría.

Punto de entrada único: consolida el acceso remoto a través de un único sistema endurecido.

Complejidad reducida: un sistema para asegurar, monitorizar y mantener para acceso remoto.

Acceso flexible: ofrecer tanto VPN (para acceso amplio) como SSH/RDP directo (para acceso administrativo).

Coste efectivo: infraestructura única sirviendo múltiples patrones de acceso.

Patrones de implementación

Patrón 1: servidor VPN en bastion

Desplegar servidor OpenVPN, WireGuard o similar en el bastion host:

# Ejemplo: instalando WireGuard en bastion host
apt-get update
apt-get install wireguard

# Generar claves del servidor
wg genkey | tee /etc/wireguard/privatekey | wg pubkey > /etc/wireguard/publickey

# Configurar interfaz WireGuard
cat > /etc/wireguard/wg0.conf << EOF
[Interface]
PrivateKey = $(cat /etc/wireguard/privatekey)
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
# Configuración de cliente
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.0.0.2/32
EOF

# Habilitar e iniciar WireGuard
systemctl enable wg-quick@wg0
systemctl start wg-quick@wg0

Patrón 2: VPN SSL en bastion

Para acceso basado en navegador sin software cliente:

OpenVPN Access Server: solución comercial con cliente basado en web.

Pritunl: servidor VPN open-source con interfaz web moderna.

AWS Client VPN: servicio VPN gestionado (puede enrutar a través de bastion para control adicional).

Patrón 3: VPN IPsec en bastion

Para acceso remoto site-to-site basado en estándares:

# Ejemplo: configuración VPN IPsec con strongSwan
apt-get install strongswan strongswan-pki

# Configurar IPsec
cat > /etc/ipsec.conf << EOF
config setup
    charondebug="ike 2, knl 2, cfg 2, net 2"
    uniqueids=never

conn roadwarrior
    auto=add
    type=tunnel
    keyexchange=ikev2
    fragmentation=yes
    forceencaps=yes
    ike=aes256-sha256-modp2048!
    esp=aes256-sha256!
    dpdaction=clear
    dpddelay=300s
    rekey=no
    left=%any
    leftid=@vpn.example.com
    leftcert=server.crt
    leftsendcert=always
    leftsubnet=0.0.0.0/0
    right=%any
    rightid=%any
    rightauth=eap-mschapv2
    eap_identity=%identity
    rightdns=8.8.8.8,8.8.4.4
    rightsourceip=10.0.0.0/24
EOF

Mejores prácticas para despliegue combinado

Separar acceso VPN y gestión: usar puertos y credenciales diferentes para VPN y acceso directo a bastion.

Segmentación de red: los usuarios VPN deberían acceder solo a segmentos de red específicos, no a todo.

Autenticación fuerte: implementar autenticación basada en certificados para VPN, MFA para bastion host.

Inspección de tráfico: monitorizar y registrar tráfico VPN para actividad sospechosa.

Responsabilidades separadas: diferentes equipos gestionan el acceso VPN y la administración de servidores.

Auditorías regulares: revisar el acceso de usuarios VPN y registros del bastion host regularmente.

Soluciones de proveedores cloud

AWS

AWS Client VPN: servicio VPN gestionado que puede configurarse para enrutar a través de un bastion host para control adicional.

AWS Systems Manager Session Manager: alternativa moderna que elimina la necesidad de bastion hosts y VPN para muchos casos de uso.

Site-to-Site VPN: para conectar redes on-premise a AWS VPC.

GCP

Cloud VPN: conexión segura entre redes on-premise y GCP VPC.

Identity-Aware Proxy (IAP): elimina la necesidad de bastion hosts o VPN para muchos escenarios de acceso.

Cloud Interconnect: conexión física dedicada para arquitecturas cloud híbridas.

Azure

Azure VPN Gateway: servicio VPN gestionado para conectividad site-to-site y point-to-site.

Azure Bastion: servicio de bastion host completamente gestionado que elimina la necesidad de exponer puertos RDP/SSH.

ExpressRoute: conexión privada entre infraestructura on-premise y Azure.

Mejores prácticas de seguridad

Independientemente del enfoque que elijas:

Autenticación

Autenticación multifactor (MFA): obligatoria tanto para acceso a bastion host como a VPN.

Autenticación basada en certificados: preferir certificados sobre contraseñas siempre que sea posible.

Credenciales de corta duración: generar tokens de acceso temporales que expiran automáticamente.

Seguridad de red

Acceso de mínimo privilegio: otorgar a los usuarios el acceso mínimo necesario para realizar sus tareas.

Segmentación de red: aislar recursos sensibles incluso dentro de la red interna.

Filtrado de IPs permitidas: restringir acceso a direcciones IP conocidas cuando sea factible.

Monitorización y auditoría

Registro centralizado: reenviar todos los registros a un sistema de gestión de registros seguro.

Detección de anomalías: implementar alertas para patrones de acceso inusuales.

Revisiones de acceso regulares: auditar quién tiene acceso y revocar permisos innecesarios.

Grabación de sesiones: considerar grabar sesiones para seguridad y cumplimiento.

Mantenimiento

Actualizaciones regulares: mantener los sistemas parcheados y actualizados.

Escaneo de seguridad: escanear regularmente en busca de vulnerabilidades.

Recuperación ante desastres: implementar alta disponibilidad y métodos de acceso de respaldo.

Documentación: mantener documentación clara para respuesta ante incidentes.

Conclusión

La elección entre bastion hosts y VPN no es binaria: cada uno sirve diferentes casos de uso y requisitos de seguridad:

Usa un bastion host cuando: necesites acceso administrativo simple y auditable a servidores específicos con infraestructura mínima.

Usa una VPN cuando: necesites acceso amplio a red para aplicaciones y servicios, o para habilitar trabajo remoto en equipos distribuidos.

Combina ambos cuando: quieras seguridad de defensa en profundidad con patrones de acceso flexibles para diferentes casos de uso.

Los entornos cloud modernos ofrecen alternativas gestionadas (AWS Systems Manager Session Manager, GCP Identity-Aware Proxy) que pueden eliminar la necesidad de bastion hosts o VPN tradicionales en muchos escenarios. Sin embargo, entender estos patrones de acceso fundamentales sigue siendo crucial para diseñar arquitecturas de red seguras.

El mejor enfoque depende de tus requisitos específicos: tamaño del equipo, necesidades de cumplimiento, restricciones presupuestarias, requisitos de aplicación y postura de seguridad. Muchas organizaciones utilizan con éxito un enfoque híbrido, ofreciendo VPN para acceso general y bastion hosts para acceso administrativo, proporcionando tanto conveniencia como seguridad.

AWS Security VPN Cloud Architecture
Daniel López Azaña

Sobre el autor

Daniel López Azaña

Emprendedor tecnológico y arquitecto cloud con más de 20 años de experiencia transformando infraestructuras y automatizando procesos.

Especialista en integración de IA/LLM, desarrollo con Rust y Python, y arquitectura AWS & GCP. Mente inquieta, generador de ideas y apasionado por la innovación tecnológica y la IA.

Artículos relacionados

Diagrama comparativo de arquitectura bastion host vs jump box

Bastion host vs jump box: diferencias clave entre ambos conceptos

Descubre las diferencias técnicas entre bastion hosts y jump boxes, cuándo utilizar cada enfoque y las mejores prácticas para asegurar el acceso remoto a servidores en entornos cloud y on-premise.

3 de febrero de 2021
terraform-and-route53-logos

Cómo importar rápidamente todos los registros de una zona DNS de Route53 en Terraform

El comando terraform import nos permite importar en HashiCorp Terraform recursos que ya existían previamente en el proveedor con el que estemos trabajando, es este caso AWS. Sin embargo, sólo permite importar dichos registros uno por uno, con una ejecución de terraform import cada vez. Esto, aparte de ser tremendamente tedioso, en algunas situaciones se vuelve directamente impracticable. Este es el caso de los registros de una zona DNS de Route53. La tarea puede resultar inabarcable si tenemos varias zonas DNS, y cada una tiene decenas o cientos de registros. En este artículo te ofrezco un script en bash que te permitirá importar en Terraform todos los registros de una zona DNS de Route53 en cuestión de segundos o de pocos minutos.

8 de febrero de 2022
Script para cambiar automáticamente todos los volúmenes gp2 a gp3 con aws-cli

Script para cambiar automáticamente todos los volúmenes gp2 a gp3 con aws-cli

El pasado diciembre Amazon anunció sus nuevos volúmenes EBS gp3, los cuales ofrecen mejores prestaciones y un ahorro en el coste del 20% respecto a los que se venían utilizando hasta ahora, los gp2. Pues bien, tras probar satisfactoriamente estos nuevos volúmenes en varios clientes, no puedo hacer otra cosa más que recomendar su utilización, pues son todo ventajas y en estos 2 meses y medio que han transcurrido desde el anuncio no he apreciado ningún problema ni efecto secundario.

16 de febrero de 2021

Comentarios

Sé el primero en comentar

Enviar comentario