Generalidades
Si tienes habilitada la red privada, puedes usarla para exponer algunas instancias a Internet mientras limita el acceso a otras en la red privada. Por ejemplo, es posible que desees que tu instancia esté expuesta en el puerto 80 o 443 mientras mantienes el acceso a la 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 respuesta a eso es usar un host de salto.
Cómo funciona
Un host de salto (o bastión) actúa como intermediario de todo el tráfico a 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 ejecutándose con una dirección IP flotante. Esta podría ser cualquier instancia de DreamCompute con una IP flotante, pero normalmente usarías un host de salto dedicado o tu instancia. Asegúrate de que puedes acceder a través de SSH en esa máquina con tu llave SSH. Consulta el siguiente artículo para obtener instrucciones sobre cómo cargar una llave pública en tu panel de DreamCompute:
Configurar un host de salto en DreamCompute
La siguiente configuración muestra un archivo de configuración SSH (~/.ssh/config) en una máquina local para que puedas conectarte primero a un host de salto llamado jump. Cambia el nombre de usuario al usuario predeterminado para tu imagen.
- Ingresa lo siguiente. Reemplaza X.X.X.X con la dirección IP flotante de tu instancia en la opción HostName. Además, asegúrate de que estás utilizando 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 host de salto con SSH:
[user@localhost]$ ssh jump
- Una vez que verifiques que funciona, actualiza la configuración SSH para enviar todo el tráfico desde tu máquina a la red privada DreamCompute a través de un proxy en el host de salto ingresando lo siguiente:
Host 10.10.10.* ProxyCommand ssh jump -W %h:%p User username IdentityFile ~/.ssh/dreamcompute.pem
Este ejemplo usa una clave separada para instancias privadas en lugar del host de salto, lo que te permite mantener ambas claves en tu máquina - el host de salto no necesita la llave privada para las otras instancias. Esto proporciona un nivel adicional de seguridad.
La opción -W reenvía todos los stdin y stdout al host y puerto especificados.
-
Para conectarte a tus instancias privadas desde una máquina local, SSH a la IP privada:
[user@localhost]$ ssh 10.10.10.5