Deux types de serveur VNC

Il existe deux types de serveur VNC. Le premier, que nous allons mettre en place en premier, consiste à prendre le contrôle du poste distant, donc à contrôler sa session ainsi que sa souris et son clavier.
Le deuxième type de serveur VNC créé une session "virtuelle" accessible par le client. Le client exploite donc les ressources du serveur pour utiliser cette session virtuelle. Il ne pourra donc pas interagir à la place du clavier et de la souris du serveur.

Installation du serveur

Pour commencer, nous allons installer un serveur VNC sur une machine Linux (qui sera donc la machine à contrôler à distance). Le logiciel serveur que nous utiliserons est le suivant : x11vnc
apt-get install x11vnc


Installation des clients

Une fois le serveur installé, nous allons installer un client Linux un client Windows

Linux
Nous allons installer vncviewer grâce à cette commande : apt-get install xvncviewer

Windows
Nous allons installer le programme VNC (en choisissant seulement d'installer le client)

Mise en place du serveur

Voici la commande de base pour la mise en place du serveur :
x11vnc


Connexion sur le serveur

Linux
vncviewer 192.168.0.18 (-fullscreen)

Windows
Il suffit de renseigner l'adresse du serveur


Quelques commandes supplémentaires

Avec la configuration actuelle, dès que l'utilisateur se déconnecte du serveur, le serveur se coupe (pour des raisons de sécurité), afin de laisser le serveur allumé, il faut ajouter la commande suivante
-forever

Avec cette même configuration, seulement un utilisateur à la fois peut se connecter sur le serveur. Afin de permettre la connexion de plusieurs utilisateurs, il faut ajouter la commande suivante
-shared
Pour ne pas afficher tous les logs dans la console, utilisons la commande quiet.
-q

Les logs ne seront plus affichés à l'écran, cependant, il est possible de les sauvegarder dans un fichier grâce à cette commande
-o /repertoire/fichier


Plus de sécurité

Une première sécurité serait de n'autoriser qu'une connexion en "lecture seule" sur le serveur. Le client ne pourrait pas interagir sur le serveur depuis son poste client (utile pour la diffusion d'un diaporama par exemple).
La commande est la suivante
-viewonly

Pour l'instant, le serveur est accessible sans mot de passe, ce qui est une faille de sécurité certaine, surtout si le mode viewonly n'a pas été activé.
Voici donc la commande à exécuter sur le serveur afin de créer un mot de passe :
x11vnc -storepasswd
Puis, lancer le serveur en ajoutant la commande d'authentification
x11vnc -usepw

Une autre mesure de sécurité consiste à n'autoriser qu'une adresse IP ou une plage d'adresses à se connecter au serveur.
-allow 192.168.0.1,192.168.0.2 ou -allow 192.168.0.

Exécuter le serveur en background

Maintenant que le serveur est sécurisé, il est possible de le lancer en background, de manière à pouvoir faire autre chose sur la machine serveur. Pour cela, il faut ajouter la commande suivante au lancement du serveur
-bg

Lorsque le serveur tourne en tant que service, il est possible de modifier "en direct" la configuration du serveur grâce à la commande remote.
-R

Par exemple, pour déconnecter un ou plusieurs clients, utilisons cette commande
x11vnc -R disconnect:all ou x11vnc disconnect:192.168.0.1

Différentes option peuvent être ainsi modifiées
-R stop : arrête le serveur
-R shared ou -R noshared
-R forever ou -R noforever
-R viewonly ou -R noviewonly


Lancer le serveur au démarrage de l'ordinateur

Il pourrait être utile de lancer ce serveur en démarrage afin qu'il soit toujours activé sur la machine.
Pour cela, dans le menu "Bureau", choisir "Préférences, Sessions". Puis, dans l'onglet "Programmes au démarrage", cliquer sur "Ajouter" puis entrer la commande suivante :
x11vnc -display :0 -forever -shared -usepw -q -o /home/login/log -bg

Deuxième type de serveur VNC

Le deuxième type de serveur créé une session virtuelle. Pour installer le serveur, voici la commande
apt-get install vncserver

Pour lancer le serveur, voici la commande :
vncserver

Pour lancer le client, voici la commande :
vncviewer 192.168.0.45:1 (:1 si c'est la première session, dans ce cas, port = 5901)