Comment configurer le serveur VNC sur Debian 8

introduction

VNC (Virtual Network Computing) est un système qui permet aux utilisateurs de se connecter et d’interagir avec les bureaux graphiques d’ordinateurs distants. Il peut transmettre des mises à jour d’écran et des événements de clavier et de souris via le réseau.

VNC est utile lorsque vous avez besoin d’un environnement de bureau graphique pour votre serveur.

XFCE est un environnement de bureau léger. Comme il nécessite peu de ressources système et que de nombreux utilisateurs de VNC le connaissent bien, nous allons utiliser XFCE dans ce didacticiel. Cependant, vous pouvez également utiliser votre environnement de bureau préféré, tel que Gnome ou KDE.

Dans ce tutoriel, nous allons configurer un serveur Debian 8, y installer l’environnement de bureau XFCE et le connecter via VNC. De plus, nous allons créer un script de démarrage pour VNC Server et le sécuriser via SSH.

Conditions préalables

S’il vous plaît remplir les conditions préalables suivantes.

  • Debian 8 (ou 8.1) Droplet avec accès root. 512 Mo de RAM suffisent pour exécuter VNC et XFCE, mais vous aurez peut-être besoin d’un Droplet plus gros en fonction de ce que vous envisagez de faire avec l’interface graphique.

  • VNC Viewer (client) sur votre ordinateur pour vous connecter à votre serveur. Dans ce didacticiel, nous utiliserons UltraVNC sous Windows, mais vous pouvez utiliser d’autres clients VNC. Vous pouvez télécharger UltraVNC here. OS X est livré avec un client VNC intégré appelé Partage d’écran

  • Client SSH pour établir une connexion sécurisée sur SSH. Nous allons utiliser PuTTY pour Windows. Vous pouvez télécharger PuTTY http://the.earth.li/%7Esgtatham/putty/latest/x86/putty-0.65-installer.exe [ici]. Sous OS X, utilisez simplement l’application Terminal intégrée

Étape 1 - Installation de VNC et XFCE

Dans cette étape, nous installerons le serveur VNC et l’environnement de bureau XFCE, avec des logiciels supplémentaires et un pack d’icônes.

Mettez à jour les listes de paquets de votre serveur:

apt-get update

Mettez à jour les paquets eux-mêmes:

apt-get -y upgrade

Ensuite, nous installerons + tightvncserver + et XFCE4 avec quelques add-ons utiles et un thème d’icônes:

apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

Par défaut, aucun navigateur n’est installé. Vous pouvez installer + iceweasel + (une version renommée de Mozilla Firefox pour Debian) si vous souhaitez accéder au Web à partir de votre connexion VNC:

apt-get install iceweasel

Étape 2 - Création d’un utilisateur VNC

Nous allons créer un utilisateur distinct pour les connexions VNC, afin de garder les choses en sécurité et bien rangées. Il est vivement recommandé d’utiliser + sudo + au lieu d’utiliser l’utilisateur * root * directement pour votre serveur VNC.

Vous pouvez ajouter un utilisateur nommé * vnc * à votre droplet Debian en utilisant cette commande:

adduser vnc

Donnez un mot de passe à votre nouvel utilisateur. Vous pouvez ignorer toutes les autres questions en appuyant simplement sur + ENTER.

Installez + sudo + en exécutant cette commande:

apt-get install sudo

Ajoutez votre nouvel utilisateur * vnc * au groupe * sudo *, qui lui donnera l’autorisation d’exécuter des commandes racine.

gpasswd -a vnc sudo

Passons à l’utilisateur * vnc *:

su - vnc

Étape 3 - Démarrer et arrêter votre serveur VNC

En tant que notre nouvel utilisateur * vnc *, nous pouvons démarrer VNC Server et tester notre connexion.

Démarrer le serveur VNC:

vncserver

Comme c’est la première fois que vous utilisez le serveur, il vous sera demandé de définir un mot de passe que les clients utiliseront pour se connecter. Gardez ce mot de passe en mémoire pour plus tard! Vous pouvez également définir un mot de passe en lecture seule, qui permettra aux utilisateurs de voir l’écran sans interagir avec celui-ci. Les mots de passe doivent être * 6-8 caractères *.

Vous recevrez une notification concernant votre numéro d’affichage au démarrage du serveur.

Sortie

xauth:  file /home/vnc/.Xauthority does not exist

New 'X' desktop is vnc:1

Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/vnc:1.log

Par défaut, les connexions VNC sont servies sur les ports à partir de + 5901 + pour le premier affichage. Votre deuxième affichage sera servi sur le port + 5902 +, etc.

N’arrêtez pas le serveur maintenant, mais nous incluons la commande stop pour référence.

Étape 4 - Connexion à partir d’un client VNC

Vous pouvez maintenant vous connecter à votre serveur VNC. Ouvrez votre client VNC local, qui varie en fonction de votre système d’exploitation.

Sous Windows, vous pouvez utiliser UltraVNC here.

Sous OS X, vous pouvez utiliser l’application intégrée de partage d’écran ou accéder à cette application via Safari. Dans Safari, vous pouvez entrer * vnc: //: 5901 *

Pour l’adresse de votre serveur VNC, entrez *: 5901 * et utilisez le mot de passe que vous venez de définir pour votre connexion VNC.

Vous pouvez sélectionner le bouton * Use default config * sur l’écran de bienvenue de XFCE pour commencer facilement:

image: https: //assets.digitalocean.com/articles/vnc-debian8/ExJW2cB.png [Écran d’accueil Xubuntu]

