Nomachine NX server

By Peter Knaggs

In questo articolo, descriverò il mio primo tentativo di installare e provare il pacchetto di CentOS su RHEL4 del server Nomachine NX. Non ho mai avuto tempo di farlo prima, ma meritava di essere sperimentato.

Comparato a VNC, è stupefacentemente veloce, e abbastanza diretto nell'impostazioni usando il pacchetto di CentOS per RHEL4, così è possibile far felici gli sviluppatori C "ospitati" dando loro un veloce accesso al desktop della loro box ospitata RHEL4, direttamente dalle loro macchine desktop "standard" Microsoft Windows . Come ho capito, il client NX che Nomachine rende disponibile per il download gratuito è ancora proprietario; comunque, Nomachine fornisce i sorgenti per Linux disponibili sotto GPL, così non sono molto sicuro di come tutto funzionerà.

Sono incappato in un assistente al server NX brevemente un anno fa quando usavo Kanotix, a causa di una sorprendente scoperta di un inaspettato file di chiave_di_autorizzazione che stava nella home directory dell'utente "nx". Pensai che qualche hacker avesse giocherellato con il mio laptop, ma ad un controllo più approfondito si è dimostrato essere l'installazione standard del pacchetto NX (sarà spiegata con maggiori dettagli alla fine di questo articolo).

Nel proseguo, ho usato il termine "Linux box ospitata" per significare una stazione Linux ospitata distante in un qualsiasi datacenter.

Benefici del server Nomachine NX

Installazione Server/Client NX

1. Lato Server (la propria Linux box RHEL4 ospitata)
Eseguire il download dei pacchetti NX e FreeNX dai repository di CentOS4. CentOS è una Comunità Enterprise Linux, una "whitebox" ricompilata di RHEL, così è pienamente compatiile con Red Hat Enterprise Linux 4, e supportata allo stesso livello.

wget http://mirror.centos.org/centos/4/extras/i386/RPMS/nx-1.5.0-1.centos4.i386.rpm
wget http://mirror.centos.org/centos/4/extras/i386/RPMS/freenx-0.5.0-10.c4.noarch.rpm

Installare i pacchetti NX e FreeNX come segue:

sudo rpm -Uvh nx-1.5.0-1.centos4.i386.rpm
sudo rpm -Uvh freenx-0.5.0-10.c4.noarch.rpm

