Connexion vnc hors réseau local

Souvent dans les discussions à propos de connexion vnc, on a toujours un casse-pied qui nous sort « ben tu n’as qu’à utiliser TeamViewer, c’est super simple ».
Mais moi, je ne veux pas utiliser ce logiciel, car TeamViewer est un logiciel non-libre et surtout c'est un logiciel windows, même si il fonctionne très bien avec wine, je reste contre cette solution.
Je vais donc faire un tutoriel pour vous aider à dépanner vos proches par vnc, avec un vrai serveur VNC et un vrai client VNC par contre le plus embêtants c'est que si la box est en mode routeur et qu'on ne fait pas la redirection de ports lorsqu'on est chez la personne a dépanné ça risque d’être compliqué pour les débutants.

Créer des redirections sur le routeur de la personne à dépanner en entrée et sortie si par contre la personne à dépanner n'a pas activé la fonction routeur cette étape est inutile, je vous donne un petit lien externe http://www.finalclap.com/faq/244-re... c'est toujours le même principe de toute façon. Il y a donc deux solutions distinctes, bien que la première partie reste obligatoire, soit en direct par VNC, soit on englobe la connexion dans un tunnel SSH.

VNC Allez on rentre dans le vif du sujet. Chez la personne à dépanner c'est ce qu'on appelle la partie serveur On installe x11vnc

sudo apt-get install x11vnc

Puis on ouvre la connection avec (lors de la première fois le mot de passe VNC vous sera demandé, choisissez donc un mot de passe bien complexe).

x11vnc -bg -usepw -forever -rfbport 5900 -display :0

Vous pouvez maintenant ajouter x11vnc dans Session et Démarrage en y ajoutant cette commande de lancement juste au dessus.

Maintenant de retour chez vous, vous n'aurez plus qu'à lancer dans remmina ou krdc (pour KDE) une nouvelle connexion avec l'adresse ip externe et le mot de passe.

SSH

Jusque là, la mise en place de VNC a été simple, mais ce n'est pas super sécurisé, on va donc maintenant sécuriser en passant par ssh. SSH utilise par défaut le port 22, on doit donc ouvrir le port sur son routeur, comme expliqué précédemment. Partie serveur On installe le serveur ssh

sudo apt-get install openssh-server

On retourne sur notre machine et on va protéger notre connexion avec une Authentification par clé.
On crée la clé ssh si on ne spécifie pas le type de cryptage (-t) le rsa sera utilisé

ssh-keygen -t dsa

On n'entre pas de mot de passe.
On copie la clef publique

ssh-copy-id -i ~/.ssh/id_dsa.pub user@ip-externe

Si cette commande ne fonctionne pas vous pouvez copiez la clé à la main (copie par clé usb, envoi par email…) mais faites attention elle doit être sur une seul ligne, et dans un fichier nommé « authorized_keys2 » dans le dossier caché .ssh sur votre compte utilisateur.

Maintenant plus qu'à tester, vous devez pouvoir vous connecter à l'ip externe sans entrer aucun mot de passe, grâce à la clef privée stockée dans le fichier
~/.ssh/id_dsa

ssh user@ip-externe

On édite le fichier de configuration SSH client

sudo nano /etc/ssh/ssh_config

On décoche le # devant PasswordAuthentication et on passe la valeur à no.
On fait pareil avec Protocol pour qu'il ne reste que Protocol 2, le protocole 1 des clés RSA ou DSA est à proscrire car moins sécurisé.
On relance ssh

sudo /etc/init.d/ssh restart

On va maintenant encapsuler notre connection en ssh

ssh -L 5900:127.0.0.1:5900 user@ip-externe

Puis on lance notre client vnc avec comme adresse 127.0.0.1 et le mot de passe du PC à contrôler.

Vus : 640
Publié par ljere : 30