[FreeNX-kNX] Fwd: nxproxy usage?

Joshua Kinard joshua.kinard at sdc-world.com
Wed Jun 24 20:12:24 UTC 2009


That's because giving up implies defeat, and it is the computer(s) that will lose in this case -- not me :)

Targeting this solution (for now) because in my testing environment, plain X11 over SSH doesn't work right with the default-installed Gnome for some reason (on RHEL5 -- the applets get confused or something), and debugging gnome doesn't terribly interest me.  A quick run of a typical NX setup worked beautifully, but I'm restricted to using smartcards and pkcs11/publickey authentication, not passwords, to get users onto the server via the thin clients.  If gnome played nice, I could use my existing smartcard setup just fine (and I may yet still, once I look at switching to a different WM).  For now, the machines aren't connected to the internet, so this limits my options for full-on updating.  I also have to be able to secure the daylights out of the final implementation, too, so I have to not over-do it on the various patches I might otherwise use.

The procedure you've got below seems to gel with some documentation I found from NoMachine:
http://www.nomachine.com/documents/technology/building-components-3.x.php

But I'm now hindered by the fact I'm on Debian Etch on the thin clients, NoMachine doesn't provide a pre-compiled nxproxy, and Debian's version is for lenny|squeeze|sid.  Plus these thin clients have very little space, so no compiling one either (yet, anyways).  It'll be a few days before I can get my hands on full copies of Lenny and such, so I think using nxproxy is on hold, at least.

That said, some component of the nxclient package seems to do what nxproxy does, but I'm not sure which.  nxservice, maybe?  I wonder if I can make that work somehow...

Anyways, thanks for the tips.  I'll take a look at the links later on and see if I can think up anything new.


________________________________
From: Marcelo Boveto Shima [marceloshima at gmail.com]
Sent: Wednesday, June 24, 2009 3:23 PM
To: User Support for FreeNX Server and kNX Client
Subject: [FreeNX-kNX] Fwd: nxproxy usage?

Seems you are not going to give up. =)

I must say it isn't an easy task. I know because I am writing a new server.
https://code.edge.launchpad.net/~marceloshima/tacix/0.1

Let me try to explain how it should work:
 1 - Create the options and authorization on the server.
 2 - Run NXAgent on the server.
 3 - Pass the authorization and options from the server to the client.
 4 - Create the options of the client.
 5 - Run NXProxy on the client.
 6 - NXProxy should communicate with NXAgent successfuly.
 7 - You have a running session.

The most difficult part is to create the options for NXProxy based on the information created
for the NXAgent.

So the most important task is to create the communication protocol.
I was thinking in using dbus or soap. But for now I am using the protocol nxclient/nxserver
uses.

I think the easiest way for you to accomplish what you are trying to do, is to hack on the
client I am writing and make it compatible with usermode FreeNX. Or use the tacix server.
 * Usermode FreeNX is the mode Fabian made that you can log in directly into the
user account and start the session from there.
The client I am writing uses python-paramiko for ssh library, so it provides support
for ssh-agent and others.

For the client you can take a look at:
http://bazaar.launchpad.net/~marceloshima/tacix/0.1/annotate/head%3A/tacix/client/TXClient.py
and
http://bazaar.launchpad.net/~marceloshima/tacix/0.1/annotate/head%3A/server/tacix-client

Hope this helps.
Shima

---------- Forwarded message ----------
From: Joshua Kinard <joshua.kinard at sdc-world.com<mailto:joshua.kinard at sdc-world.com>>
Date: Wed, Jun 24, 2009 at 2:50 PM
Subject: [FreeNX-kNX] nxproxy usage?
To: "freenx-knx at kde.org<mailto:freenx-knx at kde.org>" <freenx-knx at kde.org<mailto:freenx-knx at kde.org>>


Having a blonde moment here, but I'm attempting to run the commands in an ssh shell and seeing how far I can get.  Figured out (somewhat) how to start the agent:

nxnode --startsession <ENTER>
<bunch of silly options>

Then it prints out stuff that indicates that the session is running and sits there.  Now I have roughly ~60 seconds to get nxproxy running before the agent gives up, packs its bags, and goes home.  But running nxproxy is confusing me, and the directions aren't exactly clear on what I should be passing it.

Quote from http://www.nomachine.com/ar/view.php?ar_id=AR03C00171:
8. Then in another shell (or in background), please invoke nxproxy with the proper parameters. Parameters can be passed on the command line or in the options file, usually created in the session directory, in $HOME/.nx:
    nxproxy -S options=path to options file/options:Session display
The only folder I have in ~/.nx while the agent is running is in the format of C-$HOSTNAME-$DISPLAY-$UNIQUEID, where $DISPLAY and $UNIQUEID come from the params I passed to nxnode --startsession.  The example given for nxproxy indicates it's looking for a folder that starts with S-, not C-.  If I pass it the C- path + /options, it notes that it is ignoring several options, then quits after trying to bind to the same TCP port that the agent is already sitting on, which causes it to error out.

Now, this is assuming nxproxy should be run from the server ssh session, as that's what the instructions seem to imply.  Am I supposed to be switching back to the client, where nxproxy is available, and running it from there, copying (as fast as I can) my parameters from the server, creating the S-$HOSTNAME-$DISPLAY-$UNIQUEID directory, populating the options file, then launching nxproxy?  If so, that will be difficult to scriptify in bash or something.

The way I'm reading the documentation, is that nxnode --startsession and nxproxy get run on the server side, and somehow, another utilitiy runs on the client to connect.  Right now, my environment is a RHEL5 system as the server, and a Debian Etch-based thin client as the client.  The thin client only has the standard NoMachine nxclient on it (thus no nxproxy), while the RHEL5 has nx and the freenx server RPM.

How I'm currently kludging things:
1. Sitting on the thin client, doing dual SSH sessions to the server with X11Forwarding enabled.  One session invokes nxnode --startsession, and feeds it some values that I partially autogenerate quickly by hand (i.e., run a script, copy+paste output).  The agent invokes and starts a session.

2. Second session to the server invokes nxproxy.  This is where I'm stuck.  According to the documentation, nxproxy is supposed to load here, and then I switch back to session 1 and log off of the ssh session, thus dropping back to the client.  What I'm supposed to do after this, I'm, not sure.  NX's guide ends at this point.

Anyways, long read, but if anyone has pointers as to what I'm doing wrong, let me know.  Still got ~4 more hours to crack at it, though!

Thanks!

Joshua Kinard

________________________________________________________________
    Were you helped on this list with your FreeNX problem?
   Then please write up the solution in the FreeNX Wiki/FAQ:

http://openfacts2.berlios.de/wikien/index.php/BerliosProject:FreeNX_-_FAQ

        Don't forget to check the NX Knowledge Base:
                http://www.nomachine.com/kb/

________________________________________________________________
      FreeNX-kNX mailing list --- FreeNX-kNX at kde.org<mailto:FreeNX-kNX at kde.org>
     https://mail.kde.org/mailman/listinfo/freenx-knx
________________________________________________________________

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/freenx-knx/attachments/20090624/604edd43/attachment.html>


More information about the FreeNX-kNX mailing list