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.
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:
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 trafficE' 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:
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.
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"
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.