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.