Acceso seguro a instancias remotas con un host bastión
Esta guía de aprendizaje puede incurrir en costes. Utilice Estimador de costes para generar una estimación del coste basada en el uso previsto.
Este tutorial le guiará a través del despliegue de un host bastión para acceder de forma segura a instancias remotas dentro de una Virtual Private Cloud (VPC). Un host bastión es una instancia que se suministra con una dirección IP pública y a la que se puede acceder a través de SSH. Una vez configurado, el host bastión actúa como servidor de salto, permitiendo la conexión segura a instancias aprovisionadas sin dirección IP pública.
Para reducir la exposición de los servidores dentro de la VPC, creará y utilizará un host bastión. Las tareas administrativas en los servidores individuales se van a realizar utilizando SSH, al que se accede como proxy a través del bastión. El acceso a los servidores y el acceso normal a Internet desde los servidores, por ejemplo para la instalación de software, solo se permitirá con un grupo de seguridad de mantenimiento especial conectado a esos servidores.
Objetivos
- Aprender a configurar un host bastión y grupos de seguridad con reglas
- Gestionar servidores de forma segura con el host bastión

- Tras configurar la infraestructura necesaria (subredes, grupos de seguridad con reglas, instancias de servidor virtual) en la nube, el administrador DevOps ) se conecta (SSH) al host bastión utilizando la clave SSH privada.
- El administrador asigna un grupo de seguridad de mantenimiento con las reglas de salida adecuadas.
- El administrador se conecta (SSH) de forma segura a la dirección IP privada de la instancia a través del host bastión para instalar o actualizar cualquier software necesario, por ejemplo un servidor web
- El usuario de Internet realiza una solicitud HTTP/HTTPS al servidor web.
Antes de empezar
- Compruebe los permisos de usuario. Asegúrese de que la cuenta de usuario tiene permisos suficientes para crear y gestionar recursos de VPC. Consulte la lista de permisos necesarios para VPC.
- Necesita una clave SSH para conectarse a los servidores virtuales. Si no tiene una clave SSH, consulte las instrucciones para crear una clave para VPC.
- En la guía de aprendizaje se presupone que va a añadir el host bastión a una nube privada virtual existente. Si no tiene una VPC en su cuenta, cree una VPC antes de continuar con los pasos siguientes.
Creación de un host bastión
En esta sección, creará y configurará un host bastión junto con un grupo de seguridad en una subred independiente.
Crear una subred
-
Pulse Subredes en Red del panel de la izquierda y, a continuación, pulse Crear.
- En Ubicación, seleccione una geografía, región y zona.
- Especifique vpc-secure-bastion-subnet como nombre y, a continuación, seleccione la nube privada virtual que ha creado.
- Seleccione el mismo grupo de recursos que para su VPC.
- Deje el Prefijo de dirección como está y seleccione el Total de direcciones IP como 256.
-
Cambie el valor de Pasarela pública por Conectada.
Conecte una pasarela pública a la subred para permitir que todos los recursos conectados se comuniquen con la internet pública.
-
Pulse Crear subred para suministrarla.
Creación y configuración del grupo de seguridad de bastión
Vamos a crear un grupo de seguridad y configurar las reglas de entrada a su bastión VSI (instancia de servidor virtual).
-
Seleccione Grupos de seguridad en Red y, a continuación, pulse Crear.
-
Especifique vpc-secure-bastion-sg como nombre y seleccione la VPC que ha creado anteriormente.
-
Seleccione el mismo grupo de recursos que para su VPC.
-
Ahora cree las reglas de entrada siguientes pulsando Añadir en la sección de entrada. Permiten el acceso SSH y Ping (ICMP). Los valores se muestran en la tabla siguiente.
Bastión: reglas de entrada Protocolo Puerto/Valor Tipo de origen TCP Rango de puertos: 22-22 Cualquiera ICMP Tipo: 8,Código: Dejar vacío Cualquiera Para mejorar aún más la seguridad, se puede restringir el tráfico de entrada a la red de la empresa o a una red doméstica típica. Puede ejecutar
curl ipecho.net/plain ; echo
para obtener la dirección IP externa de la red y utilizarla en su lugar. -
Pulse Crear grupo de seguridad para crearlo.
Creación de una instancia de bastión
Con la subred y el grupo de seguridad creados, cree la instancia de servidor virtual de bastión.
- En Subredes en el panel izquierdo, seleccione vpc-secure-bastion-subnet.
- Haga clic en Attached resources y en Attached instances, haga clic en Create para aprovisionar un nuevo servidor virtual llamado vpc-secure-bastion-vsi bajo el mismo grupo de recursos que su subred.
- Elige una ubicación y asegúrate de volver a utilizarla más tarde.
- En Imagen, pulse Cambiar imagen. Utilice el campo de búsqueda para seleccionar Ubuntu Linux como su Sistema operativo. Puede elegir cualquier versión de la imagen.
- Pulse Cambiar perfil, seleccione Calcular como categoría y elija cx2-2x4 (2 vCPUs y 4 GB de RAM) como perfil.
- Crear una nueva clave SSH, haga clic en Nueva clave
- Especifique vpc-ssh-key como nombre de clave.
- Seleccione el mismo grupo de recursos que para su VSI.
- Deje la Región tal como está.
- Copie el contenido de la clave SSH local existente y péguela bajo Clave pública.
- Pulse Añadir clave SSH.
- Desplácese para seleccionar la VPC en Gestión de redes
- Asegúrese de que Interfaz de red virtual está seleccionada y de que vpc-secure-bastion-subnet aparece como subred. Pulse el icono de edición para esa subred.
- En primer lugar, en Detalles de conexión de red e interfaz de red virtual, verifique que se haya seleccionado vpc-secure-bastion-subnet. Pulse Siguiente.
- Para Red en la sección Grupos de seguridad, desmarque el grupo de seguridad predeterminado y marque vpc-secure-bastion-sg. Pulse Siguiente.
- En el diálogo Configuración de IP deje todo tal cual y pulse Siguiente.
- Por último, revise todo y finalice pulsando Guardar.
- Haga clic en Crear servidor virtual.
- Una vez que la instancia esté activa y En ejecución, pulse vpc-secure-bastion-vsi y reserve una IP flotante pulsando el icono Editar bajo Interfaces de red y, a continuación, en Dirección IP flotante seleccionando Reservar una nueva IP flotante. Pulse Guardar para finalizar.
Prueba del bastión
Cuando la dirección IP flotante del bastión esté activa, intente conectarse a la misma mediante ssh:
ssh -i ~/.ssh/<PRIVATE_KEY> root@<BASTION_FLOATING_IP_ADDRESS>
Configuración de un grupo de seguridad con reglas de acceso de mantenimiento
Con el acceso al bastión en funcionamiento, continúe y cree el grupo de seguridad para tareas de mantenimiento, como instalar y actualizar el software.
-
Seleccione Grupos de seguridad en Red y, a continuación, pulse Crear.
-
Especifique vpc-secure-maintenance-sg como nombre y seleccione la VPC que ha creado anteriormente.
-
Seleccione el mismo grupo de recursos que para su VPC.
-
A continuación, añada la regla inbound que se muestra en la tabla siguiente. Permite el acceso SSH desde el host bastión.
Mantenimiento: reglas de entrada Protocolo Puerto/Valor Tipo de origen Origen TCP Puertos 22-22 Grupo de seguridad vpc-secure-bastion-sg -
A continuación, añada la regla de salida que se muestra en la tabla siguiente. Permite el acceso SSH desde el host bastión.
Mantenimiento: reglas de salida Protocolo Puerto/Valor Tipo de destino TCP Puertos 80-80 Cualquiera TCP Puertos 443-443 Cualquiera TCP Puertos 53-53 Cualquiera UDP Puertos 53-53 Cualquiera Las solicitudes del servidor DNS se gestionan en el puerto 53. DNS utiliza TCP para la transferencia de zona y UDP para consultas de nombres de forma regular (primaria) o inversa. Las solicitudes HTTP están en los puertos 80 y 443.
-
Pulse Crear grupo de seguridad para crearlo.
-
Vaya a Grupos de seguridad y seleccione vpc-secure-bastion-sg.
-
Por último, edite el grupo de seguridad y añada la siguiente regla de salida.
Bastión: reglas de salida Protocolo Tipo de destino Destino Puerto/Valor TCP Grupo de seguridad vpc-secure-maintenance-sg Puertos 22-22
Utilización del host bastión para acceder a otras instancias de la VPC
En esta sección, creará una subred con una instancia de servidor virtual y un grupo de seguridad.
Si ya tiene instancias de servidor virtual en la VPC a la que desea conectarse, puede saltarse las tres secciones siguientes y empezar en Adición de instancia(s) de servidor virtual al grupo de seguridad de mantenimiento.
Crear una subred
Para crear una nueva subred,
- Pulse Subredes en Red del panel de la izquierda y, a continuación, pulse Crear.
- Especifique vpc-secure-private-subnet como nombre y seleccione la VPC que ha creado.
- Seleccione el mismo grupo de recursos que para su VPC.
- Seleccione una Ubicación.
- Deje el Prefijo de dirección como está y seleccione el Total de direcciones IP como 256.
- Cambie el valor de Pasarela pública por Conectada.
- Pulse Crear subred para suministrarla.
Crear un grupo de seguridad
Para crear un nuevo grupo de seguridad:
- Pulse Grupos de seguridad en Red y, a continuación, pulse Crear.
- Especifique vpc-secure-private-sg como nombre y seleccione la VPC que ha creado anteriormente.
- Pulse Crear grupo de seguridad.
Creación de una instancia de servidor virtual
Para crear una instancia de servidor virtual en la subred recién creada:
- Pulse la subred vpc-secure-private-subnet creada anteriormente bajo Subredes.
- Pulse Recursos conectados, en Instancias conectadas pulse Crear.
- Para configurar la instancia:
- Especifique un nombre exclusivo, vpc-secure-private-vsi, y un grupo de recursos igual que antes.
- Seleccione la misma Ubicación que utiliza el servidor virtual de bastión.
- Seleccione el tipo Público del servidor virtual.
- En Imagen, pulse Cambiar imagen. Utilice el campo de búsqueda para seleccionar Ubuntu Linux como su Sistema operativo. Puede elegir cualquier versión de la imagen.
- Pulse Cambiar perfil, seleccione Calcular como categoría y elija cx2-2x4 (2 vCPUs y 4 GB de RAM) como perfil.
- Para Claves SSH, seleccione la clave SSH que ha creado anteriormente para el bastión.
- Más abajo, seleccione la VPC que ha creado. De forma similar a la anterior, pulse el icono de edición para vpc-secure-private-subnet en Detalles de conexión de red e interfaz de red virtual.
- A continuación, verifique que se ha seleccionado vpc-secure-private-subnet. Pulse Siguiente.
- Para Red en la sección Grupos de seguridad, desmarque el grupo de seguridad predeterminado y marque vpc-secure-private-sg. Pulse Siguiente.
- En el diálogo Configuración de IP deje todo tal cual y pulse Siguiente.
- Por último, revise todo y finalice pulsando Guardar.
- Haga clic en Crear servidor virtual.
Adición de instancia(s) de servidor virtual al grupo de seguridad de mantenimiento
Para el trabajo administrativo en los servidores, tiene que asociar los servidores virtuales específicos con el grupo de seguridad de mantenimiento. En las siguientes secciones habilitará el mantenimiento, iniciará una sesión en el servidor privado, actualizará la información del paquete de software y, a continuación, volverá a eliminar la asociación del grupo de seguridad.
Vamos a habilitar el grupo de seguridad de mantenimiento para el servidor.
- Vaya a Grupos de seguridad y seleccione el grupo de seguridad vpc-secure-maintenance-sg.
- Pulse la pestaña Recursos conectados y, en el filtro, seleccione Interfaz de servidor virtual.
- Pulse Editar interfaces de servidor virtual para ver una lista de las VSI. Expanda la lista y compruebe la selección junto a la columna Interfaces para vpc-secure-private-vsi.
- Pulse Guardar para que se apliquen los cambios.
Conexión a la instancia
Para ejecutar SSH en una instancia mediante su IP privada, utilizará el host bastión como host de salto.
-
En el menú de la izquierda, seleccione Instancias de servidor virtual en la sección Calcular. Anote la dirección IP reservada (IP privada) para vpc-secure-private-vsi.
-
Utilice el comando ssh con
-J
para iniciar sesión en el servidor con la dirección IP flotante del bastión que utilizó anteriormente y la dirección IP privada del servidor que acaba de buscar.ssh -J root@<BASTION_FLOATING_IP_ADDRESS> root@<PRIVATE_IP_ADDRESS>
El distintivo
-J
está soportado en OpenSSH versión 7.3+. En las versiones anteriores,-J
no está disponible. En este caso, la forma más segura y directa es utilizar la modalidad de reenvío stdio de ssh (-W
) para que la conexión "rebote" a través de un host bastión. Por ejemplo,ssh -o ProxyCommand="ssh -W %h:%p root@<BASTION_FLOATING_IP_ADDRESS" root@<PRIVATE_IP_ADDRESS>
Instalación de software y realización de tareas de mantenimiento
Una vez conectado, puede instalar software en el servidor virtual o realizar tareas de mantenimiento.
- En primer lugar, actualice la información del paquete de software:
apt-get update
- Instale el software que desee, como por ejemplo Nginx, MySQL o IBM Db2.
Cuando haya terminado, desconéctese del servidor con el mandato exit
.
Para permitir solicitudes HTTP/HTTPS procedentes del usuario de Internet, asigne una IP flotante a la VSI y abra los puertos necesarios (80 para HTTP y 443 para HTTPS) mediante las reglas de entrada del grupo de seguridad de VSI privada.
Inhabilitación del grupo de seguridad de mantenimiento
Una vez que haya terminado de instalar software o de realizar el mantenimiento, debe eliminar los servidores virtuales del grupo de seguridad de mantenimiento para mantenerlos aislados.
- Vaya a Grupos de seguridad y seleccione el grupo de seguridad vpc-secure-maintenance-sg.
- Pulse Recursos conectados y, a continuación, Editar interfaces de servidor virtual.
- Expanda las instancias del servidor virtual y desmarque la selección junto a la columna Interfaces para vpc-secure-private-vsi.
- Pulse Guardar para que se apliquen los cambios.
Puede repetir el mandato ssh
desde arriba con la opción de host de salto. Debería fallar ahora.
Eliminación de recursos
- Vaya a Instancias de servidor virtual, Detenga y Suprima las instancias pulsando el correspondiente menú de acción.
- Una vez eliminadas las VSI, vaya a Subredes y suprima las subredes.
- Una vez suprimidas las subredes, conmute al separador VPC y suprima la VPC.
Si utiliza la consola, es posible que tenga que renovar el navegador para ver información de estado actualizada después de suprimir un recurso.