travail_distance

Travailler à distance, c'est parfois bénéficier d'un environnement moins stressant..



En attendant des solutions plus modernes probablement basées sur "Spice" (site officiel Spice), FreeNX reste plus que jamais d'actualité quand il s'agit de proposer un accès à distance fiable et rapide, quelque soit le type de connexion réseau disponible, avec un environnement Gnome 2.

  • Cette partie traite essentiellement de la machine considérée comme serveur FreeNX.
  • La 3eme partie traite de l'utilisation de FreeNX en tant que serveur d'applications.



Note : Il existe une alternative intéressante (notamment sous Ubuntu) avec la solution X2Go, pour lequel vous trouverez un descriptif sur cette page.


Pré-requis et système de base (CentOS Desktop)


  • Avantage indéniable, FreeNX utilise le protocole SSH (et donc le port défini pour SSH). Les règles de sécurité à appliquer sont, par conséquent, les mêmes que celles à mettre en place pour ce dernier. Vous trouverez plus d'informations sur notre page dédiée à ce protocole.
  • Comme à l'accoutumée, nous partons du principe que vous disposez d'une CentOS (5.x ou 6.x) fraîchement installée et complètement à jour, tant au niveau pilotes que système.
  • Dans l'idéal, choisissez l'option "Desktop" plutôt que l'une des versions minimales à l'installation. Avec ces dernières, on se retrouve bien souvent à "courir" après des paquets basiques manquants. Autant partir d'un bureau complet, quitte à désinstaller quelques éléments comme nous allons le voir un peu plus loin.
  • Qui dit Bureau à distance dit accès réseau. Privilégiez une ip fixe de manière à ne pas perdre le lien avec votre serveur NX lors d'un renouvellement de bail "ip locale". Pour l'accès depuis l'extérieur, pensez à transférer le port SSH que vous aurez choisi (ou le 22 si configuration par défaut) via la fonction dédiée de votre box ou de votre routeur.
  • Pour ce tuto, nous laissons le pare feu activé et dans sa configuration d'origine (sauf si vous modifiez le port SSH auquel cas il faudra corriger comme décrit sur cette page). SELinux a été désactivé à l'installation (suivez cette procédure au besoin).



Tips ! Si votre serveur NX sera principalement utilisé depuis l'extérieur (via Internet donc), opter pour une CentOS 5.x plutôt qu'une 6.x vous fera gagner quelques précieux ko/s de bande passante. A voir en fonction des logiciels que vous comptez utiliser.


Installation de FreeNX


  • Rien de bien compliqué pour l'install, les paquets sont sur les dépôts officiels. Passez en "root" :
# yum install freenx


  • Vous trouverez les options possibles du serveur NX dans le fichier "/etc/nxserver/node.conf". En ce qui nous concerne, il reste par défaut. Attention, n'oubliez pas d'en faire une copie avant toute modification.
# cp /etc/nxserver/node.conf  /etc/nxserver/node.conf.first


  • Pour démarrer ou redémarrer le service FreeNX :
# service freenx-server start
# service freenx-server restart


  • Démarrage auto avec la machine :
# chkconfig freenx-server on




Configuration des utilisateurs


Ici aussi, rien de bien complexe. Par défaut, FreeNX va autoriser les utilisateurs du système. Donc tout compte utilisateur créé sur la machine aura de fait un accès possible.

Si vous prévoyez plusieurs utilisateurs (pas de nombre limite de connexions simultanées avec cette version de FreeNX), il peut être utile et pratique de créer un groupe qui leur sera dédié.

  • Exemple de création du groupe nx-users auquel on affecte le GID 1050 :
# groupadd -g 1050 nx-users


  • Puis, création de chaque utilisateur (ici pierre) auquel on affecte "nx-users" comme groupe principal :
# useradd -g nx-users pierre


  • Et affectation du mot de passe :
# passwd pierre


  • Ne reste qu'à reproduire les deux lignes ci dessus pour les autres utilisateurs (Le groupe ne se créé qu'une fois).
  • Le but de cette méthode est de vous faciliter la tache, tant pour la gestion des comptes que pour les éventuels dossiers partagés.



Note : Pour plus de sécurité, il est possible de faire le distingo entre les utilisateurs Linux au sens propre (ceux déclarés sur la CentOS) et ceux autorisés à utiliser FreeNX via la ligne ENABLE_PASSDB_AUTHENTICATION="1" du fichier de configuration. Mais cela implique de créer l'utilisateur sur la CentOS puis de le (re)déclarer au Serveur NX (commandes nxserver --adduser et nxserver --passwd ). Plus de détails sur le Wiki CentOS.


Sécurité et clef Freenx


