Installer et configurer un serveur tigervnc sur CentOS 7



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) :





Cette page a été vue 3520 fois