« VNC par tunnel SSH » : différence entre les versions

De Lea Linux
Aller à la navigation Aller à la recherche
mAucun résumé des modifications
Aucun résumé des modifications
 
(12 versions intermédiaires par 3 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
== Se connecter à un serveur vnc par un tunnel ssh ==
== Se connecter à un serveur VNC par un tunnel SSH ==


<div class="leatitre">Client/Serveur VNC</div><div class="leapar">par [http://groupe.lea-linux.org/slack/alive/ Jonesy]<br /> Avec les remarques de Jice, Davy et Alexandre.</div><div class="leadesc">Installer, configurer et utiliser VNC.<br /> (v.2)</div>
par [http://groupe.lea-linux.org/slack/tayral/ Tayral]


J'ai eu pas mal de difficultés à me connecter à un serveur vnc par un tunnel ssh, j'écrit donc ces quelques lignes pour les personnes que ca pourrait aider.
J'ai eu pas mal de difficultés à me connecter à un serveur vnc par un tunnel ssh, j'écrit donc ces quelques lignes pour les personnes que ca pourrait aider.


== Introduction ==
== Introduction ==
Ligne 15 : Ligne 14 :


Je vais seulement vous indiquer une configuration basique, si vous voulez plus de details, allez sur l'autre tuto (qui n'est pas de moi). Dans ce tuto le serveur ssh (openssh) tourne sous linux, le client sous windows (avec Tunnelier, client graphique).<br />
Je vais seulement vous indiquer une configuration basique, si vous voulez plus de details, allez sur l'autre tuto (qui n'est pas de moi). Dans ce tuto le serveur ssh (openssh) tourne sous linux, le client sous windows (avec Tunnelier, client graphique).<br />


== Mise en place du tunnel ssh ==
== Mise en place du tunnel ssh ==


Tout d'abord, pour creer un tunnel ssh, il faut un serveur ssh fonctionnel.
Tout d'abord, pour creer un tunnel ssh, il faut un serveur ssh fonctionnel.
Il faut commencer par creer les paires de cle privees/publique :<br />
Il faut commencer par creer les paires de cle privees/publique :<br />


1ere remarque : si vous utilisez le cryptage rsa, vous pouvez appeler vos cle comme vous voulez, mais pour la redirection de port coté serveur, la version de openssh vous oblige à utiliser id_rsa pour la clé privée et id_rsa.pub pour la clé publique (remarquez le suffixe pub ...).<br />
1ere remarque : si vous utilisez le cryptage rsa, vous pouvez appeler vos cle comme vous voulez, mais pour la redirection de port coté serveur, la version de openssh vous oblige à utiliser id_rsa pour la clé privée et id_rsa.pub pour la clé publique (remarquez le suffixe pub ...).<br /><br />


Creation de la paire cle priivee / publique sur le serveur<br />
Creation de la paire cle priivee / publique sur le serveur<br /><br />


1ere methode :
1ere methode :
Vous creez la paire de cle privee/publique nommée id_rsa et id_rsa.pub
Vous creez la paire de cle privee/publique nommée id_rsa et id_rsa.pub :
commande : <br />
<div class="code">$ssh-keygen -t dsa -f id_dsa</div>
<div class="code">$ssh-keygen -t dsa -f id_dsa</div>
Une 'passphrase' vous est demandé, il s'agit d'un mot de passe qui protège votre cle privée.
Une 'passphrase' vous est demandé, il s'agit d'un mot de passe qui protège votre cle privée.
Ensuite vous devez apprendre au serveur votre cle publique  
Ensuite vous devez apprendre au serveur votre cle publique :
commande : $cat id_dsa.pub >> authorized_keys
<div class="code">$cat id_dsa.pub >> authorized_keys</div>
Il ne vous reste plus qu'à copier la clé privée sur le pc du client.
Il ne vous reste plus qu'à copier la clé privée sur le pc du client.
Sur le serveur, j'ai stocké tous ces fichiers dans /root/.ssh
Sur le serveur, j'ai stocké tous ces fichiers dans /root/.ssh<br /><br />


2e methode :
2e methode :
Vous creez la paire de cle privee/publique avec le nom de votre choix :
Vous creez la paire de cle privee/publique avec le nom de votre choix :  
commande : $ssh-keygen -t dsa -f id_serveur-dsa  
<div class="code">$ssh-keygen -t dsa -f id_serveur-dsa</div>
Une 'passphrase' vous est demandé, il s'agit d'un mot de passe qui protège votre cle privée.
Une 'passphrase' vous est demandé, il s'agit d'un mot de passe qui protège votre cle privée.
Vous devez ensuite copiez la paire cle privee / publique dans un format que le serveur ssh comprend pour la redirection de port coté serveur (openssh versin 2)
Vous devez ensuite copiez la paire cle privee / publique dans un format que le serveur ssh comprend pour la redirection de port coté serveur (openssh versin 2) :
commande : $cp id_serveur-dsa id_dsa
<div class="code">$cp id_serveur-dsa id_dsa</div>
commande : $cp id_serveur-dsa.pub id_dsa.pub
<div class="code">$cp id_serveur-dsa.pub id_dsa.pub</div>
Ensuite vous devez apprendre au serveur votre cle publique  
Ensuite vous devez apprendre au serveur votre cle publique :
commande : $cat id_dsa.pub >> authorized_keys
<div class="code">$cat id_dsa.pub >> authorized_keys</div>
Il ne vous reste plus qu'à copier la clé privée sur le pc du client.
Il ne vous reste plus qu'à copier la clé privée sur le pc du client.
Sur le serveur, ces fichiers sont stockés dans /root/.ssh
Sur le serveur, ces fichiers sont stockés dans /root/.ssh<br /><br />
 
 


== Se connecter en ssh au serveur ==
== Se connecter en ssh au serveur ==


Pour se connecter au serveur avec un pc windows, avec le logiciel Tunnelier :
Pour se connecter au serveur avec un pc windows, avec le logiciel Tunnelier :<br /><br />
- Dans l'onglet login
- Dans l'onglet login<br />
      Indiquer l'adresse ip de votre serveur dans le champ 'host'
Indiquer l'adresse ip de votre serveur dans le champ 'host' <br /><br />
- Dans l'onglet authentication
- Dans l'onglet authentication<br />
      Indiquer le nom d'utilisateur  : root
Indiquer le nom d'utilisateur  : root<br /><br />
      Pour indiquer au logiciel la clé privée que l'on utilise, cliquez sur le lien 'use keypair manager', puis ensuite sur 'import' et laissez vous guider ....
Pour indiquer au logiciel la clé privée que l'on utilise, cliquez sur le lien 'use keypair manager', puis ensuite sur 'import' et laissez vous guider ....<br />
      Vous pouvez maintenant selectionner 'publickey slot 1' dans 'Initial Method'. Cliquez sur login, apres insertion de la 'passphrase', vous etes connecté en ssh.
Vous pouvez maintenant selectionner 'publickey slot 1' dans 'Initial Method'.<br />
Cliquez sur login, apres insertion de la 'passphrase', vous etes connecté en ssh.<br />


== Creer un tunnel SSH ==


Tout d'abord pour lancer le serveur vnc sur le serveur :<br />
<div class="code">$vncserver :1</div><br />
SI vous souhaitez arreter le serveur vnc :<br />
<div class="code">$vncserver -kill :1</div><br />


== Creer un tunnel ssh ==
Par defaut, la premiere session du serveur vnc s'execute sur le port 5901.<br />


Tout d'abord pour lancer le serveur vnc sur le serveur :
Pour creer un tunnel ssh, il y a une redirection de port coté client et coté serveur.<br />
commande : $vncserver :1
SI vous souhaitez arreter le serveur vnc:
commande : $vncserver -kill :1


Par defaut, la premiere session du serveur vnc s'execute sur le port 5901.
Commencons par configurer le client<br />
Dans tunnelier, selectionner l'onglet 'c2s fwding', et creer une nouvelle regle :<br />
- listen port : 5901<br />
- listen interface : 127.0.0.1<br />
- destination host : localhost<br />
- destination port : 17000<br />
pensez à selectionner la case 'accept server side port forwardings' (pour activer cette regle)<br />


Pour creer un tunnel ssh, il y a une redirection de port coté client et coté serveur.
Ensuite connecter vous au serveur, et utilisez la commande suivante :<br />
<div class="code">$ssh -L 17000:localhost:5901 root@localhost</div><br />
Apres cette commande, la 'passphrase' vous est demandé, et le tunnel ssh est crée.<br />


Commencons par configurer le client
Vous pouvez maintenant vous connecter au serveur vnc par ce tunnel, avec le logiciel vncviwer (sous windows toujours), en configurant le port sur 5901, et le host sur 'localhost :1' (sans les apostrophes).<br />
Dans tunnelier, selectionner l'onglet 'c2s fwding', et creer une nouvelle regle :
- listen port : 5901
- listen interface : 127.0.0.1
- destination host : localhost
- destination port : 17000
pensez à selectionner la case 'accept server side port forwardings' (pour activer cette regle)


Ensuite connecter vous au serveur, et utilisez la commande suivante :
Voilà, donc vous pouvez vous connecter par ce tunnel ssh par le reseau local, ou par le wan, mais dans ce cas il faut ouvrir le port 17000 (pour les appels entrants) dans le firewall.<br />
$ssh -L 17000:localhost:5901 root@localhost
Apres cette commande, la 'passphrase' vous est demandé, et le tunnel ssh est crée.


Vous pouvez maintenant vous connecter au serveur vnc par ce tunnel, avec le  logiciel vncviwer (sous windows toujours), en configurant le port sur 5901, et le host sur 'localhost :1' (sans les apostrophes).
Remarque : le port 17000 est competement aléatoire, vous pouvez utiliser ce que vous voulez, mais evitez quand meme les ports 21, 80 ... Pour ne pas entrer en conflit avec d'autres applications.<br />


Voilà, donc vous pouvez vous connecter par ce tunnel ssh par le reseau local, ou par le wan, mais dans ce cas il faut ouvrir le port 17000 (pour les appels entrants) dans le firewall.
<br/>
<br/>
'''<b>[[Sécurité et vie privée|@ Retour à la rubrique Sécurité et vie privée]]</b>'''
<br/>


Remarque : le port 17000 est competement aléatoire, vous pouvez utiliser ce que vous voulez, mais evitez quand meme les ports 21, 80 ... Pour ne pas entrer en conflit avec d'autres applications.
[[Catégorie:Sécurité et vie privée]]

Dernière version du 27 décembre 2023 à 21:36

Se connecter à un serveur VNC par un tunnel SSH

par Tayral

J'ai eu pas mal de difficultés à me connecter à un serveur vnc par un tunnel ssh, j'écrit donc ces quelques lignes pour les personnes que ca pourrait aider.

Introduction

Comme vous l'avez appris dans le tuto précédent, un serveur vnc permet de partager l'affichage graphique d'un pc (ou serveur), et d'executer des commandes sur cet ordinateur.

Le problème c'est que le dialogue s'effectue en clair entre le client et le serveur (authentification comprise), ce qui peut poser des problemes de securité ...

Pour résoudre le problème, une solution est d'ouvrir un tunnel ssh dans lequel toutes les communications sont cryptées.

Je vais seulement vous indiquer une configuration basique, si vous voulez plus de details, allez sur l'autre tuto (qui n'est pas de moi). Dans ce tuto le serveur ssh (openssh) tourne sous linux, le client sous windows (avec Tunnelier, client graphique).

