Compagnon NX depuis le Web

Posted by on Fév 12, 2009 in Blog, Planet-Libre, Tutoriaux | 5 Comments

Tandis que l’on cherche à faire une application portable du client NX de no machine on s’apperçoit qu’il existe aussi un client qui fonctionne depuis le web, alors comment ça marche ?

En fait c’est très simple si si, en considération de la mise en place d’un serveur ssh et tout le reste, ça c’est très simple 😉

Tout d’abord il faut posséder le compagnon NX que vous allez mettre en place sur votre serveur Web

Pour télécharger NX web companion

Une fois télécharger vous devez installer l’intégralité du répertoire plugin sur un serveur web de préférence Apache 😛

Là 2 solutions s’offrent à vous soit vous possédez votre propre serveur web que vous hébergez et auquel cas vous pouvez le mettre sur ce serveur, ou bien vous avez un serveur web externe (un peu comme ce site) et vous pouvez copier le répertoire via votre logiciel ftp favorit dans un répertoire de votre choix. C’est cette solution que nous allons voir dans ce tutorial.

Pour commencer un petit schéma :

schéma fonctionnement NX companion

schéma fonctionnement NX companion

En lisant la documentation du compagnon on voit que celui-çi n’est pas sécurisé lors de la connexion ensuite aucun problème mais du fait que la clef est stockée en clair dans un fichier de session cela représente une faille, c’est pourquoi j’ai opté pour l’hébergement sur un serveur publique, car dans ce cas je multiplie les différents sites et fichiers de connexion.

Donc pour sécuriser un minimum cette application il va falloir créer un fichier .htaccess où vous mettrez l’utilisateur autotisé à accéder au client Web.

Ensuite fourni avec le compagnon Web il y a un fichier qui se nomme nxapplet.html qu’il va falloir copier ou renommer en fichier index.html, comme ça pas de mauvaise surprise.

Il fa falloir faire quelques modifications dans ce fichier :

<PARAM NAME= »SiteUrl » VALUE= »http://votresiteweb.fr/remote »> Qui représente l’emplacement où est stocké l’applet

<PARAM NAME= »RedirectUrl » VALUE= »http://votresiteweb.fr »> Qui est le lien vers lequel l’applet doit vous rediriger une fois que vous aurez terminé

<PARAM NAME= »SessionUrl » VALUE= »/Java/session/SessionWeb.nxs »> L’endroit et le nom de la session que vous allez utiliser pour vous connecter à votre pc

<PARAM NAME= »SessionName » VALUE= »remote.nxs »> le nom que vous allez donner à votre session.

Ensuite il va falloir créer votre fichier de session qui sera stocké dans le répertoire désigné par SessionUrl

Pour générer un fichier session le plus simple est d’enregistrer une session à partir d’un client NX.

je vous met un extrait de mon fichier session.nxs

<option key= »Server host » value= »127.0.0.1″ />
<option key= »Server port » value= »2222″ />
<group name= »Login » >
<option key= »Auth » value= »EMPTY_PASSWORD » />
<option key= »Guest Mode » value= »false » />
<option key= »Public Key » value= »—–BEGIN DSA PRIVATE KEY—–
clef ssh NX
—–END DSA PRIVATE KEY—–
 » />
<option key= »User » value= »NomDeVotreUtilisateur » />

Vous remarquerez que je met comme serveur le 127.0.0.1 avec un port 2222… Bein pourquoi donc ??

Le client Web NX N’EST PAS SECURISE !!! Il va donc falloir le faire passer dans un tunnel ssh 😉 et c’est là qu’intervient votre configuration de putty

Un port local 2222 redirigé vers le port distant 22 avec une clef ssh + une passphrase sur une clef USB, ce qui fait que désormais votre client est sécurisé pour sa connection, puisqu’il passe via le tunnel ssh 😀

La clef ssh contenue dans le fichier session sert juste à vous authentifier auprès du serveur Nx et non pas auprès du serveur SSH.

C’est pourquoi ça ne me dérange pas que le fichier de session soit sur un serveur publique puisque nul part, excepté dans ma configuration de putty, il n’est mentionné l’adresse IP de mon serveur NX…

Il faut savoir que la première fois si aucun client NX ou plugin n’est installé, l’applet va télécharger le client en local sur la machine, en revanche à la fin de l’utilisation le fichier session sera détruit. Il ne restera que le dossier plugin dans le home de l’utilisateur.