Maintenant, vous pouvez utiliser votre bureau à distance!

Étape 5 - Création d’un service systemd pour démarrer automatiquement le serveur VNC

Dans cette section, nous allons ajouter le serveur VNC à systemd. L’utilisation d’un service peut être utile pour démarrer et arrêter votre serveur VNC, ainsi que pour le démarrer automatiquement au redémarrage de votre Droplet.

Commençons par tuer l’instance actuelle:

vncserver -kill

Créez un script simple pour gérer et configurer notre serveur VNC facilement:

En tant que * vnc * ou autre utilisateur sudo, créez un fichier de script à l’aide de votre éditeur de texte préféré.

sudo nano /usr/local/bin/myvncserver

Ajoutez ces contenus exactement. Ce script fournit à VNC quelques paramètres de démarrage.

/ usr / local / bin / myvncserver

#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;

stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

Vous pouvez modifier le script pour modifier le nombre de couleurs ou la résolution de votre connexion VNC.

Si vous utilisez nano, vous pouvez enregistrer le fichier via + CTRL + O + et quitter via + CTRL + X +.

Rendre le fichier exécutable:

sudo chmod +x /usr/local/bin/myvncserver

Notre script nous aidera à modifier les paramètres et à démarrer / arrêter facilement le serveur VNC.

Nous pouvons maintenant créer un fichier https://www.digitalocean.com/community/tutorials/understanding-systemd-units-and-unit-files pour notre service. Les fichiers d’unité sont utilisés pour décrire les services et indiquer à l’ordinateur la marche à suivre pour démarrer / arrêter ou redémarrer le service.

sudo nano /lib/systemd/system/myvncserver.service

Copiez ces commandes dans le fichier de service. Notre service appellera simplement le script de démarrage ci-dessus avec l’utilisateur * vnc *.

/lib/systemd/system/myvncserver.service

[Unit]
Description=Manage VNC Server on this droplet

[Service]
Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc

[Install]
WantedBy=multi-user.target

Maintenant nous pouvons recharger + systemctl + et activer notre service:

sudo systemctl daemon-reload
sudo systemctl enable myvncserver.service

Vous avez activé votre nouveau service maintenant. Utilisez ces commandes pour démarrer, arrêter ou redémarrer le service à l’aide de la commande + systemctl +:

sudo systemctl start myvncserver.service
sudo systemctl stop myvncserver.service
sudo systemctl restart myvncserver.service

Maintenant, vous pouvez exécuter VNC Server en tant que service sur votre Droplet.

Étape 6 - Sécurisation de votre serveur VNC avec le tunneling SSH

Par défaut, les connexions VNC n’utilisent pas le cryptage, il est donc recommandé d’utiliser un tunnel SSH pour sécuriser votre session.

Pour ce faire, nous ne laisserons notre serveur VNC servir que sur * localhost *. + Vous pouvez le faire en ajoutant + -localhost + à la ligne + OPTIONS + dans le script de démarrage créé à l’étape précédente.

Tout d’abord, arrêtez le serveur VNC:

sudo systemctl stop myvncserver.service

Editez votre script de configuration:

sudo nano /usr/local/bin/myvncserver

Changer cette ligne:

/ usr / local / bin / myvncserver

. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. . .

Remplacez-le par:

/ usr / local / bin / myvncserver

. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} "

. . .

Redémarrez le serveur VNC:

sudo systemctl start myvncserver.service

Vous ne pouvez désormais plus vous connecter directement à votre serveur VNC à partir de votre ordinateur distant.

Les fenêtres:

Nous allons utiliser PuTTY pour créer un tunnel SSH, puis nous connecter via le tunnel que nous avons créé.

Ouvrez Mastic.

Dans le menu de gauche, accédez à la section * Connexion→ SSH→ Tunnels *.

Dans la section * Ajouter un nouveau port transféré *, entrez + 5901 + comme * port source * et + localhost: 5901 + comme * destination *.

Cliquez sur le bouton * Ajouter *.

image: https: //assets.digitalocean.com/articles/vnc-debian8/jWDVCt9.png [Configuration du tunnel PuTTY SSH]

Vous pouvez maintenant aller à la section * Session * dans le menu de gauche.

Entrez l’adresse IP de votre Droplet dans le champ * Nom d’hôte (ou adresse IP) *.

Cliquez sur le bouton * Ouvrir * pour vous connecter. Vous pouvez également enregistrer ces options pour une utilisation ultérieure.

image: https: //assets.digitalocean.com/articles/vnc-debian8/zvIl1fJ.png [Connexion PuTTY SSH]

Connectez-vous avec votre utilisateur * vnc *.

Laissez la fenêtre PuTTY ouverte pendant que vous établissez votre connexion VNC.

Vous pouvez maintenant utiliser votre visualiseur VNC comme d’habitude. Entrez simplement * localhost

5901 * comme adresse et conservez votre connexion SSH en arrière-plan.

image: https: //assets.digitalocean.com/articles/vnc-debian8/FZWF3UH.png [Visionneuse UltraVNC: localhost

5901]

  • OS X: *

Pour établir un tunnel SSH, utilisez la ligne suivante dans Terminal:

ssh vnc@ -L 5901:localhost:5901

Authentifiez-vous normalement pour l’utilisateur * vnc * pour SSH. Ensuite, dans l’application de partage d’écran, utilisez * localhost: 5901 *.

Conclusion

Vous pouvez maintenant utiliser un poste de travail distant partagé sur votre serveur Debian 8.

Utilisez-le pour configurer votre serveur ou partagez votre écran avec d’autres personnes.