Mise en place du tunnel ssh

Tout d'abord, pour creer un tunnel ssh, il faut un serveur ssh fonctionnel. Il faut commencer par creer les paires de cle privees/publique :

1ere remarque : si vous utilisez le cryptage rsa, vous pouvez appeler vos cle comme vous voulez, mais pour la redirection de port coté serveur, la version de openssh vous oblige à utiliser id_rsa pour la clé privée et id_rsa.pub pour la clé publique (remarquez le suffixe pub ...).

Creation de la paire cle priivee / publique sur le serveur

1ere methode : Vous creez la paire de cle privee/publique nommée id_rsa et id_rsa.pub :

$ssh-keygen -t dsa -f id_dsa

Une 'passphrase' vous est demandé, il s'agit d'un mot de passe qui protège votre cle privée. Ensuite vous devez apprendre au serveur votre cle publique  :

$cat id_dsa.pub >> authorized_keys

Il ne vous reste plus qu'à copier la clé privée sur le pc du client. Sur le serveur, j'ai stocké tous ces fichiers dans /root/.ssh

2e methode : Vous creez la paire de cle privee/publique avec le nom de votre choix :

$ssh-keygen -t dsa -f id_serveur-dsa

Une 'passphrase' vous est demandé, il s'agit d'un mot de passe qui protège votre cle privée. Vous devez ensuite copiez la paire cle privee / publique dans un format que le serveur ssh comprend pour la redirection de port coté serveur (openssh versin 2) :

