<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour installer le serveur « <strong class="spip"> FreeNX </strong> » sur une Debian testing. Il me sert également de mémo pour installer les clients fournis gratuitement par la société « <strong class="spip"> NoMachine </strong> » sous Debian ou sous Windows.</p>

<p class="spip">La technologie « <strong class="spip"> nx </strong> » a été développée par la société « <strong class="spip"> NoMachine </strong> ». Cette technologie est comparable à celle développée par Citrix et reprise par Microsoft sous le nom « Windows Terminal Serveur ».</p>

<p class="spip">La technologie est libre, et la société « NoMachine « commercialise la partie serveur et fournit gratuitement des clients. <strong class="spip">ATTENTION</strong> : NoMachine propose également un serveur gratuit (mais non libre), limité à seulement 2 accès.</p>

<p class="spip">Le serveur libre « <strong class="spip"> FreeNX </strong> » est donc basé sur cette technologie. Il existe également des clients libres, mais ceux-ci sont pour le moment plus compliqués à utiliser.</p>

<h2>Pré-requis</h2>
<p class="spip">Le but de FreeNX est d’exporter un bureau graphique complet sur un poste distant en utilisant une bande passante minimum (Une connexion par modem à 56kbps suffit). Il faut donc qu’un bureau graphique soit installé sur le serveur. Pour installer une Debian Testing avec KDE, vous pouvez suivre ce mémo : 
<br /></p>
<li> <a href="http://www.coagul.org/article.php3?id_article=159" class="spip_out">http://www.coagul.org/article.php3 ?id_article=159</a>
<p class="spip">FreeNX reposant entièrement sur un serveur SSH, il faut également qu’un serveur SSH soit opérationnel sur le serveur. Pour cela, vous pouvez suivre ce mémo :
<br /></p>
<li> <a href="http://www.coagul.org/article.php3?id_article=168" class="spip_out">http://www.coagul.org/article.php3 ?id_article=168</a>
<h2>Installation de FreeNX 0.4.4</h2>
<p class="spip">Les paquets ne sont pas fourni en standard pour Debian, mais ils sont téléchargeables sur plusieurs adresses. L’adresse standard est la suivante :
<br /></p>
<li> <a href="http://freenx.berlios.de/download.php" class="spip_out">http://freenx.berlios.de/download.php</a>
<p class="spip"><strong class="spip">ATTENTION</strong> : A ce jour les paquets téléchargés à cette adresse fonctionne correctement sur une Debian Sarge, mais pour sur une Debian Testing/SID avec Xorg 7.0, il pose plusieurs problèmes. Voire le chapitre « <strong class="spip">Problèmes avec Xorg 7.0</strong> » à la fin de ce document.</p>

<p class="spip">Pour Testing/SID, je conseil d’utiliser les paquets pour Ubuntu de cette adresse :
<br /></p>
<li> <a href="http://doc.ubuntu-fr.org/serveur/freenx" class="spip_out">http://doc.ubuntu-fr.org/serveur/freenx</a>
<p class="spip">Il faut donc ajouter la ligne suivante au fichier « <strong class="spip">/etc/apt/sources.list </strong> » :</p>

<p class="spip"><code class='spip_code' dir='ltr'>deb http://mirror2.ubuntulinux.nl/ dapper-seveas all</code></p>

<p class="spip">Installer la clé gpg :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># gpg --keyserver subkeys.pgp.net --recv-keys 1135D466<br />
# gpg --export --armor 1135D466 | apt-key add -</code></div>
<p class="spip">Mettre à jour la liste des paquets</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude update</code></p>

<p class="spip">Et installer le nouveau paquet contenant le serveur « FreeNX » :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install freenx</code></p>

<p class="spip"><strong class="spip">Remarque</strong> : L’installation de ce paquet, entraîne l’installation des dépendances suivantes : 
<br /></p>
<li> libxcomp1 libxcompext1 nxagent nxlibs
<h2>Gestion des clés</h2>
<p class="spip">Pour des raisons de sécurité, le serveur FreeNX utilise des clés privés. Pour éviter de devoir installer une clé sur chaque client, il est possible d’utiliser la clé par défaut fournie avec le client NoMachine ou d’utiliser une clé personnelle. La deuxième méthode étant un peu plus contraignante, mais plus sécurisée.</p>

<p class="spip">La commandes suivante permet de créer les clés privées :</p>

<p class="spip"><code class='spip_code' dir='ltr'># nxsetup</code></p>

