El registro de autenticación muestra 50.000 intentos de SSH en un pequeño VPS en preparación este fin de semana. No se vio comprometido nada: la contraseña de root estaba deshabilitada. Pero el ruido enmascara una alerta real, y fail2ban prohibió el monitoreo de la IP.
Un bastión (host de salto) concentra la administración: un único punto conocido, protegido y registrado, en lugar de N servidores con :22 orientados al mundo.
Modelo bastión
Arquitectura: administrador → bastión (público o solo VPN) → objetivos en una red privada sin SSH público.
Refuerzo de bastión: sistema operativo mínimo, actualizaciones de seguridad automáticas, 2FA, "AllowUsers", sin agente de reenvío a menos que se documente explícitamente.
ProxyJump y ergonomía
Ejemplo ~/.ssh/config:
Bastión anfitrión
Nombre de host jump.example.com
administrador de usuario
Producto anfitrión-*
Bastión ProxyJump
Implementación de usuario
ControlMaster reduce la latencia percibida. Bastion solo es útil si el equipo lo usa sin problemas: mida los tickets de tiempo de espera de SSH antes de agregar saltos adicionales.
Claves, rotación y auditoría
Una clave por persona, no compartida en Slack. authorized_keys a través de Ansible o Terraform. Revocar el día de salida.
El bastión conoce las claves humanas; los objetivos conocen la clave de bastión o los certificados SSH (Vault, paso-ca). Grabación de sesiones (tlog, Teleport) para producción regulada; mínimo: centralizar auth.log en SIEM.
Alternativas modernas
| Herramienta | Fuerza | Debilidad |
|---|---|---|
| Malla WireGuard | No se percibe ningún salto | Gobernanza clave |
| Administrador de sesiones SSM | Puerto de entrada cero | Bloqueo de AWS |
| SSH de escala trasera | Simplicidad PYME | Política de ACL a cuidar |
En alojamiento compartido sin SSH raíz, no se aplica el bastión: limite el panel de administración por IP y 2FA.
Endurecimiento gradual
Semana 1: bastión en funcionamiento, el acceso paralelo directo aún es posible para la reversión. Semana 2: cortafuegos cerrado 22 directos excepto bastión. Semana 3: reseña periodística. Semana 4: retirada del acceso paralelo.
Automatizar el inventario semanal: script API en la nube que enumera instancias con :22 público. Un descuido Terraform = regresión instantánea.
Ofertas de bastión y hosting
Algunas nubes ofrecen bastión administrado o administrador de sesión: evalúe el costo versus el salto de VM pequeña a 5 € en el mismo centro de datos. Bare metal: el bastión en la VM vecina reduce la latencia de ProxyJump.
Guarde la configuración de bastion sshd en Git (Ansible): después de restaurar la instantánea, verifique las claves autorizadas. Exigir a los proveedores de servicios que pasen por el bastión clave efímero: la revocación centralizada al final del día de la misión.
Bastión Fail2ban + correlación SIEM: fuerza bruta en el host de salto = alerta P1, no cárcel silenciosa. Para Windows Admin, bastion Linux + túnel RDP equivalente: misma lógica: concentrarse y registrar.
La cumbre: cerca de 22 en todas partes excepto en un bastión sin parches
Decide y avanza sin puntos ciegos
Cuente los servidores con SSH público hoy; si es más de uno, Bastion está detrás. Implemente ProxyJump documentado, revoque claves huérfanas y pruebe la reconstrucción del bastión desde Ansible trimestralmente.
Requerir proveedores vía bastión con clave efímera. Compare el salto VPS de 5 € frente al bastión gestionado a través del directorio. Complete con Fail2ban: límites sobre el endurecimiento SSH.
Preguntas frecuentes
¿Bastión o VPN?
Bastión = punto SSH único auditado. VPN = gran red privada. A menudo se combinan según perfiles de acceso.
¿Contraseña autorizada en el bastión?
No en producción: claves Ed25519, MFA opcional, fail2ban o límite de velocidad además.
¿Cómo acelerar ProxyJump?
~/.ssh/config con Host bastion + ProxyJump + ControlMaster para multiplexación.
¿Y sin fortaleza?
Administrador de sesiones SSM, Tailscale SSH, administrador mTLS: no hay 22 públicos en cada nodo.
Cuente la cantidad de servidores con SSH público hoy; si es más de uno, el bastión no es opcional, es tarde.