$cp id_serveur-dsa id_dsa
$cp id_serveur-dsa.pub id_dsa.pub

Ensuite vous devez apprendre au serveur votre cle publique :

$cat id_dsa.pub >> authorized_keys

Il ne vous reste plus qu'à copier la clé privée sur le pc du client. Sur le serveur, ces fichiers sont stockés dans /root/.ssh

Se connecter en ssh au serveur

Pour se connecter au serveur avec un pc windows, avec le logiciel Tunnelier :

- Dans l'onglet login
Indiquer l'adresse ip de votre serveur dans le champ 'host'

- Dans l'onglet authentication
Indiquer le nom d'utilisateur  : root

Pour indiquer au logiciel la clé privée que l'on utilise, cliquez sur le lien 'use keypair manager', puis ensuite sur 'import' et laissez vous guider ....
Vous pouvez maintenant selectionner 'publickey slot 1' dans 'Initial Method'.
Cliquez sur login, apres insertion de la 'passphrase', vous etes connecté en ssh.

Creer un tunnel SSH

Tout d'abord pour lancer le serveur vnc sur le serveur :

$vncserver :1


SI vous souhaitez arreter le serveur vnc :

$vncserver -kill :1


Par defaut, la premiere session du serveur vnc s'execute sur le port 5901.

