ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[vnc]]

Piste: » vnc


VNC

VNC (Virtual Network Computing) est un système qui vous permet de piloter une machine à distance, et ce, en prenant le contrôle du clavier et de la souris de cette machine. Cela peut être utile si un de vos proches débute en informatique car vous pouvez voir ce que lui voit sur son écran. Par ailleurs, cela peut vous épargner de passer par la ligne de commande. Pour plus d'informations, vous pouvez consulter la page Wikipédia.

Ubuntu intègre à la fois le client VNC, pour se connecter à une machine distante, et le serveur VNC qui déporte l'affichage. Vous n'avez donc rien à installer, juste à configurer le serveur VNC de la machine que vous voulez contrôler.

Permettre la prise de contrôle à distance d'une machine présente de sérieux risques en terme de sécurité. Vous devriez limiter la connexion au serveur VNC uniquement aux machines de votre réseau local en installant et configurant un pare-feu.

Configuration du serveur VNC

Version Gnome pour Ubuntu

Rendez-vous sur la machine à contrôler à distance, et effectuez les manipulations suivantes. La configuration du serveur VNC s'effectue grâce à un petit utilitaire graphique. Allez dans le menu Système → Préférences → Bureau à distance.

bureau-a-distance-gnome.jpg

Dans la fenêtre qui apparaît se présentent quatre cases à cocher. La première case, Autoriser d'autres utilisateurs à voir votre bureau, active ou désactive le serveur VNC de cette machine, et limite le contrôle à distance à la vision du bureau.

La seconde case,Autoriser d'autres utilisateurs à contrôler votre bureau, active quant à elle le contrôle de la machine. Elle doit être cochée si vous souhaitez prendre le contrôle de cette machine.

La troisième case, Vous demander confirmation, est importante pour le respect de la vie privée des utilisateurs. En effet, lorsque cette case n'est pas cochée, vous pouvez prendre le contrôle de la machine distante sans que l'utilisateur en soit informé, et donc voir et contrôler son bureau à son insu.

La dernière case, L'utilisateur doit saisir son mot de passe, apporte une sécurité supplémentaire, car il vous impose la saisie d'un mot de passe pour prendre le contrôle de la machine distante.

Version KDE pour Kubuntu

Rendez-vous sur la machine à contrôler à distance, et effectuez les manipulations suivantes. La configuration du serveur VNC s'effectue grâce à un petit utilitaire graphique. Cliquez sur menu K → Internet → Krfb (Partage de bureau). Voici ce que vous verrez :

krfb-1.jpg

Cette première fenêtre permet de créer des invitations temporaires, ainsi si vous avez un problème pour configurer votre distribution vous pouvez donner un accès temporaire à une personne qui vous aidera a régler votre problème. Le premier bouton (Créer une invitation personnelle…) vous permet de créer cette invitation. Le deuxième bouton (Inviter par courrier électronique…) permet d'envoyer simplement toutes les informations nécessaires pour se connecter par courriel. Ainsi vous n'aurez pas à chercher le bon mot de passe, l'adresse IP ou le port à utiliser. Le dernier bouton est davantage destiné à un utilisateur légèrement plus avancé cherchant à supprimer une invitation existante ou créer une invitation.

La partie intéressante se trouve dans la configuration de krfb :

krfb-2.jpg

Les choix faits dans cette section ouvrent une porte vers votre ordinateur. Toute modification doit être mûrement réfléchie et faite en connaissance de cause.

Comme vous le voyez dans cette configuration cette machine est accessible de manière permanente par tout utilisateur connaissant le mot de passe. Celui-ci doit donc être particulièrement sûr. Un bon mot de passe contient au minimum 7 caractères alphanumérique avec des majuscules, minuscules, un ou plusieurs chiffres et au moins un caractères non alphanumérique, comme un signe de ponctuation.

Le fait d'autoriser les connexions non invitées autorise une personne à se connecter sans qu'elle vous ait, au préalable, demandé son autorisation. Mais nous verrons plus tard que ceci n'est pas forcément gênant.

