VNC en inversé

De e-glop
Révision datée du 7 juin 2010 à 12:30 par BeTa (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

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.

(source: http://wiki.bellinux.org/index.php/Reverse_ssh)