Pour creer un tunnel ssh, il y a une redirection de port coté client et coté serveur.

Commencons par configurer le client
Dans tunnelier, selectionner l'onglet 'c2s fwding', et creer une nouvelle regle :
- listen port : 5901
- listen interface : 127.0.0.1
- destination host : localhost
- destination port : 17000
pensez à selectionner la case 'accept server side port forwardings' (pour activer cette regle)

Ensuite connecter vous au serveur, et utilisez la commande suivante :

$ssh -L 17000:localhost:5901 root@localhost


Apres cette commande, la 'passphrase' vous est demandé, et le tunnel ssh est crée.

Vous pouvez maintenant vous connecter au serveur vnc par ce tunnel, avec le logiciel vncviwer (sous windows toujours), en configurant le port sur 5901, et le host sur 'localhost :1' (sans les apostrophes).

Voilà, donc vous pouvez vous connecter par ce tunnel ssh par le reseau local, ou par le wan, mais dans ce cas il faut ouvrir le port 17000 (pour les appels entrants) dans le firewall.

Remarque : le port 17000 est competement aléatoire, vous pouvez utiliser ce que vous voulez, mais evitez quand meme les ports 21, 80 ... Pour ne pas entrer en conflit avec d'autres applications.



@ Retour à la rubrique Sécurité et vie privée