La case décochée ici (Confirmer les connexions non invitées avant acceptation), si elle est décochée, peut poser un problème. En effet, jusqu'à présent, si une personne essayait de prendre le contrôle de votre ordinateur, votre autorisation était sollicitée. Une fois cette case décochée, cette demande ne vous est plus faite. Donc si vous n'êtes pas devant votre ordinateur la personne aura tout loisir d'y faire ce qu'elle veut. Cette option est néanmoins utile si vous souhaitez vous même prendre le contrôle de votre ordinateur vu que dans ce cas vous ne serez pas devant votre écran pour accepter la connexion. Ceci, encore une fois, exige un mot de passe sécurisé.

La case Autoriser les connexions non invitées pour contrôler le bureau sert à définir si les personnes se connectant de manière non invitée sont simples spectateurs ou si elles peuvent piloter votre souris et votre clavier.

Dans l'onglet Session, l'option Toujours désactiver l'image d'arrière plan permet d'améliorer la réactivité du partage de bureau en n'envoyant pas à l'utilisateur distant l'image de votre fond d'écran.

Le dernier onglet permet de modifier le port que votre serveur VNC va écouter en attendant d'éventuelles connexions.

Version Xfce pour Xubuntu

Une solution consiste à installer le paquet vino (utilisé sous Gnome).

Lancez vino-preferences en console utilisateur graphique. La configuration est la même que sous Gnome.

Test du serveur

Lancez dans une console :

/usr/lib/vino/vino-server

et connectez-vous depuis un client.

Lancement automatique du serveur à l'ouverture de la session Xfce

Allez dans le menu Paramètres → Applications démarrées automatiquement.

Faites ajouter, et mettre « /usr/lib/vino/vino-server » dans la case de la commande avec, par exemple, Vino comme Titre.

Configuration du pare-feu (K)Ubuntu

Ceci est la dernière étape indispensable pour ne pas faire face à un message du type « host your_host is unreachable !! ».

Pour autoriser les connexions de VNC, il faut ouvrir par défaut le port 5900 :

Pour lancer cette application (si elle n'est pas présente dans la zone de lancement comme indiqué dans l'article) :

gksudo firestarter

Connexion à une machine distante

Version Gnome pour Ubuntu

Lorsque la machine distante est configurée, vous pouvez vous y connecter et prendre son contrôle en lançant un client VNC comme Terminal Server Client par exemple. Pour ce faire, allez dans le menu Applications → Internet → Terminal Server Client.

Entrez l'adresse de l'ordinateur auquel vous souhaitez vous connecter et choisissez VNC comme protocole.

En fonction de la configuration du serveur VNC distant, votre session démarrera automatiquement ou après acceptation par l'utilisateur du serveur distant.

Le cas échéant, entrez votre mot de passe.

Puis profitez du bureau à distance.

Si vous avez le message d'erreur « rect too big » c'est que le logiciel client utilise le mode de compression ZRLE. Mais comme Terminal Server Client ne permet pas d'en choisir un autre (il faut Hextile), il faut installer et utiliser krdc (client vnc de KDE).

vncclient_bureau.jpg

Version KDE pour Kubuntu

Une fois la machine distante configurée, vous pouvez en prendre le contrôle en lançant le client VNC de KDE : krdc. Cliquez sur menu K → Internet → Krdc (Connexion à un bureau distant).

krdc-1.jpg

Il ne vous reste plus alors qu'à taper l'adresse IP de la machine suivie du numéro d'écran (généralement, zéro) ou du port à utiliser. Exemple : vnc:/186.165.167.12:0 ou vnc:/186.165.167.12:5900.

Vous pouvez remplacer l'adresse IP par le nom d'hôte si la machine en est pourvue.

Dans ce cas on utilise le protocole VNC, on peut également utiliser le protocole RDP.
Remarque :

