Services/Remote/VNC/TigerVNC

De TartareFR
Aller à la navigation Aller à la recherche

Installation

yum install tigervnc-server

Configuration

La configuration dépend du système de démarrage utilisé par la distribution.

Chaque serveur VNC sera associé à un numéro de port VNC ( le port VNC 1 est le port système 5901, le port VNC 2 est le port système 5902, etc... )

On va maintenant ajouter l'utilisateur didier au service sur le port VNC 1 et spécifier la résolution d'écran à 1280 x 1024, puis on va configurer son démarrage automatique. Le démarrage du service, c'est pour plus tard. En effet le service ne peut démarrer sans avoir au préalable ajouter un mot de passe VNC pour chaque utilisateur ( en fait, si, mais il n'est pas utilisable, ce qui revient au même ... ).

Avec le classique SysVinit

Il suffit de rajouter les deux lignes suivantes au fichier <path>/etc/sysconfig/vncservers</path> pour chaque utilisateur

VNCSERVERS="1:didier"
VNCSERVERARGS[1]="-geometry 1280x1024 -depth 16"

On active le démarrage automatique

chkconfig --level 2345 vncserver on

Avec Systemd

Ici, il y aura autant de fichiers de configuration que d'utilisateur. Le fichier copié comporte le numéro de port VNC dans son nom (après l'arobase).

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

On modifie donc le fichier fichier <path>/etc/systemd/system/vncserver@:1.service</path> que nous venons de copier.

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=forking
ExecStart=/sbin/runuser -l didier -c "/usr/bin/vncserver %i -geometry 1280x1024"
ExecStop=/sbin/runuser -l didier -c "/usr/bin/vncserver -kill %i"

[Install]
WantedBy=multi-user.target

On active le démarrage automatique, à répéter autant de fois qu'il y a d'utilisateurs configurés

systemctl enable vncserver@:1.service

Mise en place des Mots de passe VNC

Pour chaque utilisateur, il faudra spécifier un mot de passe en se logguant avec son compte

su - didier
vncpasswd

Démarrage du service

En tant qu'utilisateur root

Avec le classique SysVinit

service vncserver start

Avec Systemd

Ici, il faudra lancer la commande autant de fois qu'il y a d'utilisateurs configurés

systemctl start vncserver@:1.service

Sécurité

Firewall

Pour les anciennes versions d'<app>iptables</app>

  • Ajout de la règle à chaud
    iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
    
  • Ajout au fichier <path>/etc/sysconfig/iptables</path> pour que la règle soit présente au prochain démarrage
    -A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT
    

Pour les nouvelles versions d'<app>iptables</app>

  • Ajout de la règle à chaud
    iptables -I INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 5903 -j ACCEPT
    
  • Ajout au fichier <path>/etc/sysconfig/iptables</path> pour que la règle soit présente au prochain démarrage
    -A INPUT -p tcp -m conntrack --ctstate NEW -m tcp --dport 5903 -j ACCEPT
    

SELinux

Si SELinux est activé, il faut autoriser explicitement le forward ssh

setsebool -P sshd_forward_ports 1