J'ai créé un VPC dans aws avec un sous-réseau public et un sous-réseau privé. Le sous-réseau privé n'a pas d'accès direct au réseau externe. Ainsi, il existe un serveur NAT dans le sous-réseau public qui transfère tout le trafic sortant du sous-réseau privé vers le réseau externe.
Actuellement, je peux SSH du sous-réseau public au sous-réseau privé, également SSH du NAT au sous-réseau privé. Cependant, ce que je veux, c'est SSH à partir de n'importe quelle machine (ordinateur portable, ordinateur de bureau et mobile) vers des instances dans un sous-réseau privé.
J'ai fait des recherches pour configurer la boîte NAT pour transférer SSH vers l'instance dans un sous-réseau privé. Mais je n'ai pas eu de chance pour ça.
Quelqu'un peut-il indiquer ce que je dois configurer pour que cela soit possible?
Les noms sont:
ordinateur portable (tout appareil en dehors du VPC)
nat (le serveur NAT dans le sous-réseau public)
destination (le serveur du sous-réseau privé auquel je veux me connecter)
Je ne suis pas sûr que les limitations suivantes soient ou non:
La "destination" n'a pas d'IP publique, seulement une IP de sous-réseau, par exemple 10.0.0.1 La "destination" ne peut pas se connecter à "nat" via nat's public. Il existe plusieurs serveurs "de destination", dois-je en configurer un pour chacun?
Merci
la source
Réponses:
Vous pouvez configurer un hôte bastion pour vous connecter à n'importe quelle instance de votre VPC:
http://blogs.aws.amazon.com/security/post/Tx3N8GFK85UN1G6/Securely-connect-to-Linux-instances-running-in-a-private-Amazon-VPC
Vous pouvez choisir de lancer une nouvelle instance qui fonctionnera comme hôte bastion, ou utiliser votre instance NAT existante comme bastion.
Si vous créez une nouvelle instance, comme aperçu, vous:
1) Créez un groupe de sécurité pour votre hôte bastion qui permettra l'accès SSH depuis votre ordinateur portable (notez ce groupe de sécurité pour l'étape 4)
2) Lancez une instance distincte (bastion) dans un sous-réseau public de votre VPC
3) donner à ce bastion hôte une adresse IP publique au lancement ou en attribuant une adresse IP élastique
4) Mettez à jour les groupes de sécurité de chacune de vos instances qui n'ont pas d'adresse IP publique pour autoriser l'accès SSH à partir de l'hôte bastion. Cela peut être fait en utilisant l'ID du groupe de sécurité de l'hôte bastion (sg - #####).
5) utilisez le transfert d'agent SSH (ssh -A user @ publicIPofBastion) pour vous connecter d'abord au bastion, puis une fois dans le bastion, SSH dans n'importe quelle instance interne (ssh user @ private-IP-of-Internal-Instance). Le transfert d'agent prend en charge le transfert de votre clé privée afin qu'elle ne doive pas être stockée sur l'instance bastion ( ne stockez jamais de clés privées sur aucune instance !! )
Le billet de blog AWS ci-dessus devrait être en mesure de fournir quelques détails sur le processus. J'ai également inclus ce qui suit au cas où vous souhaiteriez des détails supplémentaires sur les hôtes bastions:
Concept d'hôtes Bastion: http://en.m.wikipedia.org/wiki/Bastion_host
Si vous avez besoin d'éclaircissements, n'hésitez pas à commenter.
la source
La seule façon dont je pouvais le faire fonctionner.
1) Assurez-vous que le groupe de sécurité de cette instance privée a dans la règle entrante le groupe de sécurité du sous-réseau public
Ports Protocol Source
All All sg-0b6616e070b9ea2d (groupe de sécurité publique)
2) À l'aide des commandes proxy, configurez votre fichier de configuration ssh, pour avoir quelque chose comme ça
vim ~/.ssh/config
Exécutez
ssh privatehost
cela devrait fonctionnerla source
Juste pour clarifier: une fois que vous êtes entré dans votre hôte bastion, vous devez entrer dans l'hôte NAT en tant qu'utilisateur
ec2-user
. Cela m'a un peu trompé, car normalement l'utilisateur ubuntu est ubuntu sur AWS. J'ai donc fait:N'oubliez pas non plus que votre ssh_bastion doit avoir une règle sortante qui autorise le trafic vers d'autres hôtes et sg.
la source