comment accéder à SSH via NAT dans un VPC

0

J'essaie de comprendre les avantages et les inconvénients d'approches différentes lors de l'accès à un SSHserveur à l'intérieur d' VPNun NATserveur.

Prérequis:

1- key.pem: Fichier .pem pour les deux serveurs (supposons que les deux serveurs utilisent le même fichier .pem):

2- serveur d'accès public au port SSH 22pour le NATserveur:55.55.55.55

3- accès privé du serveur NAT au port SSH 22sur le serveur derrière le NATserveur:10.0.0.100

Autant que je sache, il y a trois approches:

1- Utilisation de l'option de transfert de port -L:

du terminal un:

ssh -i key.pem -L 5555:10.0.0.100:22 [email protected]

du terminal deux:

ssh -i key.pem -p 5555 user@localhost

2- Utilisation du transfert d’agent

  ssh-add -K key.pem

  ssh –A [email protected]

Puis depuis un autre terminal:

  ssh [email protected]

3- utiliser la commande proxy en configurant / etc / ssh / ssh_config (au moins dans Ubuntu pas sûr des autres systèmes d'exploitation)

en ajoutant ce qui suit à /etc/ssh/ssh_config

Host 10.0.0.100
    IdentityFile <ABSOLUTE FOLDER PATH>/key.pem
    ProxyCommand ssh -q -W %h:%p -i <ABSOLUTE FOLDER PATH>/key.pem [email protected]

puis de l'utilisation du terminal:

  ssh [email protected]

J'ai trouvé l'option 3 la plus pratique mais pas sûre de sa sécurité.

Ma question est donc de savoir dans quelles circonstances chaque approche devrait être utilisée? Quels sont les avantages et les inconvénients?

nafas
la source

Réponses:

1

Cette méthode s'appelle SSH-ing via un hôte bastion ou un jumphost. Voici un court article que j'ai écrit sur cette technique.

(1) et (3) sont sécurisés, mais (3) est le plus pratique. C'est la façon casher de le faire, pour ainsi dire. La principale différence entre (3) est que -WSSH écoute sur stdin et transmet les paquets au point de terminaison SSH final, via le jumphost. -Lécoute sur un socket TCP ouvert sur votre client.

(2) n'est pas sécurisé, donc ne l'utilisez pas. Lisez cet excellent article pour plus d'informations. En bref, -Aouvre un socket sur le jumphost qui renvoie les demandes d'authentification SSH au client. Si le socket est compromis, l'attaquant peut utiliser le socket pour s'authentifier auprès de tout hôte auquel vous avez accès.

sshLa page de manuel de a un avertissement:

 -A      Enables forwarding of the authentication agent connection.  This can also be specified on a per-host basis in a configuration file.

         Agent forwarding should be enabled with caution.  Users with the ability to bypass file permissions on the remote host (for the agent's UNIX-domain
         socket) can access the local agent through the forwarded connection.  An attacker cannot obtain key material from the agent, however they can perform
         operations on the keys that enable them to authenticate using the identities loaded into the agent.
Eugene Chow
la source