VNC en inversé
Sommaire
Situation
Votre ami / client est en panne. Il se trouve derrière un routeur qui empêche toute connexion d'entrer sur le réseau (routeur filtrant ou plus classique : du NAT en IPv4). Vous souhaitez le dépanner, mais il vous semble impossible de lui demander de reparamétrer son routeur, de trouver son adresse IP visible sur l'Internet, etc... Vous souhaitez donc en faire le maximum, et lui laisser le plus simple.
Poste local sous GNU/Linux
sudo apt-get install xtightvncviewer xvncviewer -listen
Configurez votre routeur pour que vous puissiez être joint sur le port 5500 (par défaut). Avec un routeur NAT, il faut préciser des règles de redirection de ports. Sinon, permettez simplement les connexion vers votre poste.
Si vous n'en disposez pas, trouvez votre adresse IP "visible" (l'adresse de votre routeur NAT, le cas échéant), en allant par exemple sur des sites comme : http://www.mywanip.com/
Postes distants
sous MSWindows
Il faudra installer UltraVNC s'il ne l'est pas déjà. Une fois en place, il faudra le lancer (ben oui...). Une fois que son icône apparaît dans la "barre du bas" de Windows, clique droit, "ajouter un nouveau client" / "add a new client". Donner vos coordonnées (IPv4, nom d'hôte, ...) à saisir.
sous GNU/Linux
Installer x11vnc
sudo apt-get install x11vnc x11vnc -connect HOST
Résultat
Une fenêtre s'ouvre sur votre poste, affichant le bureau distant. Vous pouvez intervenir directement dessus.
Et SSH ?
Il existe quelques exemple sur le reverse tunnelling SSH sur le net, mais voici un tuto très simple et fonctionnel
Tout d'abord visualisons ce que nous voulons. Notre but est d'établir une connexion vers une machine située sur un LAN (linuxinside) et à priori inaccessible depuis l'extérieur parce que ce la machine locale est en dhcp, ou dans un LAN protégé par un firewall.
Nous voulons accéder à linuxinside qui se trouve derrière une ip que l'on ne connait pas ou derrière un firewall qui ne laisse rentrer personne, mais qui laisse bien sur les postes de son LAN établir des connexions vers l'extérieur. Afin de contourner cet inconvénient, nous allons établir un tunnel SSH depuis notre station personnelle (linuxinside) vers notre machine personnelle (linuxoutside).
ssh -R 10000:localhost:22 utilisateur_sur_linuxoutside@ipexterieuredulan
ce qui aura pour but d'établir une connexion vers linuxoutside, qui redirigera les connexions faites sur son port 10000 vers ce tunnel. et donc sur linuxoutside on tapera :
ssh -p 10000 utilisateur_sur_linuxinside@localhost
et hop nous voici connecté à linuxinside en outrepassant le dhcp et ou le firewall.