wiki:Realisations/2010-2011/Projet/Documentation/SSH

Version 4 (modified by teste, 14 years ago) (diff)

--

Création d'un tunnel SSH depuis l'extérieur vers un AS

La plateforme est isolée de l'Internet.

Il est cependant possible d'accéder aux machines des AS depuis l'extérieur via un tunnel SSH.

Voici le nom des machines mises à contribution:

Nom Adresse Description
maison 127.0.0.1 Ordinateur initiant la connexion depuis l'extérieur
sphinx sphinx.lip6.fr Serveur d'entrée SSH dans le LIP6
gate-net gate-net.rsr.lip6.fr Passerelle d'entrée dans la plateforme
cible @cible (variable) Machine sur laquelle on veut se connecter

Il faut d'abord choisir un port local pour chaque port distant sur lesquels on veut accéder.

Dans cet example on veut accéder aux fonctionnalités d'un serveur ProxMox: HTTPS (443) et VNC (5900).

On va les mapper sur les ports 1900 et 1901:

Port local Port distant
1900 443
1901 5900

La jonction se fait en deux étapes.

Tunnel entre sphinx et la cible

Le tunnel se fait entre sphinx et la machine cible, en passant par gate-net.

Après s'être connecté en SSH sur sphinx (ssh utilisateur@sphinx.lip6.fr):

ssh -N -f utilisateur@gate-net.rsr.lip6.fr -L 1900:@cible:443 -L 1901:@cible:5900

À partir de ce moment sphinx se met en écoute sur les ports 1900 et 1901. Cependant il ne l'a fait que localement. Il serait bien trop dangereux d'exposer ces ports à tout le monde sur Internet.

On peut s'en rendre compte facilement en regardant les ports en écoute sur sphinx:

netstat -an | grep -i LISTEN

Par exemple:

-bash-2.05b$ netstat -an | grep -i LISTEN
tcp        0      0  127.0.0.1.5900         *.*                    LISTEN
tcp        0      0  127.0.0.1.1234         *.*                    LISTEN
tcp        0      0  127.0.0.1.1987         *.*                    LISTEN
tcp        0      0  127.0.0.1.1100         *.*                    LISTEN
tcp        0      0  127.0.0.1.5999         *.*                    LISTEN
tcp        0      0  *.23                   *.*                    LISTEN
tcp        0      0  *.22                   *.*                    LISTEN
tcp6       0      0  ::1.5900               *.*                    LISTEN
tcp6       0      0  ::1.1234               *.*                    LISTEN
tcp6       0      0  ::1.1987               *.*                    LISTEN
tcp6       0      0  ::1.1100               *.*                    LISTEN
tcp6       0      0  ::1.5999               *.*                    LISTEN
tcp6       0      0  *.23                   *.*                    LISTEN
tcp6       0      0  *.22                   *.*                    LISTEN

On voit que sphinx écoute tout ce qui est SSH ou telnet. Le reste des ports en écoute sont probablement des tunnels SSH.

Tunnel entre la maison et sphinx

Pour ce tunnel, on va rediriger l'adresse de loopback de maison vers l'adresse de loopback de sphinx (afin que les paquets soit ensuite redirigés vers cible via le premier tunnel).

Depuis maison:

ssh -N -f utilisateur@sphinx.lip6.fr -L 1900:localhost:1900 -L 1901:localhost:1900

Ici localhost est dans le contexte de la machine distante, il fait donc référence à l'adresse de loopback de sphinx.

Accéder au site web de ProxMox

Maintenant il suffit d'accéder à l'adresse de loopback de maison avec le port lié à HTTPS: https://localhost:1900/ .