Questo aggiunge anche un nuovo utente chiamato "nx" alla propria Linux box ospitata (segue un'estratto dal file /etc/passwd):

nx:x:499:11::/var/lib/nxserver/home:/usr/bin/nxserver

Notare che la "shell" di questo nuovo utente "nx" è "/usr/bin/nxserver", così viene dedicato allo scopo di servire i client NX, e non è un account utente multiuso.

L'installazione del pacchetto genera anche una coppia di chiavi OpenSSH nella directory home del nuovo utente "nx". Prego accertarsi che i permessi siano i seguenti dopo l'installazione, in modo da permettere a OpenSSH di lavorare propriamente:

bash-3.00# ls -l /var/lib/nxserver/home/.ssh
total 16
-r--------  1 nx root 602 Dec 16 10:33 authorized_keys2
-rw-------  1 nx root 668 Dec 16 09:50 client.id_dsa.key
-rw-r--r--  1 nx root 220 Dec 16 09:50 known_hosts
-rw-------  1 nx root 602 Dec 16 09:50 server.id_dsa.pub.key

2. Lato Client per Microsoft Windows
Una buona guida può essere trovata qui:

http://wiki.centos.org/FreeNX

Dopo aver installato il server NX come mostrato nella Sezione 1., copiare /var/lib/nxserver/home/.ssh/client.id_dsa.key nella propria macchina client Microsoft Windows. Questa è la chiave che occorrerà per conseguire l'accesso al server nx che si è installato nella sezione 1.

Eseguire il download del client NX dal sito web di Nomachine:

http://www.nomachine.com/download.php

Fare click sulla freccia verde vicino a "NX Client for Windows"; ora ancora click sulla stessa freccia, e poi click sul bottone "Download package". Installare come di solito, poi avviarlo.

Fare click su "Configure", e sotto il tabulatore "General", fare click sul bottone "Key..." ; poi, click su "Import" per leggere il contenuto di client.id_dsa.key che è stato menzionato sopra.

Per "Host", immettere il nome della Linux box ospitata; per "Port", immettere "22"; per "Desktop", scegliere "Unix" "GNOME".

Assicurarsi di selezionare "GNOME" come window manager, siccome al default ("KDE") manca il pannello KDE, rendendone difficile l'uso. Sembra essere un bug, ma lo GNOME window manager è preferito da Red Hat, così va bene per adesso.

Per l'impostazione della velocità della rete, il default "ADSL" è adatto se si sta lavorando da casa, ma per il lavoro dall'ufficio può essere meglio "WAN".

Impostare il parametro "Display" secondo i propri bisogni, dipendendo dalla risoluzione del desktop client della macchina correntemente usata. Partire con 1024x768. Una volta che le cose funzionano propriamente, si può tornare indietro, scegliere "Custom" e immettere 1280x1024, ciò vi darà un desktop più ampio.

Sul tabulatore "Advanced", assicurarsi di selezionare l'opzione

[x] Enable SSL encryption on all traffic
E' importante perchè non solo è criptato il traffico, ma dopo la connessione NX client-server usa solo quella porta che avete configurato sopra. Nessuna porta occorre essere aperta sulla box client (o su ogni firewall in mezzo).

Nel tabulatore "Services", è possibile configurare il supporto per la stampa e l'audio (multimedia) , ma è molto più complicato spiegarlo; suggerisco di sperimentarlo se ne siete interessati.

Fare click su [OK] una volta che si è finito la configurazione. Quando viene suggerito di salvarlo, fare click su [Yes].

Adesso immettere il proprio regolare username e password che si usa per loggarsi nella propria Linux box ospitata.

Notare che una volta che il desktop si è avviato, esiste /usr/NX/bin/nxclient . In modo da essere in grado di riconnettersi più tardi alla propria sessione desktop, fare click sulla "X" nell'angolo in alto a destra per "terminare" la finestra di NXclient. Un box di dialogo apparirà dentro la sessione desktop come di seguito:

  Premere il bottone suspend per disconnettere la sessione in esecuzione.
  Si sarà in grado di riprendere la sessione più tardi. Premere il
  bottone terminate per uscire dalla sessione e chiudere tutti i programmi in esecuzione.
    (Suspend)  (Terminate)  (Cancel)

Fare click su "Suspend".

La prossima volta che si eseguirà il login via NXclient, si vedrà questo messaggio:

  "Resuming the suspended session"
e il proprio desktop sarà proprio dove è stato lasciato precedentemente.

3. Lato Client per Ubuntu Linux (Dapper Drake 6.06LTS)
Una buona guida può essere trovata qui:

http://wiki.centos.org/FreeNX

Dopo l'installazione del server NX come mostrato nella Sezione 1, copiare /var/lib/nxserver/home/.ssh/client.id_dsa.key sulla propria macchina client in modo da avere l'accesso al server nx.

Copiare la chiave dove dovrebbe stare sulla macchina client:

cp $HOME/client.id_dsa.key $HOME/.ssh/id_dsa

Testare se si possa usare OpenSSH per avere accesso al server nx che si è installato sulla Linux box ospitata. Essenzialmente, eseguire un semplice login 'ssh' alla propria Linux box opsitata come utente "nx" (non dovrebbe essere necessaria nessuna password, perchè si userà la chiave provata del client da $HOME/.ssh/id_dsa ), e si dovrebbe vedere la "shell" del "server nx":

ssh nx@linux_hosted_box
Last login: Sat Dec 16 18:48:53 2006 from client.your.domain
which: no xauth in (/usr/local/bin:/bin:/usr/bin)
HELLO NXSERVER - Version 1.5.0-50-SVN OS (GPL)
NX> 105

Ora installare il pacchetto client per Ubuntu Linux. I sorgenti per questo pacchetto non sono disponibili, è un client NX proprietario della compagnia Nomachine (con il logo "!M"). Si può fare questo eseguendo da riga di comando:

  wget http://64.34.161.181/download/2.1.0/Linux/nxclient_2.1.0-9_i386.deb
  sudo dpkg -i nxclient_2.1.0-9_i386.deb

O, se si è appassionati dell'esecuzione attraverso GUI, si può andare al sito http://www.nomachine.com/download-client-linux.php , cercare "NX Client DEB per Linux", fare click sulla freccia verde, e poi click sul bottone "Download package".

Lanciare il client usando il comando

  /usr/NX/bin/nxclient

e configurarlo come descritto nella Sezione 2.

Notare che il taglia-e-incolla funziona propriamente tra l'ambiente client nx e il desktop del client, così è un modo di lavorare più pulito che quello utilizzando il visualizzatore VNC per il controllo remoto della propria Linux box ospitata.

Capire gli aspetti di sicurezza del server NX

La chiave OpenSSH è usata soltanto per avere accesso al server NX il quale viene eseguito come una "shell" dell'utente "nx". E' il server NX che esegue l'effettiva autenticazione PAM usando l'username e la password forniti.

Il file client.id_dsa.key è in realtà un livello aggiuntivo di precauzione, il quale rende sicuro l'accesso alla "shell" dell'utente "nx", es. per il server NX stesso, in caso che il server NX abbia dei buchi nella sicurezza nei suoi livelli di autenticazione PAM.

Questo è il motivo per cui client.id_dsa.key non è di solito ulteriormente assicurato con una password; comunque, se si ha familiarità con 'uso di 'ssh-agent', si può pensare che possa valer la pena di aggiungere una password a client.id_dsa.key .

Talkback: Discutete questo articolo con "The Answer Gang"


Bio picture Ho studiato Ingegneria all'Università di Liege per un anno, poi al Trinity College Dublin per i quattro successivi (e dove ho voluto dare particolare attenzione a letture sul networking). Sono sempre stato incuriosito circa l'audio e il video sui computer, e Linux è stato veramente una piattaforma divertente per imparare circa questi argomenti.

Copyright © 2007, Peter Knaggs. Released under the Open Publication License unless otherwise noted in the body of the article. Linux Gazette is not produced, sponsored, or endorsed by its prior host, SSC, Inc.

Pubblicato nel numero 135 del Linux Gazette, Febbraio 2007