This post has already been read 209 times!

Table des matières
  1. Qu'est ce que VNC
  2. Prérequis
  3. Installation de tigervnc
  4. Configuration
    1. Les utilisateurs
    2. Les services
    3. Le parefeu
  5. Activation des services
  6. La connexion

Qu'est ce que VNC

Pour toutes les informations sur le protocole VNC se référer à l'article Le service VNC

Prérequis

Il faut bien entendu avoir une interface graphique opérationnelle (Ici GNOME)

On met le système à jour :

Code BASH :

yum update

 

Installation de tigervnc

On installe les paquets tigervnc-server :

Code BASH :

yum install tigervnc-server

Et voilà !

Maintenant, il reste à configurer :)

Configuration

 

Les utilisateurs

Dans mon exemple, je vais créer 3 bureaux pour 3 utilisateurs nommés vnc1, vnc2 et vnc3.

Code BASH :

useradd -m vnc1
useradd -m vnc2
useradd -m vnc3

Pour chacun d'eux, j'attribue un mot de passe pour l'accès VNC :

Code BASH :

su -c 'vncpasswd' vnc1
su -c 'vncpasswd' vnc2
su -c 'vncpasswd' vnc3

 

Les services

On va ensuite créer un service systemd par utilisateur. Donc on se rend dans le dossier des services :

Code BASH :

cd /lib/systemd/system/

et on copie le service vncserver@.service en indiquant dans le nom le numéro de port VNC :

Code BASH :

cp vncserver@.service /etc/systemd/system/vncserver@:1.service
cp vncserver@.service /etc/systemd/system/vncserver@:2.service
cp vncserver@.service /etc/systemd/system/vncserver@:3.service

On se rend ensuite dans le dossier où on vient de coller nos services :

Code BASH :

cd /etc/systemd/system/

Pour chaque service on remplace <USER> par l'utilisateur concerné :

Code BASH :

sed -e "s/<USER>/vnc1/g" -i vncserver@:1.service
sed -e "s/<USER>/vnc2/g" -i vncserver@:2.service
sed -e "s/<USER>/vnc3/g" -i vncserver@:3.service

Dans chaque service on peut préciser des options, comme par exemple préciser la taille de l'affichage : -geometry 800x600

La ligne
Code BASH :

ExecStart=/sbin/runuser -l vnc1 -c "/usr/bin/vncserver %i"

devient
Code BASH :

ExecStart=/sbin/runuser -l vnc1 -c "/usr/bin/vncserver %i -geometry 800x600"

 

Le parefeu

Il ne faut pas oublier, bien entendu de régler le pare-feu pour autoriser les connexions sur les ports 5901 à 5903 (ou plus ...)

On repère la zone de l'interface :
Code BASH :

firewall-cmd --get-active-zones

Chez moi : public.

On ajoute donc les règles :
Code BASH :

firewall-cmd --zone=public --add-port=5901/tcp --permanent
firewall-cmd --zone=public --add-port=5902/tcp --permanent
firewall-cmd --zone=public --add-port=5903/tcp --permanent
firewall-cmd --reload

 

Activation des services

Dans un premier temps, on recharge le démon pour prendre en compte les nouveaux services créés :

Code BASH :

systemctl daemon-reload

On active au redémarrage nos services :

Code BASH :

systemctl enable vncserver@:1.service 
systemctl enable vncserver@:2.service
systemctl enable vncserver@:3.service

Et on les démarre :

Code BASH :

systemctl start vncserver@:1.service 
systemctl start vncserver@:2.service
systemctl start vncserver@:3.service

On peut vérifier le statut des services :

Code BASH :

systemctl status vncserver@:1.service

Code TEXT :

vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled)
   Active: active (running) since jeu. 2015-09-24 10:09:39 CEST; 34s ago
  Process: 14319 ExecStart=/sbin/runuser -l vnc1 -c /usr/bin/vncserver %i -geometry 800x600 (code=exited, status=0/SUCCESS)
  Process: 14316 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 14366 (Xvnc)
   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
           &#8227; 14366 /usr/bin/Xvnc :1 -desktop vnc-server:1 (vnc1) -auth /home/vnc1/.Xauthority -geometry 800x600 -rfbwait 30...
sept. 24 10:09:35 vnc-server systemd[1]: Starting Remote desktop service (VNC)...
sept. 24 10:09:39 vnc-server systemd[1]: Started Remote desktop service (VNC).

On peut vérifier que les ports sont bien en écoute :

Code BASH :

netstat -laputen | grep vnc

Code TEXT :

tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      1001       47089      14366/Xvnc          
tcp        0      0 0.0.0.0:5902            0.0.0.0:*               LISTEN      1002       47644      14423/Xvnc          
tcp        0      0 0.0.0.0:5903            0.0.0.0:*               LISTEN      1003       51272      15011/Xvnc

 

La connexion

Tout simplement en utilisant un client VNC classique (dans mon exemple, celui de KDE) :

Leave a Reply

Post Navigation