<p class="spip">Cette commande crée le dossier « /etc/nxserver/ » contenant les fichiers suivant :
<br /></p>
<li> passwords  passwords.orig  users.id_dsa  users.id_dsa.pub
<p class="spip">Elle crée également le dossier « /home/.nx/.ssh/ » contenant les fichiers suivant :
<br /></p>
<li> authorized_keys2  client.id_dsa.key  known_hosts  server.id_dsa.pub.key
<p class="spip">Lors de l’installation des clients, il faudra importer le fichier « /home/.nx/.ssh/client.id_dsa.key »</p>

<p class="spip">Si vous voulez utiliser la clé fournie par défaut avec le client NoMachine est donc éviter une gestion des clés pour chaque client, il faut exécuter la commande suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'># nxsetup --setup-nomachine-key </code></p>

<p class="spip">Et supprimer le fichier suivant :</p>

<p class="spip"><code class='spip_code' dir='ltr'># rm /home/.nx/.ssh/authorized_keys2</code></p>

<h2>Arrêt démarrage du serveur FreeNX</h2>
<p class="spip">En fait, il n’existe pas réellement de serveur FreeNX, étant donné que tout passe par le serveur SSH. Cependant, il est possible d’activer ou de désactiver l’accès via FreeNX.</p>

<p class="spip">La commande suivante, permet de connaître l’état du serveur FreeNX :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># nxserver --status<br />
shell-init: error retrieving current directory: getcwd: cannot access parent<br />
directories: Aucun fichier ou répertoire de ce type<br />
NX> 100 NXSERVER - Version 1.4.0-02 OS_(GPL)<br />
NX> 110 NX Server is running<br />
NX> 999 Bye</code></div>
<p class="spip">La commande suivante permet d’arrêter le serveur FreeNX</p>

<p class="spip"><code class='spip_code' dir='ltr'># nxserver --stop</code></p>

<p class="spip">La commande suivante permet de démarrer le serveur FreeNX</p>

<p class="spip"><code class='spip_code' dir='ltr'># nxserver --start</code></p>

<h2>Installation d’un client sous Windows</h2>
<p class="spip">Le client Windows est normalement téléchargeable sur le site de NoMachine à cette adresse :
<br /></p>
<li> <a href="http://www.nomachine.com/download.php" class="spip_out">http://www.nomachine.com/download.php</a>
<p class="spip">Mais la version actuelle (2.10) n’est pas compatible avec la version 0.4.4 du serveur FreeNX.</p>

<p class="spip">Il faut donc utiliser l’ancienne version téléchargement par exemple ici : 
<br /></p>
<li> <a href="http://assistance.dedibox.fr/documentation/doku.php?id=admin:connect" class="spip_out">http://assistance.dedibox.fr/documentation/doku.php ?id=admin:connect</a>
<p class="spip">Ce programme installe l’assistant de configuration des sessions « NX Connection Wizard »</p>

<p class="spip">Lors de la configuration, il faut renseigner les champs suivants :
<br /></p>
<li> Le nom de la session (Libre)
<br /><li> L’adresse IP ou le nom du serveur FreeNX dans le champ « Host »
<br /><li> En fonction du type de connexion, il faut placer le curseur entre MODEM et LAN 
<br /><li> Dans le champ « Select Size », je chois « Fullscreen » pour être en pleine écran.
<br /><li> Il faut cocher « Enable SSL encryption of all trafic »
<br /><li> Il est possible de cocher « Show the Advanced configuration dialog » pour avoir d’autres options et en particulier la mémorisation du mot de passe (Remember my password).
<p class="spip">Cet assistant crée un icône sur le bureau permettant de lancer la connexion. Tous les utilisateurs ayant un accès SSH et un environnement graphique de configuré, pourront se connecter au serveur FreeNX.</p>

<h2>Configuration de la clé sur le client </h2>
<p class="spip">En fonction de la clé utilisée lors de la configuration du serveur (Celle par défaut de NoMachine ou celle personnalisée), il faut configurer le client en fonction.</p>

<p class="spip">Pour cela, il faut aller dans la configuration du client, dans l’onglet « Général » et cliquer sur le bouton « Key... »</p>

<p class="spip">Si vous voulez utiliser la clé par défaut de NoMachine, il faut cliquer sur « Default », sinon, il faut cliquer sur « Import » et rechercher le fichier « client.id_dsa.key » disponible sur le serveur dans le dossier « /home/.nx/.ssh/ »</p>

<h2>Installation d’un client sous Linux (Debian Testing)</h2>
<p class="spip">Comme pour le client Windows, la version 2.1 fourni par NoMachine ne fonctionne pas avec la version 0.4.4 de serveur FreeNX.</p>

