Version 5 (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:1901
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/ .