Como configurar SSH para ec2 na sub-rede privada VPC via servidor NAT

9

Eu criei um VPC em aws com uma sub-rede pública e uma sub-rede privada. A sub-rede privada não tem acesso direto à rede externa. Portanto, há um servidor NAT em uma sub-rede pública que encaminha todo o tráfego de saída da sub-rede privada para a rede externa.

Atualmente, posso SSH de sub-rede pública para sub-rede privada, também SSH de NAT para sub-rede privada. No entanto, o que eu quero é SSH de qualquer máquina (laptop doméstico, máquina de escritório e móvel) para instâncias em sub-rede privada.

Eu fiz algumas pesquisas que eu posso configurar a caixa NAT para encaminhar o SSH para instância na sub-rede privada. Mas eu não tive sorte por isso.

Alguém pode listar o que eu preciso configurar para tornar isso possível.

A nomeação é:

laptop (qualquer dispositivo fora do VPC)

nat (o servidor NAT na sub-rede pública)

destino (o servidor na sub-rede privada que eu quero conectar)

Não tenho certeza se seguir são limitações ou não:

O "destino" não tem um IP público, apenas um subnet ip, por exemplo 10.0.0.1 O "destino" não pode se conectar ao "nat" via público da nat. Existem vários servidores de "destino", preciso configurar um para cada um?

Obrigado

    
por jasonfungsing 12.11.2014 / 00:19

2 respostas

16

Você pode configurar um host de bastiões para se conectar a qualquer instância dentro de sua VPC:

link

Você pode optar por iniciar uma nova instância que funcionará como um host de bastiões ou usar sua instância de NAT existente como bastião.

Se você criar uma nova instância, como uma visão geral, você:

1) crie um grupo de segurança para seu host bastion que permitirá o acesso SSH a partir do seu laptop (observe este grupo de segurança para a etapa 4)

2) lançar uma instância separada (bastion) em uma sub-rede pública em seu VPC

3) dê a esse bastião um IP público no lançamento ou atribuindo um Elastic IP

4) atualize os grupos de segurança de cada uma das suas instâncias que não tenham um IP público para permitir o acesso SSH do host bastion. Isso pode ser feito usando o ID do grupo de segurança do host de bastiões (sg - #####).

5) use o reencaminhamento de agentes SSH (ssh -A user @ publicIPofBastion) para ligar primeiro ao bastião e, em seguida, uma vez no bastião, o SSH em qualquer instância interna (ssh user @ private-IP-of-Internal-Instance) . O encaminhamento de agentes cuida do encaminhamento de sua chave privada para que não precise ser armazenado na instância de bastião ( nunca armazena chaves privadas em nenhuma instância !! )

A postagem do blog da AWS acima deve ser capaz de fornecer algumas informações importantes sobre o processo. Eu também incluí o abaixo, caso você queira detalhes adicionais sobre os hosts de bastiões:

Conceito de Hosts de Bastiões: link

Se precisar de esclarecimentos, sinta-se à vontade para comentar.

    
por 15.11.2014 / 06:11
0

Só para esclarecer: uma vez que você tenha ssh em seu host bastião, você precisa ssh no host NAT como usuário ec2-user . Isso me atropelou um pouco, já que normalmente o usuário do ubuntu é o ubuntu na AWS. Então eu fiz:

laptop> ssh -A ubuntu@ssh_bastion
ssh_bastion> ssh ec2-user@nat_private_dns_or_private_ip

Além disso, lembre-se de que o seu ssh_bastion deve ter uma regra de saída que permita o tráfego para outros hosts e sg's.

    
por 17.04.2015 / 00:35