<p class="spip">Le plus simple est d’utiliser le client NX disponible sur la source Ubuntu ayant servi à l’installation dus serveur :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install nxclient   </code></p>

<p class="spip">La commande suivante permet de lancer le client :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ /usr/NX/bin/nxclient</code></p>

<p class="spip">La configuration est exactement la même que sous Windows.</p>

<p class="spip"><strong class="spip">Remarque</strong> : L’installation du client a crée de nouveaux icônes dans le menu « K » de KDE dans la section « Internet / NX Client for Linux »</p>

<h2>Remarques sur le lancement du client</h2>
<br /><li> Si votre login Windows comporte des majuscules, il faut tout mettre en minuscule pour que la connexion au serveur FreeNX sous Linux fonctionne.
<br /><li> Sous Windows, Il faut utiliser les touches « Ctrl+Esc » pour basculer entre la fenêtre de nxclient en plein écran et les autres fenêtres du poste.
<br /><li> Sous Linux, Il faut utiliser les touches « Ctrl+Alt+Esc » pour basculer entre la fenêtre de nxclient en plein écran et les autres fenêtres du poste.
<br /><li> Pour repasser sur l’écran d’origine, il est également possible de cliquer dans  le coin supérieur droit de l’écran.
<h2>Problèmes rencontrés</h2>
<h3>Le clavier est en qwerty</h3>
<p class="spip">Lors de ma première connexion sous KDE, je me suis retrouvé avec un clavier en qwerty. Pour remédier à ce problème, j’ai fait :
<br /></p>
<li> K / Centre de configuration de KDE / Régionalisation et accessibilité / Disposition du clavier
<br /><li> Cocher « Activer les disposition du clavier », sélectionner « France » et « Ajouter »
<h3>Impossible de se connecter</h3>
<p class="spip">Sur un nouveau serveur, je n’arrivais pas à me connecter. J’avais le message suivant dans les logs du client lors de la connexion :</p>

<p class="spip"><code class='spip_code' dir='ltr'>NX> 204 Authentication failed.</code></p>

<p class="spip">Pour remédier à ce problème, j’ai modifié la configuration du serveur SSH en rempalcant la ligne suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'>AuthorizedKeysFile      %h/.ssh/authorized_keys2</code></p>

<p class="spip">Par la ligne suivante :</p>

<p class="spip"><code class='spip_code' dir='ltr'>AuthorizedKeysFile      %h/.ssh/authorized_keys2</code></p>

<p class="spip">Et j’ai redémarré le serveur SSH :</p>

<p class="spip"><code class='spip_code' dir='ltr'># /etc/init.d/ssh restart</code></p>

<p class="spip">Une autre solution (plus propre), consiste à re-installer openssh :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># aptitude purge openssh-server<br />
# aptitude install openssh-server</code></div>
<h2>Problèmes suite au passage à Xorg 7.0 (Remarque : Sur une Debian testing récente, ces problèmes n’apparaissent plus avec les paquets du dépôt Ubuntu)</h2>
<p class="spip">Suite au passage à Xorg 7.0, plusieurs chemins ont été modifié, et le serveur FreeNX, ne fonctionne plus correctement.</p>

<h3>Impossible de se connecter</h3>
<p class="spip">Le début de la connexion semble fonctionner mais au démarrage du serveur X, la connexion se ferme brutalement. Pour faire fonctionner la connexion, il faut ajouter dans le fichier de configuration de FreeNX « <strong class="spip">/etc/nxserver/node.conf</strong> » la ligne suivante <strong class="spip">à mettre sur une seule ligne et sans espace après les virgules</strong> :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code>AGENT_EXTRA_OPTIONS_X="-fp<br />
/usr/share/fonts/X11/misc/,<br />
/usr/share/fonts/X11/75dpi/:unscaled,<br />
/usr/share/fonts/X11/100dpi/:unscaled,<br />
/usr/share/fonts/X11/Type1/,<br />
/usr/share/fonts/X11/100dpi/,<br />
/usr/share/fonts/X11/75dpi/"</code></div>
<h3>Le clavier est en qwerty</h3>
<p class="spip">Après de nombreuses recherches, la seule solution que j’ai trouvé est de passer par  « <strong class="spip">xmodmap </strong> » pour reconfigurer complètement le clavier. Le problème, c’est qu’il faut installer le paquet « <strong class="spip">gnome-applets</strong> » et se dernier nécessite l’installation complète de Gnome soit 250Mo, juste pour avoir la bonne définition du clavier !!</p>

