He creado una VPC en AWS con una subred pública y una subred privada. La subred privada no tiene acceso directo a la red externa. Por lo tanto, hay un servidor NAT en la subred pública que reenvía todo el tráfico saliente desde la subred privada a la red externa.
Actualmente, puedo SSH de subred pública a subred privada, también SSH de NAT a subred privada. Sin embargo, lo que quiero es SSH desde cualquier máquina (computadora portátil doméstica, máquina de oficina y móvil) a instancias en subred privada.
He investigado que puedo configurar el cuadro NAT para reenviar SSH a una instancia en una subred privada. Pero no tuve suerte para esto.
¿Alguien puede enumerar lo que necesito configurar para que esto sea posible?
Los nombres son:
computadora portátil (cualquier dispositivo fuera de la VPC)
nat (el servidor NAT en la subred pública)
destino (el servidor en la subred privada a la que me quiero conectar)
No estoy seguro de que las siguientes sean limitaciones o no:
El "destino" no tiene una IP pública, solo una IP de subred, por ejemplo 10.0.0.1 El "destino" no puede conectarse a "nat" a través del público de nat. Hay varios servidores de "destino", ¿necesito configurar uno para cada uno?
Gracias
fuente
Respuestas:
Puede configurar un host de bastión para conectarse a cualquier instancia dentro de su VPC:
http://blogs.aws.amazon.com/security/post/Tx3N8GFK85UN1G6/Securely-connect-to-Linux-instances-running-in-a-private-Amazon-VPC
Puede optar por iniciar una nueva instancia que funcionará como host de bastión, o usar su instancia NAT existente como bastión.
Si crea una nueva instancia, como resumen, usted:
1) cree un grupo de seguridad para su servidor bastión que permita el acceso SSH desde su computadora portátil (tenga en cuenta este grupo de seguridad para el paso 4)
2) inicie una instancia separada (bastión) en una subred pública en su VPC
3) proporcione al host del bastión una IP pública, ya sea en el lanzamiento o mediante la asignación de una IP elástica
4) actualice los grupos de seguridad de cada una de sus instancias que no tienen una IP pública para permitir el acceso SSH desde el host del bastión. Esto se puede hacer utilizando la ID del grupo de seguridad del host del bastión (sg - #####).
5) utilice el reenvío de agente SSH (ssh -Usuario @ publicIPofBastion) para conectarse primero al bastión y luego, una vez en el bastión, SSH a cualquier instancia interna (usuario ssh @ IP privada de instancia interna). El reenvío de agentes se encarga de reenviar su clave privada para que no tenga que almacenarse en la instancia de bastión (¡ nunca almacene claves privadas en ninguna instancia! )
La publicación de blog de AWS anterior debería ser capaz de proporcionar algo esencial sobre el proceso. También he incluido lo siguiente en caso de que desee detalles adicionales sobre los hosts de bastión:
Concepto de hosts de bastión: http://en.m.wikipedia.org/wiki/Bastion_host
Si necesita aclaraciones, no dude en comentar.
fuente
La única forma en que podría hacerlo funcionar.
1) Asegúrese de que el grupo de seguridad para esta instancia privada tenga en la regla de entrada el grupo de seguridad de la subred pública
Puertos Protocolo Fuente
Todos Todos sg-0b6616e070b9ea2d (grupo de seguridad pública)
2) Usando comandos proxy, configure su archivo de configuración ssh, para tener algo como esto
vim ~/.ssh/config
Ejecutar
ssh privatehost
debería funcionarfuente
Solo para aclarar: una vez que haya ingresado en su host de bastión, debe ingresar en el host NAT como usuario
ec2-user
. Esto me engañó un poco, ya que normalmente el usuario de ubuntu es ubuntu en AWS. Así que lo hice:Además, recuerde que su ssh_bastion debe tener una regla de salida que permita el tráfico a otros hosts y sg.
fuente