voilà

[attachments size=medium docid=0 doctype=document title= »Traduction NX Companion » titletag=h2 orderby= »post_title ASC »]

twitterlinkedin

5 Comments

  1. Krigal
    15 mars 2009

    Bonjour,
    Je trouve ton tutoriel super intéressant,

    Mais j’ai une erreur avec le nx companion.
    Lorsque j’essay de lancé l’applet il me dit « classe NXApplet.class introuvable » j’ai revérifié mon serveur web plusieurs fois ainsi que me session.nxs et tout les parmettre de nxapplet.html.

    Juste si tu a une idée d’où ça peut venir je t’en serais reconnaissant (c’est la première fois que je boss avec une applet java).

    Dans tout les cas si je trouve la solution je reviendrai mettre un commentaire pour dire comment j’ai fait.

    Mais franchement très bon site d’aide informatique quand j’aurai terminé de refaire le mien (site d’aide à l’installation et la configuration de logicielle sous debian et ubuntu) je metterais un lien ver pc-kc.

    Bonne continuation et bonne chance si tu devient auto-entrepreuneur.

  2. admin
    15 mars 2009

    Bonjour

    Merci pour ton commentaire …
    Sinon as tu bien télécharger le companion NX depuis le site de no machine ?
    Pourrais tu m’en dire plus sur ta configuration ?
    logiquement dans /var/www/nxcompanion tu dois retrouver un répertoire Java avec l’applet à l’intérieur

    à la racine il y a aussi un fichier nxapplet.html dans lequel il faut bien indiquer le chemin de ton site car sinon à la connexion il ne peut pas trouver l’applet
    pourrais tu me donner la valeur que tu as sur cette ligne : SiteUrl

    Tiens moi au courant

    bonne journée

  3. Krigal
    15 mars 2009

    re-Bonjour,

    Tu a raison j’avais une erreur sur la ligne: SiteURL

    Pour ma configuration le serveur est sous ubuntu 8.10 serveur LAMP installer et configuré et serveur freenx aussi installer et configuré (fonctionne déjà avec les client nos machine sur mes client).

    L’un de mes clients est sous windows xp et l’autre sous ubuntu avec pour navigateur respectivement internet explorer et firefox.

    J’avais trouvé mon erreur il y a queqlues heures déjà (un « / » en trop).

    Mais maintenant j’ai une nouvelle erreur dans la console java sur les 2 client.
     »
    Warning : Applet cannot read PARAM ‘loglevel’ the key ‘loglevel’ will be empty
    DEBUG: Applet PARAM ‘loglevel’ value ‘null’
    java.lang.NumberFormatException: null
    at java.lang.Integer.parseInt(Integer.java:415)
    at java.lang.Integer.parseInt(Integer.java:497)
    at NXApplet.initComponents(NXApplet.java:1172)
    at NXApplet.init(NXApplet.java:245)
    at sun.applet.AppletPanel.run(AppletPanel.java:424)
    at java.lang.Thread.run(Thread.java:619)
     »

    Voila ou j’en suis si tu a une idée je suis preuneur.
    Quand j’aurai résolu tout mes problèmes je les consignerai avec leurs solutions et je partagerai tout ça avec toi.

    Autrement à la racine d emon répertoire web je n’avais rien je copier le répertoire « plugin » de « /usr/NX/share » dans « /var/www » et j’ai créé un petit index.html qui a juste un lien ver nxapplet.html (j’ai customizer ce ficher à ma config).

    Voila c’est a peut pres tout.

  4. Krigal
    15 mars 2009

    Et bien je devais être bien fatigué et pollué par le cache de mes navigateur ainsi que par mes client nx installé localement.

    J’ai redémarré serveur et client et tout marche nikell.

    Encore merci à toi pour le tuto et ton implication pour mon problème.

    Là je n’est plus qu’a étudier comment router ma freebox(ip dynamique) pour avoir accès à mon server nx depuis le net, je pense voir s’il y a pas moyen de contacté en auto un site web pour qu’il garde un ficher avec l’adresse ip de ma freebox quand elle change voir même que le site web redirige un nom de dommaine automatuqement sur l’ip.

    Merci encore et bonne continuation.

  5. admin
    15 mars 2009

    Content que ça fonctionne
    dyndns fait ça très bien
    pour récupérer les ip, sinon passe en ip fixe 😉

Leave a Reply

You must be logged in to post a comment.