Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
vnc [Le 25/12/2015, 17:57]
89.158.20.189 [VNC]
vnc [Le 26/12/2020, 01:39]
ybu [Connexion hors de son réseau local]
Ligne 1: Ligne 1:
-{{tag>Hardy Jaunty Karmic Lucid bureau_a_distance}}+{{tag>Focal bureau_à_distance}}
  
 ---- ----
 ====== VNC ====== ====== VNC ======
 {{ http://​img.informer.com/​icons/​png/​48/​1/​1677.png|Logo VNC}} {{ http://​img.informer.com/​icons/​png/​48/​1/​1677.png|Logo VNC}}
-VNC //(Virtual Network Computing)//​ est un système qui vous permet de  +VNC //(Virtual Network Computing)//​ est un système qui vous permet de contrôler une machine à distance, et ce, en prenant le contrôle du clavier et de la souris de cette machine. Cela peut être utile si l'un de vos proches ​débute ​en informatique car vous pouvez voir ce qu'il voit sur son écran. Par ailleurs, cela peut vous épargner de passer par la ligne de commande. Pour plus d'​informations,​ vous pouvez consulter [[wpfr>​Virtual_Network_Computing|la page Wikipédia]]
-contrôler 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ébutent ​en informatique car vous pouvez voir ce qu'il voit sur son écran. Par ailleurs, cela peut vous épargner de passer par la ligne de commande. Pour plus d'​informations,​ vous pouvez consulter [[wpfr>​Virtual_Network_Computing|la page Wikipédia]].+Pour mettre en place un service VNC complet il est nécessaire d'​installer les applications à cet effet sur le client (l'​ordinateur qui contrôle) et sur le serveur (l'​ordinateur contrôlé). Ubuntu intègre par défaut à la fois le client VNC, pour se connecter à une machine distante et le serveur VNC qui déporte l'​affichage
  
 +===== Pré-requis =====
 + 
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
  
  
 ===== Installation ===== ===== Installation =====
  
-Ubuntu intègre à la fois le client VNC, pour se connecter à une machine distante et le serveur VNC qui déporte l'​affichage.  +VNC est présent dans Ubuntu. Pour les [[:variantes]] [[:​tutoriel:​comment_installer_un_paquet|installez les paquets]] **[[apt>vino]]** pour la partie serveur, ​et [[:remmina]] ou une des applications prévues à cet effet pour la partie cliente. Vous trouverez une liste des clients sur la page qui traite du [[:bureau_a_distance#​clientsle_visionneur|bureau à distance]]. 
-VNC est présent dans Ubuntu, sauf dans Ubuntu Netbook Remix mais vous pouvez installer ​[[vino]] ([[apt://vino]]et [[vinagre]] ([[apt://vinagre]]). Il faudra ensuite configurer le serveur VNC vino de la machine que vous voulez contrôler.+
  
-<note important>​Prérequis : vérifier que le **Bureau à distance** est activé via //Système / Préférences / Applications au démarrage//​. Sans cela, le serveur VNC par défaut, vino-server,​ ne se lance pas, ce qui rend toute connexion VNC impossible.</​note>​ 
  
-===== Sécurité ​=====+=====Utilisation=====
  
-<note important>​Permettre la prise de contrôle à distance ​d'une machine présente un risque en terme de sécurité si l'on ne met pas en place une politique de connexion sécurisée. Vous devriez contrôler la connexion au serveur VNC en installant une connexion ​[[vpn]] et/ou un tunnel [[ssh]] (+ [[fail2ban]]),​ voire en configurant un [[pare-feu]] (dans le cas d'une utilisation ​locale et en maitrisant toute la configuration et les machines du réseau ​à 100%).</​note>​+Le serveur et client VNC d'Ubuntu est **[[apt>vino]]**. Il est utile pour une utilisation en réseau ​local sur des pc avec des ressources. Il vise les particuliers pour une utilisation normale de VNC.
  
- Par défaut, ​VNC n'est pas un protocole sécuriséAlors que les mots de passe ne sont pas envoyés en texte clair (comme dans le telnet), la force brute de craquage pourrait s'​avérer fructueuse si les deux clés de chiffrement et mot de passe codés sont surveillés à partir d'un réseauPour cette raison, il est recommandé qu'un mot de passe d'au moins 8 caractères soit utilisé.+Il existe d'​autres clients et serveurs ​VNC, qui peuvent avoir l'avantage d'​être moins gourmand en ressource processeur et réseau. 
 +<note tip> 
 +Pour ceux qui veulent utiliser VNC en connexion inversée pour contrôler un ordinateur à distance à travers un NAT, qui est beaucoup plus simple à mettre en place pour la personne à dépanner, et ne nécessite ​que des modifications du [[:​firewall|pare-feu]] ​de la part de celui qui souhaite accéder à la machine ​(clientil y a une très bonne application graphiquequi fait client et serveur : [[:​Gitso.]] ​ [[apt>​x11vnc]] gère aussi les connexions inversées mais en ligne de commandeLa commande à utiliser ​est : <​code>​x11vnc -connect VOTRE.ADRESSE.IP</​code>​  
 +</​note>​ 
 +====Autoriser la connexion distante locale==== 
 +===Serveur sous Unity et Xfce===
  
-Toutefois, VNC peut être mis dans un tunnel sur une connexion SSH ou VPN ce qui pourrait ajouter ​une couche ​de sécurité supplémentaire ​avec un chiffrement plus robuste. Les Clients SSH sont disponibles pour toutes ​les principales plates-formes,​ les tunnels SSH peuvent être créés à partir ​de clients UNIX (y compris Mac OS X)les clients Windows, Mac OS Classic clients (System 7 et +) et bien d'​autres.+Sur le serveur il est nécessaire de donner le contrôle de la machine au client ​qui tentera de se connecter à celui-ci. 
 +Pour cela faites ​une recherche dans [[:​unity#​tableau_de_bord_dash|le tableau ​de bord Unity]] ​avec les mots clés **Partage ​de Bureau**ou via la commande : <​code>​vino-preferences</​code>​
  
-  * UltraVNC s'​appuie sur l'​utilisation d'un plugin open-source de chiffrement qui chiffre l'​ensemble de la session VNC notamment l'​authentification de mot de passe et transfert de données. Il permet également l'​authentification par NTLM et des comptes d'​utilisateurs Active Directory.+{{ :​systeme:​vino-preferences_trusty.png?350 }}
  
-  * RealVNC permet ​de chiffrer les connexions dans son package commercial.+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.
  
-  * Workspot publié des correctifs ​de chiffrement AES pour VNC.+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.
  
-**Bien que certaines personnes croient que VNC peut facilement ​être utilisé pour casser un systèmegénéralement un utilisateur doit activer explicitement l'​accès à distance ​pour les ports utilisés par VNC afin d'​être piraté**. En d'​autres termesun système exécutant VNC sur un réseau ne peut être accessible depuis l'extérieur de ce réseausauf si l'​utilisateur spécifie ​le contraire (comme dans les paramètres de configuration du routeur) - ou qu'une autre machine du réseau puisse servir de relais au piratage ​de la machine ​vnc (attaque utilisée par Kevin Mitnick).+La troisième case : //Chaque accès à cet ordinateur doit être confirmé//vous demande confirmation,​ est importante ​pour le respect de la vie privée des utilisateurs. En effetlorsque cette case n'est pas cochéevous 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.
  
-Vous pouvez aussi songer ​à IPsec.+La dernière case, //​L'​utilisateur doit saisir ce 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. 
 +<note important>​Vérifier que le **Bureau ​à distance** est activé dans [[:​tutoriel:​application_demarrage|les applications au démarrage]]. Sans cela, le serveur VNC par défaut, ''​vino-server'',​ ne se lance pas, ce qui rend toute connexion VNC impossible.</​note>​
  
 +Pour tester si le serveur est bien activé, lancez dans un [[:​terminal]] : <​code>/​usr/​lib/​vino/​vino-server</​code>​
 +et connectez-vous depuis un client.
  
 +<note tip>Pour lancer le serveur depuis une connexion SSH avec option de transfert X11 (''​ssh -C''​),​ il faut entrer dans le [[:​terminal]] la commande suivante : <​code>​DISPLAY=:​0 /​usr/​lib/​vino/​vino-server</​code>​
 +avant de se connecter depuis un client.</​note>​
  
 +S'il n'est pas activé, ajouter la commande précédente aux [[:​tutoriel:​application_demarrage|applications au démarrage]].
 +<note important>​
 +Pour Ubuntu MATE depuis la version 18.04 LTS, le partage de bureau a disparu des menus et la commande vino-preferences n'​existe plus.
  
 +Une fois vino installé, il faut passer par l'​[[:​dconf-editor|éditeur dconf]] : les options de partage de bureau se trouvent à la clé /​org/​gnome/​desktop/​remote-access/​
  
-==== Configuration du pare-feu (K)Ubuntu ====+Ce sont les mêmes options que celles des Préférences de partage de bureau... mais en anglais !
  
-{{ Firestarter_VNC.png}} +Le mot de passe doit être codé en base64ce qui peut-être réalisé ​en ligne de commande ​de façon ​à ce qu'il soit inscrit codé dans la clé dconf : <​code>​gsettings set org.gnome.Vino vnc-password $(echo -n "​MonMotDePasse"​|base64)</code>
- +
-Pour autoriser les connexions ​de VNCil faut ouvrir par défaut le port **5900**. Ceci est la dernière étape indispensable pour ne pas faire face à un message du type //« host your_host is unreachable !! »//. +
- +
- +
-[[ufw]] est installé d'​office sur Ubuntu. Il vous suffit donc d'​entrer dans un terminal : +
-<​code>​sudo ufw enable +
-sudo ufw allow 5900</​code>​ +
- +
-On peut aussi passer par [[:​Gufw]] ​en ajoutant une règle dans **Politique du trafic entrant**. +
- +
-==== Connexion hors de son réseau local ==== +
- +
-<note important>​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 chiffrer les données.</​note>​ +
- +
-<​note>​Pour ceux qui veulent utiliser VNC en connexion inversée pour contrôler un ordinateur ​à distance à travers un NAT, [[apt://​x11vnc|X11vnc]] est à choisir plutôt que Vino (qui ne gère pas les connexions inversées). +
-Il est aussi possible d'utiliser [[apt://​gitso|Gitso]] qui se trouve ​dans les répertoires universe, et qui permet d'​avoir une interface graphique ​l'​utilisateur qui demande de l'​aide,​ n'a qu'à saisir l'ip de la personne qui va prendre le contrôle. +
- +
-La commande à utiliser est <​code>​x11vnc -connect VOTRE.ADRESSE.IP</​code>​ Le viewer peut être [[Vinagre]] ​(ou même mieux [[Remmina]])</note> +
- +
- +
-<​note>​Sous Hardy, deux remarques:​ +
-  - Le paquet [[apt://​fail2ban|fail2ban]] pour protéger [[apt://​openssh-server|openssh-server]] des attaques par [[wpfr>​Attaque_par_force_brute|force brute]] ne fonctionne pas. Pour un serveur perso, construire des règles de //​[[wpfr>​iptables|limit iptables]]//​ pour empêcher trop de connexions d'une même IP pour une durée donnée. +
-  - Le tunnel SSH doit être lancé sous le nom de l'​utilisateur de la session à contrôler. Sinon, VNC ne va pas se connecter via le tunnel. Il semble que de la sécurité ait été ajoutée empêchant la connexion de VNC sur la socket du tunnel SSH d'un autre utilisateur. (Ce fut autrefois possible).+
 </​note>​ </​note>​
  
 +===Serveur sous KDE===
 +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 que vous devez [[:​tutoriel:​comment_installer_un_paquet|installer]] **[[apt>​krfb]]**. Cliquez sur menu //K → Internet → Krfb (Partage de bureau)//.
 +Voici ce que vous verrez :
  
-=== Machine à contrôler === +{{  :systeme:krfb_trusty.png?400}}
-La machine a controler s'​appelle la **machine serveur** +
-<​note>​ +
-A noter également qu'on peut utiliser le reverse VNC, qui est beaucoup plus simple a mettre en place pour la personne à dépanner, et ne nécessite que des modifications du firewall de la part de celui qui souhaite accéder à la machine. Pour cela il y a un très bon gui, qui fait client et serveur : [[:gitso | gitso ]] +
-</​note>​ +
-  * [[:tutoriel:comment_installer_un_paquet|Installez les paquets]] ** [[apt://​fail2ban|fail2ban]]**. +
-[[:​fail2ban]] sert à protéger des attaques par force brute. +
-  * [[:​gufw|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. +
-  * Dans le fichier ///​etc/​ssh/​sshd_config//,​ créez ou mettez la ligne GatewayPorts sur yes (n'​oubliez pas de décommenter la ligne ;)) +
-FIXME Sous Maverick, il n'y a pas de ligne GatewayPorts +
-  * 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. +
-FIXME Il serait utile d'​indiquer comment autoriser le bureau à distance (sous Gnome ET sous KDE)+
  
-//Système => Préférences => Bureau à distance// et cocher les autorisations voulues ​(Gnome) +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 (//Nouvelle invitation personnelle…//) vous permet de créer cette invitation. Le deuxième bouton ​(//Nouvelle invitation 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 passel'​adresse IP ou le port à utiliser.
-  * Si l'adresse IP attribuée ​par votre FAI n'est pas fixevous devriez vous intéresser aux services offerts par [[http://​www.dyndns.com|DynDNS]] (payant) ​ou [[http://​freedns.afraid.org|FreeDNS]] (gratuit).+
  
  
-=== Machine qui contrôle=== +La partie intéressante se trouve dans la configuration de //krfb// dans le menu //​Configuration -> Configurer Partage de Bureau...// :
-La machine qui controle s'​appelle ​la **machine cliente**. +
-== Prise en main depuis une machine sous Linux ==+
  
-Ouvrez deux sessions de terminal ​:+{{ :systeme:​krfb-configuration_trusty.png?​400 }} 
  
-  * 1er terminal (à laisser ouvert le temps de la session VNC) :<code>ssh -L 5901:​localhost:​5900 -XC <​user>​@<​machine_a_contrôler_ip_ou_nom_domaine></​code>​ +<note important>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.</note>
-Sans entrer ​dans le détail '​**-L**'​ permet à SSH de rediriger le port local **5901** ​vers le port distant **5900**, '​**-X**'​ d'​autoriser le transfert du serveur X de la machine distante (en gros son bureau) et '​**-C**' ​de compresser les données transmises pour économiser la bande passante. +
-  * 2e terminal : <​code>​vncviewer localhost:1</code(Pour le logiciel vncviewer, qui ajoute automatiquement 5900 au numéro de port indiqué) +
-  * OU 2e terminal : <​code>​vinagre localhost:​5901</​code>​ (Pour le logiciel vinagre) +
-vncviewer ou vinagre se connecte alors via le port **5901** de la machine locale qui se trouve être redirigé par SSH vers le port **5900** de la machine distante... et le tour est joué.+
  
-<note help>​Remarque : on peut aussi passer ​par les interfaces graphiques déjà disponibles (Terminal Server Client pour Gnome, Krdc pour KDE), ce qui évite d'​ouvrir ​le deuxième terminal...</​note>​+Comme vous le voyez dans cette configuration cette machine est accessible de manière permanente ​par tout utilisateur connaissant ​le mot de passeCelui-ci doit donc être particulièrement sûrUn 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.
  
-== Prise en main depuis ​une machine sous Windows ==+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.
  
-Une solution simple et efficace existe sous Windows afin de prendre ​en main une machine Ubuntu, ​le tout via un tunnel SSH.+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é.
  
-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).+La case //​Autoriser ​les connexions non invitées// sert à définir si les personnes se connectant de manière non invitée sont simples ​
  
-== PUTTY ==+Dans //Réseau// vous pouvez modifier le port que votre serveur VNC va écouter en attendant d'​éventuelles connexions.
  
-    * [[http://​www.chiark.greenend.org.uk/​~sgtatham/​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 connecter (IP publique ou nom de domaine, pour en ouvrir un gratuit voyez la page sur les [[:​dns_dynamique|DNS dynamiques]]). 
-    * Choisissez SSH en '​Connexion Type'. Sur la gauche de l'​écran rendez vous dans l'​onglet '​SSH',​ puis '​Tunnel':​ 
-      * en '​source port', ajoutez <​del>​5900</​del>​ 5901 
-      * en '​destination',​ ajoutez 127.0.0.1:​5900 
-    * Cochez éventuellement sous SSH « Enable Compression ». 
-    * Sauvegarder votre profil. 
  
-Commentaire d'un visiteurn'y a t'il pas un problème avec la "​destination"​ ? le port est de plus identique, ​ne devrions nous pas mettre en destination la machine disposant ​du serveur VNC ? +===Configuration du pare-feu Ubuntu=== 
-Aussi, un peu plus haut, on parle d'un "​GatewayPorts" ​ a modifier dns sshd_config,​ or sur la 9.10, je n'ai pas ce parametre perso +Il vous faut ensuite activer [[:ufw|le pare-feu]], et ouvrir ​le port 5900. Ceci est la dernière étape indispensable pour ne pas faire face à un message ​du type //« host your_host is unreachable !! »//.
-Cordialement,​+
  
-Réponse au visiteur ​Non, il n'y a pas de problème :  +[[:ufw|Le pare-feu ufw]] est installé par défaut ​sur UbuntuVous pouvez l'​activer ​et ouvrir ​le port adéquat en entrant dans un [[:​terminal]] les commandes suivantes : <​code>​sudo ufw enable 
-Dans un premier temps, c'est Putty qui créé la connexion sécurisée en SSH a travers le port ssh du serveur : machine contrôlée.  +sudo ufw allow 5900</​code>​
-Ensuite, VNC se connecte ​sur Putty pour utiliser sa connexion ssh +
-Globalement,​ on a Putty qui écoute ​et forward ​le port 5900 des applications locales (de la machine qui contrôle) vers lui-même (d'où le 127.0.0.1) sur le port ssh donné du serveur (machine contrôlée). ​+
  
 +On peut aussi passer par [[:Gufw]] en ajoutant une règle dans **Politique du trafic entrant**.
  
-VNC <5900 (local) ​=> Putty <22 (distant) ​=> machine_a_controler+===Le client sous Unity et Xfce=== 
 +Le client est donc l'​ordinateur qui souhaite se connecter au serveur ​distant ​(la personne à dépanner par exemple). Pour cette partie reportez-vous au la documentation qui concerne les [[:​bureau_a_distance#​clientsle_visionneur|applications clientes pour bureau à distance]].
  
-== vncviewer ==+<note important>​Un dysfonctionnement_du_pave_numerique a été constaté sous Trusty, voir  [[:​vnc#​dysfonctionnement_du_pave_numerique_du_clavier_sur_la_machine_hote_le_serveur|ici]].</​note>​
  
-    * Télécharger [[http://​www.realvnc.com | vncviewer]] ou [[http://​www.ultravnc.fr | UltraVNC]]. +{{ :applications:vnc_trusty.png?400 }}
-    * Connectez-vous à l'ip 127.0.0.1, vous voilà connecté sur votre machine Ubuntu en ssh, sécurisé donc!+
  
-===== Configuration du serveur VNC d'​Ubuntu ===== +===Le client sous KDE pour Kubuntu ​====
-==== Introduction ​====+
  
-Le serveur et client VNC d'​Ubuntu est vinoIl est utile pour une utilisation en réseau local sur des pc avec des ressources. Il vise les particuliers pour une utilisation normale de VNC.+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)//.
  
-Il existe d'​autres clients et serveurs VNC, qui peuvent avoir l'​avantage d'​être moins gourmand en ressource processeur et réseau.+{{ :​systeme:​krdc_trusty.png?400 }}
  
-==== serveur multiposte ==== +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 également suivre ​la configuration suivante afin d'en faire un serveur multiposte sécurisé.+
  
-<note tip>+Vous pouvez remplacer l'​adresse IP par le nom d'​hôte si la machine en est pourvue.
  
-Installation et configuration de [[:​vnc4server|vnc4server]] sous Lucid (10.04) en tant que serveur de sessions distantes+<note tip>Dans ce cas on utilise le protocole VNC, on peut également utiliser le protocole RDP.</​note>​
  
-[[:​tutoriel:​comment_installer_un_paquet|installer le paquet]] **[[apt://​vnc4server|vnc4server]]** 
  
-- Prérequis - +<note help>Si l'​écran sur lequel on se connecte en VNC a une résolution supérieure un problème se produit ​: la barre de défilement ​ 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.
-Changer les droits du fichier xinitrc qui se trouve dans /​etc/​X11/​xinit : +
- +
-chmod 755 /​etc/​X11/​xinit/​xinitrc +
- +
-Effectuer les modifications suivantes dans le fichier xstartup de chaque utilisateur pour lequel on souhaite ​une session distante indépendante soit ~/​.vnc/​xstartup ​: +
- +
-- décommenter les lignes - unset SESSION_MANAGER et exec /​etc/​X11/​xinit/​xinitrc +
-- ajouter ​la ligne - unset DBUS_SESSION_BUS_ADDRESS après ​la ligne unset SESSION_MANAGER +
- +
-Après ces modifications voir fonctionnement classique ​(lancement du serveur et connexion à la session créée). +
-Ne pas s'​inquiéter si les menus mettent un peu de temps à apparaître... +
- +
-NB : L'​erreur error opening security policy file /​etc/​X11/​xserver/​SecurityPolicy n'est pas bloquante...+
 </​note>​ </​note>​
 +===Clients sous Windows ===
  
-==== Version Gnome pour Ubuntu ====+Il existe des logiciels VNC libres utilisables sous Windows : 
 +  * [[http://​www.tightvnc.com/​|Tight vnc (également en version portable )]] (maintenu),​ 
 +  * [[https://​www.uvnc.com|Ultravnc]] (maintenu),​ 
 +  * [[http://​portableapps.com/​node/​2031|Ultravnc portable (sans besoin de l'​installer )]]
  
-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 (ou Partage de Bureau, c'est l'​application vino-preferences)//​. 
  
-{{ applications:bureau-a-distance-gnome.jpg}}+Logiciel propriétaire VNC: 
 +  * [[http://​www.realvnc.com/​products/​free/​4.1/​winvncviewer.html|Realvncviewer]].
  
-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.+Avec WindowsXP professionnel vous avez aussi par défaut un logiciel pour vous connecter "​Terminal Serveur"​ (mais il faudra installer ​le paquet pour ubuntu - [[:​grdesktop|Grdesktop]]).
  
-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. +====Connexion hors de son réseau local====
-==== Version KDE pour Kubuntu ​====+
  
-Rendez-vous sur la machine ​à contrôler à distanceet effectuez ​les manipulations suivantesLa configuration du serveur VNC s'​effectue grâce à un petit utilitaire graphique. Cliquez sur menu //K → Internet → Krfb (Partage de bureau)//​. +<note important>​Si on souhaite contrôler une machine ​hors de son réseau localil est fortement conseillé de [[:​ssh_vnc|créer un tunnel SSH]] afin de chiffrer ​les données.</note>
-Voici ce que vous verrez :+
  
-{{ applications:​krfb-1.jpg }} 
  
-Cette première fenêtre permet de créer des invitations temporairesainsi 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. +<​note>​Sous Hardydeux remarques
- +  Le paquet [[apt>fail2ban]] pour protéger [[apt>openssh-server]] des attaques ​par [[wpfr>​Attaque_par_force_brute|force brute]] ne fonctionne pasPour un serveur persoconstruire des règles ​de //[[wpfr>​iptables|limit iptables]]// pour empêcher trop de connexions ​d'une même IP pour une durée donnée
-La partie intéressante se trouve dans la configuration de //​krfb// ​+  - Le tunnel SSH doit être lancé sous le nom de l'utilisateur de la session ​à contrôlerSinon, ​VNC ne va pas se connecter via le tunnelIl semble ​que de la sécurité ait été ajoutée empêchant ​la connexion ​de VNC sur la socket ​du tunnel SSH d'un autre utilisateur. ​(Ce fut autrefois possible).
- +
-{{ applications:​krfb-2.jpg }} +
- +
-<note important>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.</​note> +
- +
-Comme vous le voyez dans cette configuration cette machine est accessible de manière permanente ​par tout utilisateur connaissant le mot de passeCelui-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ériquecomme 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 à faire la [[:​vnc#​version_gnome_pour_ubuntu|même chose 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//​. +
- +
-Pour Xubuntu 8.04 : //​Applications → Paramètres → Gestion des paramètres Xfce → Demarrage//​. +
- +
-Faites ajouter, et mettre « /​usr/​lib/​vino/​vino-server » dans la case de la commande avec, par exemple, Vino comme Titre. +
- +
-===== Connexion à une machine distante ===== +
- +
-==== Version Gnome pour Ubuntu ==== +
- +
-2 possibilités s'​offrent à vous, la première est plus simple. +
-===1) Bureau à distance === +
-(Lucid) Aller dans Applications -> Internet -> Visionneur de bureaux distant. +
- +
-Si vous êtes sur le même réseau, il trouvera automatiquement les machines avec vnc activé. +
- +
-Sinon vous devrez définir ​la bonne adresse IP. +
- +
-<note important>​Depuis Hardy,​Lucid,​ bug du rafraichissement de l'écran ​(effets 3D) serveur (vino). +
- ​voir:​[[:​vinagre#​mauvais_rafraichissement_de_l_ecran|ici]]</​note>​ +
- +
-<note important>​Bug depuis Jaunty,​Hardy,​Lucid,​ dysfonctionnement_du_pave_numerique. +
-voir:​[[:​vnc#​dysfonctionnement_du_pave_numerique_du_clavier_sur_la_machine_hote_le_serveur|ici]]+
 </​note>​ </​note>​
-===2) Terminal Server === 
  
-Lorsque la machine distante est configurée,​ vous pouvez vous y connecter et prendre son contrôle en lançant un client VNC comme //​[[tsclient|Terminal Server Client]]// par exemple. Pour ce faire, allez dans le menu //​Applications → Internet → Terminal Server Client//. 
  
 +=== Serveur ===
 +La machine a contrôler s'​appelle le **serveur**.
  
-<note important>Depuis Ubuntu 8.04 LTSTerminal Server Client ne sait plus utiliser ​le protocole ​VNC par défautvoir : [[tsclient#complement_pour_vnc]]</note>+  * [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] [[:​fail2ban]],​ qui sert à protéger des attaques par [[wpfr>Attaque_par_force_brute|force brute]]. 
 +  * [[:​gufw|Configurez le pare-feu]] afin d'​accepter les connexions SSH entrantes (port 22). Si vous utilisez un routeuril faudra également que les connexions soient acceptées et routées vers la bonne machine. 
 +  * Dans le fichier ///​etc/​ssh/​sshd_config//,​ ajoutez la ligne ''​GatewayPorts''​ sur yes (n'​oubliez pas de décommenter la ligne ;)) 
 +  * Dès lors que la liaison ​VNC va être encapsulée dans le tunnel SSHil n'est pas nécessaire de laisser le port 5900 ouvert. 
 +  * [[#Autoriser la connexion distante|Autorisez le bureau à distance]], et cocher les autorisations voulues. 
 +  * Si l'​adresse IP attribuée par votre FAI n'est pas fixe, vous devriez vous intéresser aux services offerts par [[http://​www.dyndns.com|DynDNS]] (payant) ou [[http://​freedns.afraid.org|FreeDNS]] (gratuit).
  
-Entrez l'​adresse de l'​ordinateur auquel vous souhaitez vous connecter et choisissez VNC comme protocole. 
  
-{{ applications:​applications:​tsc_connection.png }}+=== Client=== 
 +La machine qui contrôle s'​appelle la **machine cliente**.
  
-En fonction de la configuration du serveur VNC distant, votre session démarrera automatiquement ou après acceptation par l'​utilisateur du serveur distant.+== Prise en main depuis une machine sous Linux ==
  
-Le cas échéant, entrez votre mot de passe.+Ouvrez deux sessions ​de terminal (ou utilisez [[:​screen]]) :
  
-{{ applications:applications:applications:vncviewer_password.png }}+  * 1er terminal (à laisser ouvert le temps de la session VNC) :<​code>​ssh -L 5901:localhost:5900 -XC <​user>​@<​machine_a_contrôler_ip_ou_nom_domaine></​code>​ 
 +Sans entrer dans le détail '​**-L**'​ permet à SSH de rediriger le port local **5901** vers le port distant **5900**, '​**-X**'​ d'​autoriser le transfert du serveur X de la machine distante (en gros son bureau) et '​**-C**'​ de compresser les données transmises pour économiser la bande passante. 
 +  * 2e terminal, utilisation du logiciel vncviewer : <​code>​vncviewer localhost:​1</​code>​ (vncviewer ajoute automatiquement 5900 au numéro de port indiqué, ici 1) 
 +OU 
 +  * 2e terminal, utilisation du logiciel de vinagre : <​code>​vinagre localhost:​5901</​code>​ 
 +vncviewer ou vinagre se connecte alors via le port **5901** de la machine locale qui se trouve être redirigé par SSH vers le port **5900** de la machine distante... et le tour est joué.
  
-Puis profitez du bureau à distance.+<note help>​Remarque : on peut aussi passer par les interfaces graphiques déjà disponibles (Terminal Server Client pour Gnome, Krdc pour KDE), ce qui évite d'​ouvrir le deuxième terminal...</​note>​
  
-<note help> +== Prise en main depuis une machine sous Windows == 
-Si vous avez le message d'​erreur « rect too big », c'est que le logiciel client utilise le mode de compression ZRLEMais 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). +Voir la page [[ssh_vnc|SSH VNC]]. 
-</​note>​+    * Télécharger [[http://www.realvnc.com|vncviewer]] ou [[https://www.uvnc.com|UltraVNC]]. 
 +    * Connectez-vous à l'ip 127.0.0.1, vous voilà connecté sur votre machine Ubuntu ​en sshsécurisé donc!
  
-Pour plus d'​informations,​ reportez vous à [[tsclient|la page dédiée]].+===== Sécurité =====
  
-{{ applications:​vncclient_bureau.jpg }}+<note important>​Permettre la prise de contrôle à distance d'une machine présente un risque en terme de sécurité si l'on ne met pas en place une politique de connexion sécuriséeVous devriez contrôler la connexion au serveur VNC en installant une connexion [[vpn]] et/ou un tunnel [[ssh]] (+ [[fail2ban]]),​ voire en configurant un [[pare-feu]] (dans le cas d'une utilisation locale et en maitrisant toute la configuration et les machines du réseau à 100%).</​note>​
  
-==== Version KDE pour Kubuntu ====+ Par défaut, VNC n'est pas un protocole sécurisé. Alors que les mots de passe ne sont pas envoyés en texte clair (comme dans le telnet), la force brute de craquage pourrait s'​avérer fructueuse si les deux clés de chiffrement et mot de passe codés sont surveillés à partir d'un réseau. Pour cette raison, il est recommandé qu'un mot de passe d'au moins 8 caractères soit utilisé.
  
-Une fois la machine distante configuréevous pouvez en prendre le contrôle en lançant le client ​VNC de KDE : //krdc//. +Toutefois, VNC peut être mis dans un tunnel sur une connexion SSH ou VPN ce qui pourrait ajouter une couche ​de sécurité supplémentaire avec un chiffrement plus robusteLes Clients SSH sont disponibles pour toutes les principales plates-formes,​ les tunnels SSH peuvent être créés ​à partir de clients UNIX (y compris Mac OS X), les clients Windows, Mac OS Classic clients (System 7 et +- et bien d'​autres.
-Cliquez sur menu //K → Internet → Krdc (Connexion ​à un bureau distant)//.+
  
-{{ applications:​krdc-1.jpg }}+  * UltraVNC s'​appuie sur l'​utilisation d'un plugin open-source de chiffrement qui chiffre l'​ensemble de la session VNC notamment l'​authentification de mot de passe et transfert de données. Il permet également l'​authentification par NTLM et des comptes d'​utilisateurs Active Directory.
  
-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''​.+  * RealVNC permet ​de chiffrer les connexions dans son package commercial.
  
-Vous pouvez remplacer l'​adresse IP par le nom d'​hôte si la machine en est pourvue.+  * Workspot publié des correctifs de chiffrement AES pour VNC.
  
-<note tip>Dans ce cas on utilise le protocole ​VNC, on peut également utiliser ​le protocole RDP.</​note>​+**Bien que certaines personnes croient que VNC peut facilement être utilisé pour casser un systèmegénéralement un utilisateur doit activer explicitement l'​accès à distance pour les ports utilisés par VNC afin d'​être piraté**. En d'​autres termes, un système exécutant VNC sur un réseau ne peut être accessible depuis l'​extérieur de ce réseau, sauf si l'​utilisateur spécifie ​le contraire (comme dans les paramètres de configuration du routeur) - ou qu'une autre machine du réseau puisse servir de relais au piratage de la machine vnc (attaque utilisée par Kevin Mitnick).
  
 +Vous pouvez aussi songer à IPsec.
  
-<note help>​**Remarque :** 
  
-Si l'​écran sur lequel on se connecte en VNC a une résolution supérieure un problème se produit : la barre de défilement ​ 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.+===== Serveur multiposte ===== 
 +  
 +Vous pouvez également suivre ​la configuration suivante afin d'​en ​faire un serveur multi-poste sécurisé.
  
-En espérant que cela puisse être utile à quelqu'un ...+Pour l'installation et la configuration de [[:​vnc4server]] en tant que serveur de sessions distantes : 
 +  * Changer les droits du fichier xinitrc qui se trouve dans /​etc/​X11/​xinit : <​code>​sudo chmod 755 /​etc/​X11/​xinit/​xinitr </​code>​  
 +* [[:​tutoriel:​comment_installer_un_paquet|installez le paquet]] **[[apt>​vnc4server]]**
  
  
-</note> +Effectuer les modifications suivantes dans le fichier xstartup de chaque utilisateur pour lequel on souhaite une session distante indépendante soit ~/.vnc/​xstartup :
-====Version windows ====+
  
-Il existe des logiciels VNC libres utilisables sous Windows :+- décommenter les lignes - unset SESSION_MANAGER et exec /​etc/​X11/​xinit/​xinitrc 
 +- ajouter la ligne - unset DBUS_SESSION_BUS_ADDRESS après la ligne unset SESSION_MANAGER
  
-  * Ultravnc : http://www.ultravnc.fr/​ +Après ces modifications voir fonctionnement classique (lancement du serveur et connexion à la session créée)
-  * Ultravnc portable (sans besoin ​de l'​installer ) : http://​portableapps.com/​node/​2031 +Ne pas s'​inquiéter si les menus mettent un peu de temps à apparaître...
-  * Tight vnc (également en version portable ) : http://www.tightvnc.com/+
  
 +NB : L'​erreur error opening security policy file /​etc/​X11/​xserver/​SecurityPolicy n'est pas bloquante...
  
-Logiciel propriétaire VNC: 
-  * Realvncviewer : http://​www.realvnc.com/​products/​free/​4.1/​winvncviewer.html 
  
-Avec windows xp professionnel vous avez aussi par défaut un logiciel pour vous connecter "​Terminal Serveur"​ (mais il faudra installer un paquet pour ubuntu - [[:​tsclient]] ). 
  
 ===== VNC en plein écran ===== ===== VNC en plein écran =====
Ligne 314: Ligne 221:
  
 ===== Problèmes connus ===== ===== Problèmes connus =====
- + 
-====Incompatibilité avec les effets de bureau==== +
- +
-Vnc ne fonctionne pas si les effets de bureau sont activés depuis Jaunty Jackalope (9.04). [[https://​bugs.launchpad.net/​ubuntu/​+source/​xorg-server/​+bug/​353126|Rapport de bug sur Launchpad]].  +
-Lucid même Bug: +
-Sous ,​Hardy,​Lucid,​ l'​écran du serveur reste figé. Pour le contourner il suffit (pour le moment) d'​arrêter les effets du bureau compiz avec : Système → Préférences → Apparence → Onglet "​Effets visuels"​ et Cocher "​aucun"​.  +
- +
-Où bien utiliser un autre serveur vnc que vino [[vinagre#​mauvais_rafraichissement_de_l_ecran|ici]] ​ (à tester et donner vos avis). ​+
 ==== Dysfonctionnement du pavé numérique du clavier sur la machine hôte (le serveur) ==== ==== Dysfonctionnement du pavé numérique du clavier sur la machine hôte (le serveur) ====
  
Ligne 327: Ligne 227:
  
 Il suffit de réactiver le pavé numérique en allant dans le menu : 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//. +//Paramètres ​Système →  Accès Universel → Pointage et clic de la souris//. 
-Puis dans l'​onglet ​//Touches de la souris// ​et de décocher la case « Activer les touches de souris ​». +Puis dans le champs ​//Touches de la souris// décocher la case « contrôle du pointeur à l'aide du pavé numérique ​». S'il est désactivéactivez-le et re-désactivez-le.
-Si Accès Universel n'​est ​pas disponiblerendez-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. Ainsi votre pavé numérique retrouvera son fonctionnement habituel.
  
 <note tip>​Autre possibilité : __Ctrl + Maj + VerrNum__ active/​désactive l'​activation des touches de souris</​note>​ <note tip>​Autre possibilité : __Ctrl + Maj + VerrNum__ active/​désactive l'​activation des touches de souris</​note>​
- 
-TODO : ajouter la procédure avec XFCE pour Xubuntu tu Ubuntustudio... 
- 
  
 ===== Liens externes ===== ===== Liens externes =====
Ligne 345: Ligne 239:
   * [[http://​www.generation-linux.fr/​index.php?​post/​2008/​06/​20/​121-prise-de-controle-d-un-poste-a-distance-avec-vnc|VNC en ligne de commandes]]   * [[http://​www.generation-linux.fr/​index.php?​post/​2008/​06/​20/​121-prise-de-controle-d-un-poste-a-distance-avec-vnc|VNC en ligne de commandes]]
   * [[http://​www.tutoriels-video.fr/​controler-un-ordinateur-a-distance-grace-a-vnc/​|Tutoriel vidéo : contrôler un ordinateur à distance grâce a VNC]]   * [[http://​www.tutoriels-video.fr/​controler-un-ordinateur-a-distance-grace-a-vnc/​|Tutoriel vidéo : contrôler un ordinateur à distance grâce a VNC]]
-  * [[http://​dmoz.org/​Computers/​Software/​Networking/​Thin_Clients/​Virtual_Network_Computing/​|Liste des vnc sur dmoz.]]+  ​* [[https://​enunclic-cappel.fr/​documents/​aide-a-distance-avec-vnc/​|Faire de l'aide à distance avec VNC de manière sécurisée]] 
 +  ​* [[http://​dmoz-odp.org/​Computers/​Software/​Networking/​Thin_Clients/​Virtual_Network_Computing/​|Liste des vnc sur dmoz.]]
   * [[http://​en.wikibooks.org/​wiki/​Internet_Technologies/​VNC|Vnc sur wikibooks]].   * [[http://​en.wikibooks.org/​wiki/​Internet_Technologies/​VNC|Vnc sur wikibooks]].
   * [[https://​help.ubuntu.com/​community/​VNC?​action=show&​redirect=VNCOverSSH|VNC sur le wiki ubuntu.com]]   * [[https://​help.ubuntu.com/​community/​VNC?​action=show&​redirect=VNCOverSSH|VNC sur le wiki ubuntu.com]]
Ligne 356: Ligne 251:
 ---- ----
  
-//​Contributeurs : FIXME.//+//​Contributeurs : [[:​utilisateurs:​l_africain|L'​Africain]].//
  • vnc.txt
  • Dernière modification: Le 11/09/2022, 12:09
  • par moths-art