Un problème que l'on rencontre lorsqu'on utilise VNC, c'est que la barre de défilement si l'écran sur lequel on se connecte a une résolution supérieur se met à descendre tout en bas quand on clique sur la barre de défilement sans possibilité de remonter à première vue (pas de possibilité de défilement avec la molette, normal sinon comment l'utiliser aussi avec vnc ?).

Néanmoins pour la faire remonter il suffit de cliquer sur le 3ème bouton de la souris ou à défaut sur le bouton droite et gauche en même temps.

En espérant que cela puisse être utile à quelqu'un ...

Connexion hors de son réseau

Si on souhaite contrôler une machine hors de son réseau local, il est fortement conseillé de créer un tunnel SSH afin de crypter les données.
Pour ceux qui veulent utiliser VNC en connexion inversée pour contrôler un ordinateur à distance à travers un NAT, X11vnc est à choisir plutôt que VNC.

Machine à contrôler

fail2ban sert à protèger des attaques par force brute.

  • Configurez le firewall afin d'accepter les connexions SSH entrantes (port 22). Si vous utilisez un routeur, il faudra également que les connexions soient acceptées et routées vers la bonne machine.
  • Dès lors que la liaison VNC va être encapsulée dans le tunnel SSH, il n'est pas nécessaire de laisser le port 5900 ouvert.
  • Autorisez le bureau à distance.
  • Si l'adresse IP attribuée par votre FAI n'est pas fixe, vous devriez vous intéresser aux services offerts par DynDNS

Machine qui contrôle

Prise en main depuis une machine sous Linux

Ouvrez deux sessions de terminal :

  • 1er terminal (à laisser ouvert le temps de la session VNC) :
    ssh -L 5901:localhost:5900 -C <user>@<machine_a_contrôler_ip_ou_nom_domaine>
  • 2e terminal :
    vncviewer localhost:1
Remarque : on peut aussi passer par les interfaces graphiques déjà disponibles (Terminal Server Client pour Gnome, Krdc pou KDE), ce qui évite d'ouvrir le deuxième terminal...

Prise en main depuis une machine sous Windows

Une solution simple et efficace existe sous Windows afin de prendre en main une machine Ubuntu, le tout via un tunnel SSH.

Les manipulations sont les mêmes pour la machine à contrôler, les changements interviennent seulement sur la machine qui contrôle (dans mon cas sous Windows XP).

PUTTY
  • Télécharger le logiciel PUTTY permettant l'accès à la console en SSH.
  • Démarrez Putty, entrez l'adresse sur laquelle vous voulez vous connectez (IP publique ou nom de domaine, pour en ouvrir un gratuit voyez la page sur les DNS dynamiques).
  • Choisissez SSH en 'Connection Type'. Sur la gauche de l'écran rendez vous dans l'onglet 'SSH', puis 'Tunnel':
    • en 'source port', ajoutez 5900
    • en 'destination', ajouter 127.0.0.1:5900
  • Cochez éventuellement sous SSH « Enable Compression ».
  • Sauvegarder votre profil.
vncviewer
  • Télécharger vncviewer ici : http://www.realvnc.com
  • Connectez-vous sur le port 127.0.0.1, vous voilà connecté sur votre machine Ubuntu en ssh, sécurisé donc!

VNC en plein écran

La touche F8 de votre clavier permet de contrôler VNC avec un menu contextuel qui apparaît sur frappe de la touche. Elle est très pratique car elle vous permer de quitter le mode plein écran par exemple.

Problèmes

Dysfonctionnement du pavé numérique du clavier sur la machine hôte (le serveur)

Après avoir contrôlé une machine à distance, il peut arriver que le pavé numérique du clavier change de fonctionnement. En effet au lieu des chiffres ce sont maintenant les mouvements de la souris qui sont contrôlés. Si cela vous arrive, pas de panique !

Il suffit de réactiver le pavé numérique en allant dans le menu : Système → Préférences → Accès Universel → Accessibilité du clavier. Puis dans l'onglet Touches de la souris et de décocher la case « Activer les touches de souris ». Si Accès Universel n'est pas disponible, rendez-vous sur : Système → Préférences → Outils d'accessibilité → Accessibilité du clavier. Puis dans l'onglet Touches de la souris et décocher la case « Activer les touches de souris ».

Ainsi votre pavé numérique retrouvera son fonctionnement habituel.

VNC grisé dans Terminal Server Client

Sous Hardy il semble que VNC soit inacessible dans TSN, pour résoudre le problème il faut installer le paquet xvnc4viewer

sudo apt-get install xvnc4viewer

Liens externes

et surtout n'oubliez pas d'accepter les invitations reçues


Contributeurs : FIXME.


vnc.txt · Dernière modification: Le 15/05/2008, à 21:03 par commandant
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL