-
Configurer Tigervnc-Server avec certificat SSL X509
Voici une procédure simple et complète de configuration d'un serveur VNC avec certificat X509 afin de permettre la connexion entre un ordinateur client et un ordinateur serveur (srvweb) avec environnement de bureau - xfce4 ici.
La connexion se fait depuis l'ordinateur client vers l'ordinateur serveur.
L'objectif : afficher la session de bureau xfce4 de l'utilisateur "marcel" de l'ordinateur serveur depuis l'ordinateur client.On va installer le logiciel serveur sur l'ordinateur serveur, configurer le logiciel afin qu'un utilisateur distant puisse se connecter à la session de bureau de marcel sur le serveur et créer un certificat (autosigné) SSL X509.
Il faudra transférer le certificat X509 créé sur l'ordinateur serveur sur l'ordinateur client car c'est lui qui permettra la connexion (sinon impossible de se connecter au serveur).
Pré-requis : marcel a un environnement de bureau fonctionnel sur l'ordinateur serveur.
1. Installation du serveur TigerVNC sur l'ordinateur serveur :
(il faut être root)pkg ins -y tigervnc-server
2. Configurer VNC pour l'utilisateur "marcel" sur le serveur
2.1 Se connecter en tant que marcel depuis le serveur :user="marcel"
su - $user
Recréer la variable utilisateur lorsque vous êtes connecté à marcel :
user="marcel"
2.2. Configurer le serveur VNC pour "marcel"
Crée les fichiers de configuration VNC pour cet utilisateur en démarrant le serveur VNC pour la première fois :vncserver :1 -rfbport 42654
Le serveur demandera de définir un mot de passe pour l'accès VNC (exemple ici : P@ssw0rd) puis d'entrer un view-only password (répondre non).
Les fichiers de configuration initiaux se créent et le serveur se lance pour la première fois.
Arrêter le serveur tout de suite pour pouvoir continuer la configuration :vncserver -kill :1
2.3. Configurer l'affichage graphique dans la session VNC
Modifier le fichier xstartup pour utiliser un environnement de bureau comme XFCE (ou GNOME/KDE selon ce qui est installé sur le serveur) via VNC :echo '#!/bin/sh' > /home/$user/.vnc/xstartup
echo 'unset SESSION_MANAGER' >> /home/$user/.vnc/xstartup
echo 'unset DBUS_SESSION_BUS_ADDRESS' >> /home/$user/.vnc/xstartup
echo 'startxfce4 &' >> /home/$user/.vnc/xstartup
echo '# gnome-session &' >> /home/$user/.vnc/xstartup
echo '# startkde &' >> /home/$user/.vnc/xstartup4. Configuration du certificat X509 pour l'utilisateur "marcel"
4.1 Génération du certificat X509 sur le serveur
(toujours en tant qu'utilisateur marcel)openssl req -new -x509 -days 365 -nodes -out /home/$user/.vnc/x509_ca.pem -keyout /home/$user/.vnc/x509_key.pem
(Remarque importante : lorsque OpenSSL demande un Common Name (CN), il faut entrer le hostname du serveur (srvweb))
4.2 Editer le fichier ~/.vnc/config pour y inclure les informations sur le certificat créé plus haut :echo 'securitytypes=x509vnc' > /home/$user/.vnc/config
echo "X509Cert=/home/$user/.vnc/x509_ca.pem" >> /home/$user/.vnc/config
echo "X509Key=/home/$user/.vnc/x509_key.pem" >> /home/$user/.vnc/config
echo "AlwaysShared=1" >> /home/$user/.vnc/config
echo "NeverShared=0" >> /home/$user/.vnc/config
5. Redémarrer le serveur VNC avec un port personnalisé (42654 par exemple)vncserver :1 -rfbport 42654
Pour visualiser le log en direct :tail -f /home/$user/.vnc/srvweb:1.log
6. Sur l'ordinateur client, installer un client VNC (tigervnc-viewer par exemple si Unix..)
(il faut être root)pkg install -y tigervnc-viewer
7. Transmettre le certificat au client
Transférer le fichier /home/marcel/.vnc/x509_ca.pem depuis l'ordinateur serveur vers l'ordinateur client.
Tout dépend du système sur l'ordinateur client, mais s'il s'agît de FreeBSD, alors il vaut mieux copier le certificat dans l'arborescence de l'utilisateur qui se connectera à l'utilisateur distant marcel :
/home/UTILISATEUR-CLIENT/.vnc/
L'échange peut être fait via scp entre les 2 marchines (par exemple)
8. Configurer le client VNC sur l'ordinateur client
8.1. DNS ou /etc/hosts sur le client
Sur le client, ajouter l'enregistrement DNS (ou dans /etc/hosts) entre l'adresse IP de l'ordinateur serveur et son nom :echo '45.56.67.78 srvweb' >> /etc/hosts
8.2. Lancer TigerVNC Viewer sur l'ordinateur client :
Ouvrir TigerVNC Viewer et entrer le nom d'hôte avec le port personnalisé :srvweb:42654
Avant de lancer la connection, cliquer sur Options > Sécurité :
Décocher "Aucun" et "TLS avec certificats anonymes"
Cocher "TLS avec certificat X509"
Dans la case Certificat du chemin pour X509 CA, entrer le chemin du certificat TLS de l'ordinateur serveur distant fraîchement transféré :
/home/UTILISATEUR-CLIENT/.vnc/x509_ca.pem
Ne pas remplir la case X509 CRL.
Initier à présent la connexion. Le mot de passe VNC sera alors demandé (P@ssw0rd).
9. Arrêter le serveur VNC (lorsque nécessaire)
Sur l'ordinateur serveur :vncserver -kill :1
Tags : tigervnc-server, viewer, SSL, TLS, X509
-
Commentaires