<p class="spip">Donc, il faut commercer par installer le paquet  « <strong class="spip">gnome-applets</strong> » avec ses dépendances :</p>

<p class="spip"><code class='spip_code' dir='ltr'># aptitude install gnome-applets</code></p>

<p class="spip">Et lancer cette commande :</p>

<p class="spip"><code class='spip_code' dir='ltr'># xmodmap /usr/share/xmodmap/xmodmap.fr-2       </code></p>

<p class="spip"><strong class="spip">Remarque 1 </strong> : Pour éviter d’installer les 250Mo de gnome, il est possible de récupérer seulement le fichier texte « <strong class="spip">xmodmap.fr-2</strong> » sur un autre poste.</p>

<p class="spip"><strong class="spip">Remarque 2</strong> : Sous KDE, il est possible de placer un script dans « <strong class="spip"> /.kde/Autostart</strong> » pour lancer cette commande automatiquement au démarrage de la session</p>

<h3>Problème de configuration de fonts</h3>
<p class="spip">Sur mes postes sous Windows NT, en lançant un xterm (entre autre), j’avais ce message d’erreur :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ xterm</code></p>

<p class="spip"><code class='spip_code' dir='ltr'>Warning: Cannot convert string "nil2" to type FontStruct</code></p>

<p class="spip">Pour régler ce problème, j’ai installé sur mes clients Windows les paquets de fonts complémentaires disponibles sur le site de NoMachine :
<br /></p>
<li> <a href="http://www.nomachine.com/download-client-windows.php" class="spip_out">http://www.nomachine.com/download-client-windows.php</a>
<h3>Problème de chargement des couleurs</h3>
<p class="spip">Suite à une mise à jour de Xorg, le chemin de configuration des « <strong class="spip"> xterm </strong> » a changé. Auparavant c’était « <strong class="spip">/usr/X11R6/lib/X11/app-defaults/XTerm</strong> » mais désormais, c’est « <strong class="spip">/usr/lib/X11/app-defaults/Xterm</strong> ». Dans mon cas , j’ai du créer manuellement le dossier « <strong class="spip">app-defaults</strong> » et le fichier « <strong class="spip">XTerm</strong> ». De plus, toujours suite à cette mise à jour j’avais un message d’erreur en lançant un « <strong class="spip"> xterm </strong> » car il ne trouvait plus la table des couleurs :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ xterm: Cannot allocate color black</code></p>

<p class="spip">Pour régler ce problème, j’ai créé un lien symbolique :</p>

<p class="spip"><code class='spip_code' dir='ltr'>ln -s /etc/X11/rgb.txt /usr/X11R6/lib/rgb.txt</code></p>

<p class="spip">Après ces modifications, il faut arrêter et redémarrer le serveur Freenx :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># nxserver --stop<br />
# nxserver --start</code></div>
<p class="spip">et se déconnecter et se reconnecter de KDE</p>

<h2>Autres liens</h2>
<p class="spip">La documentation pour Ubuntu fonctionnant très bien sur Debian Testing / SID
<br /></p>
<li> <a href="http://doc.ubuntu-fr.org/serveur/freenx" class="spip_out">http://doc.ubuntu-fr.org/serveur/freenx</a>
<p class="spip">La documentation pour Debian fonctionnant pour Sarge :
<br /></p>
<li> <a href="http://wiki.debian.org/freenx" class="spip_out">http://wiki.debian.org/freenx</a>
<p class="spip">Le site de FreeNX :
<br /></p>
<li> <a href="http://freenx.berlios.de/download.php" class="spip_out">http://freenx.berlios.de/download.php</a>
<p class="spip">Le site de NoMachine :
<br /></p>
<li> <a href="http://www.nomachine.com/download_client_windows.php" class="spip_out">http://www.nomachine.com/</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>28/07/05</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.5</td><td>06/04/06</td><td>Mise à jour suite à nouvelle installation</td></tr>
<tr class="row_even"><td>0.6</td><td>29/06/06</td><td>Mise à jour suite aux problèmes rencontrés avec Xorg 7.0</td></tr>
<tr class="row_odd"><td>0.7</td><td>29/09/06</td><td>Nouvelle source pour le serveur FreeNX, fonctionnant correctement avec Xorg 7.0</td></tr>
<tr class="row_even"><td>0.91</td><td>17/01/07</td><td>Mise à jour suite à nouvelle installation </td></tr>
</tbody>
</table>