Outre le couple login / mot de passe indispensable, Freenx génère automatiquement, à l'installation, une clé de sécurité qu'il faudra impérativement insérer dans les paramètres des clients NX, sous peine de se voir refuser purement et simplement la connexion..
Cette clé est propre à chaque machine. Vous la trouverez deux fois en parcourant vos fichiers système. Dans le fichier "/etc/nxserver/client.id_dsa.key", c'est celle qui a été générée à l'installation et dans le fichier "/var/lib/nxserver/home/.ssh/client.id_dsa.key", c'est la clé en cours d'utilisation.

Après installation, les deux clés sont identiques, mais il vaut mieux prendre l'habitude d'aller lire la seconde, surtout si, ultérieurement, vous demandez au système d'en générer une nouvelle (voir plus bas).

# cat /var/lib/nxserver/home/.ssh/client.id_dsa.key
-----BEGIN DSA PRIVATE KEY-----
MIIBuwIBAAKxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrCLxxxxxxxxxxxhxtl
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkK+YGs8EL/exSUjOrifjHahLpwLc
3xoA/4TKNvioniKvQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhX
ZgM7vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBqQCM6kWiI319L2
Iq//0rp29mk7cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvywOb39B0Ilvu9QkLFh9n
/gV2SUzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbspE
QcM532eRsdHDsNDaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2BJLzJoXVYF3U3ejEq6BrTQUtcCFFo2ew+v
8sxxxxxxxxxxxxxxxxxxxxxxxx
-----END DSA PRIVATE KEY-----




Générer une nouvelle clé pour FreeNX


Il est possible de générer une nouvelle clé à l'aide de la commande ci dessous. N'oubliez pas qu'il vous faudra changer cette clé dans les paramètres de tous vos clients NX.

  • Veillez à ce que tous vos clients soient déconnectés puis lancez la commande pour générer une nouvelle clé :
# nxsetup --install --clean --purge


  • Répondre "y" à la demande de confirmation :
------> It is recommended that you use the NoMachine key for
        easier setup. If you answer "y", FreeNX creates a custom
        KeyPair and expects you to setup your clients manually. 
        "N" is default and uses the NoMachine key for installation.

 Do you want to use your own custom KeyPair? [y/N]


  • Il n'est pas nécessaire de redémarrer le service, la prise en compte du nouveau fichier clé est immédiate :
# cat /var/lib/nxserver/home/.ssh/client.id_dsa.key
-----BEGIN DSA PRIVATE KEY-----
vyNIi4y4IbrxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrCvyNIi4y4Ibr
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxkK+YGs8EL/exSUj
3xoA/4TKNvioniKvQxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxhX
ZgM7vxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxBqQCxxxxxxxxxxx
Iq//0rp29mk7cxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvywOb39Bxxxxxxxxxxxxxx
/gV2SUzxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxbspE
QcM532CvyNIi4y4IbrDaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx2BJLzJoxxxxxxxxxxE3xoA/4TKNvioniKvQ
8sxxxxxxxxxxxxxxxxxxxxxxxx
-----END DSA PRIVATE KEY-----


  • Ne vous reste qu'à injecter celle ci dans les paramètres de son client NX NoMachine (ou OpenNX via les dépôts extra de CentOS 6), et l'utilisateur Pierre pourra se reconnecter (bien entendu, vous remplacerez "pierre" par vos utilisateurs n'est ce pas ?)..



capture_freenx_pierre


Quelques éléments à désinstaller côté Serveur


Voici quelques paquets que nous désinstallons car à priori inutiles dans le cadre d'un accès bureau à distance (si la machine ne sert qu'à FreeNX bien sûr). Chacun enlèvera ou rajoutera ce qui lui convient.

  • Les écrans de veille
# yum remove gnome-screensaver


  • Les jeux
# yum remove gnome-games


  • Vidéo-conférence et ripper de cd
# yum remove ekiga sound-juicer


  • Prise en charge des tablettes graphiques :
# yum remove linuxwacom




En cas de besoin, quelques commandes utiles (en root depuis le serveur)


  • Connaître l'état du serveur NX :
# nxserver --status


  • Lister les sessions en cours (avec les infos ip client, display utilisé, etc..) :
# nxserver --list


  • Fermer une session en cours (exemple avec la session "pierre") :
# nxserver --terminate pierre


  • Terminer toutes les sessions en cours :
# nxserver --cleanup


  • Envoyer un message à tous les utilisateurs connectés :
# nxserver --broadcast  'attention redémarrage du serveur dans 1 minute'


  • Envoyer un message à un seul utilisateur (exemple avec pierre, et on évite les accents) :
# nxserver --send pierre 'tu viens prendre un cafe'





Vous devriez à présent avoir à disposition un serveur FreeNX opérationnel et les premiers éléments pour le gérer. La prochaine étape traite de la configuration côté client (NoMachine ou OpenNX) et des optimisations possibles, pour les petites connexions adsl par exemple.


Lien utiles :





Vous pouvez commenter ou participer à l'amélioration de cet article via le topic dédié du forum.