Generalidades
Si tienes habilitada la red privada, puedes usarla para exponer algunas instancias a Internet mientras limitas el acceso a otras en la red privada. Por ejemplo, es posible que quieras exponer tu instancia en el puerto 80 o 443, mientras mantienes el acceso a tu base de datos restringido solo a la red privada. Una complicación de esta configuración es cómo acceder a tus instancias privadas sin una dirección IP flotante. La solución es usar un jump host.
¿Cómo funciona un jump host?
Un jump host (o bastión) actúa como intermediario para todo el tráfico hacia tus instancias no públicas. Es fácil de configurar usando SSH y sus opciones de configuración.
Lo primero que debes hacer es asegurarte de tener una instancia en ejecución con una dirección IP flotante. Esta puede ser cualquier instancia de DreamCompute con una IP flotante, pero normalmente usarías un jump host dedicado o tu instancia. Asegúrate de poder acceder a esa máquina por SSH con tu llave de SSH. Revisa el siguiente artículo para obtener instrucciones sobre cómo subir una llave pública a tu Panel de DreamCompute:
¿Cómo configurar un jump host en DreamCompute?
La siguiente configuración muestra un archivo de configuración de SSH (~/.ssh/config) en una máquina local para que pueda conectarse primero a un jump host llamado jump. Cambia username por el usuario predeterminado de tu imagen.
-
Ingresa lo siguiente. Reemplaza X.X.X.X por la dirección IP flotante de tu instancia en la opción HostName. Además, asegúrate de usar la llave pública correcta.
Host jump HostName X.X.X.X #Replace with your Floating IP Address User username IdentityFile ~/.ssh/id_rsa.pub
-
Asegúrate de poder iniciar sesión en tu jump host con SSH:
[user@localhost]$ ssh jump
-
Una vez que verifiques que funciona, actualiza la configuración de SSH para enviar todo el tráfico desde tu máquina hacia la red privada de DreamCompute a través de un proxy en el jump host, ingresando lo siguiente:
Host 10.10.10.* ProxyCommand ssh jump -W %h:%p User username IdentityFile ~/.ssh/dreamcompute.pem
Este ejemplo usa una llave separada para las instancias privadas en lugar del jump host, lo que te permite mantener ambas llaves en tu máquina - el jump host no necesita la llave privada de las otras instancias. Esto proporciona un nivel adicional de seguridad.
La opción -W reenvía todo stdin y stdout al host y puerto especificados.
-
Para conectarte a tus instancias privadas desde una máquina local, conéctate por SSH a la IP privada:
[user@localhost]$ ssh 10.10.10.5