Eu criei uma VPC no 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 na sub-rede pública que encaminha todo o tráfego de saída da sub-rede privada para a rede externa.
Atualmente, eu 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, escritório e móvel) para instâncias na 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 não tive sorte por isso.
Alguém pode listar o que eu preciso configurar para tornar isso possível.
Os nomes são:
laptop (qualquer dispositivo fora da VPC)
nat (o servidor NAT na sub-rede pública)
destino (o servidor na sub-rede privada à qual eu quero conectar)
Não tenho certeza a seguir são limitações ou não:
O "destino" não possui um IP público, apenas um ip de sub-rede, por exemplo 10.0.0.1 O "destino" não pode se conectar ao "nat" via público do nat. Existem vários servidores de "destino", preciso configurar um para cada um?
obrigado
fonte
Respostas:
Você pode configurar um host bastião para conectar-se a qualquer instância da sua VPC:
http://blogs.aws.amazon.com/security/post/Tx3N8GFK85UN1G6/Security-connect-to-Linux-instances-running-in-a-private-Amazon-VPC
Você pode optar por iniciar uma nova instância que funcionará como um host bastião ou usar sua instância 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 bastião que permita o acesso SSH a partir do seu laptop (observe este grupo de segurança na etapa 4)
2) inicie uma instância separada (bastião) em uma sub-rede pública em sua VPC
3) conceda a esse host bastião um IP público no lançamento ou atribuindo um IP Elastic
4) atualize os grupos de segurança de cada uma das suas instâncias que não possuem um IP público para permitir o acesso SSH a partir do host bastião. Isso pode ser feito usando o ID do grupo de segurança do host bastião (sg - #####).
5) use o encaminhamento do agente SSH (ssh -A usuário @ publicIPofBastion) para conectar-se primeiro ao bastião e, uma vez no bastião, o SSH em qualquer instância interna (ssh user @ private-IP-of-Internal-Instance). O encaminhamento de agente cuida do encaminhamento de sua chave privada, para que ela não precise ser armazenada na instância do bastião ( nunca armazene chaves privadas em nenhuma instância !! )
A postagem do blog da AWS acima deve ser capaz de fornecer detalhes sobre o processo. Também incluí o abaixo, caso você queira mais detalhes sobre os hosts bastiões:
Conceito de hosts do bastião: http://en.m.wikipedia.org/wiki/Bastion_host
Se você precisar de esclarecimentos, sinta-se à vontade para comentar.
fonte
A única maneira de fazê-lo funcionar.
1) Verifique se o grupo de segurança desta instância privada possui na regra de entrada o grupo de segurança da sub-rede pública
Origem do Protocolo de Portas
Tudo Tudo sg-0b6616e070b9ea2d (grupo de segurança pública)
2) Usando comandos proxy, configure seu arquivo de configuração ssh, para ter algo parecido com isto
vim ~/.ssh/config
Executá-
ssh privatehost
lo deve funcionarfonte
Apenas para esclarecer: depois de fazer o ssh no host do bastião, você precisará ssh no host do NAT como usuário
ec2-user
. Isso me incomodou um pouco, pois normalmente o usuário do Ubuntu é o Ubuntu na AWS. Então eu fiz:Além disso, lembre-se de que seu ssh_bastion deve ter uma regra de saída que permita o tráfego para outros hosts e sgs.
fonte