Benutzer-Werkzeuge

Webseiten-Werkzeuge


tachtler:nx_freenx

NX /FreeNX

FreeNX ist eine neue und erstaunliche Möglichkeit, Remote auf einen entfernten Bildschirm zuzugreifen. Die Haupt-Bibliotheken von FreeNX stammen von der Firma NoMachine und wurden unter der GPL-Lizenz veröffentlicht. FreeNX ist eine GPL Implementation von NX Server und NX Client Komponenten.

Eine Übertragung eines Remote-Bildschirms kann dank einer hohen Kompression auch mit einer geringen Bandbreite an Internetanbindung (56k Modem) realisiert werden.

Installation Server

Ab hier werden root-Rechte zur Ausführung der nachfolgenden Befehle benötigt. Um root zu werden geben Sie bitte folgenden Befehl ein:

$ su -
Password: 

Mit nachfolgenden Befehl werden die notwendigen Komponenten aus den Standard-Repository's von CentOS - extras installiert:

# yum install nx freenx
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package freenx.x86_64 0:0.7.3-8.el6.centos will be installed
--> Processing Dependency: xorg-x11-apps for package: freenx-0.7.3-8.el6.centos.x86_64
--> Processing Dependency: /usr/bin/expect for package: freenx-0.7.3-8.el6.centos.x86_64
--> Processing Dependency: expect for package: freenx-0.7.3-8.el6.centos.x86_64
--> Processing Dependency: nc for package: freenx-0.7.3-8.el6.centos.x86_64
---> Package nx.x86_64 0:3.5.0-1.el6.centos will be installed
--> Processing Dependency: libXpm.so.4()(64bit) for package: nx-3.5.0-1.el6.centos.x86_64
--> Running transaction check
---> Package expect.x86_64 0:5.44.1.15-2.el6 will be installed
--> Processing Dependency: libtcl8.5.so()(64bit) for package: expect-5.44.1.15-2.el6.x86_64
---> Package libXpm.x86_64 0:3.5.8-2.el6 will be installed
---> Package nc.x86_64 0:1.84-22.el6 will be installed
---> Package xorg-x11-apps.x86_64 0:7.4-10.el6 will be installed
--> Processing Dependency: libXaw.so.7()(64bit) for package: xorg-x11-apps-7.4-10.el6.x86_64
--> Running transaction check
---> Package libXaw.x86_64 0:1.0.6-4.1.el6 will be installed
---> Package tcl.x86_64 1:8.5.7-6.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch         Version                    Repository    Size
================================================================================
Installing:
 freenx              x86_64       0.7.3-8.el6.centos         extras        94 k
 nx                  x86_64       3.5.0-1.el6.centos         extras       2.7 M
Installing for dependencies:
 expect              x86_64       5.44.1.15-2.el6            base         256 k
 libXaw              x86_64       1.0.6-4.1.el6              base         167 k
 libXpm              x86_64       3.5.8-2.el6                base          59 k
 nc                  x86_64       1.84-22.el6                base          57 k
 tcl                 x86_64       1:8.5.7-6.el6              base         1.9 M
 xorg-x11-apps       x86_64       7.4-10.el6                 base         296 k

Transaction Summary
================================================================================
Install       8 Package(s)

Total download size: 5.5 M
Installed size: 14 M
Is this ok [y/N]: y
Downloading Packages:
(1/8): expect-5.44.1.15-2.el6.x86_64.rpm                 | 256 kB     00:00
(2/8): freenx-0.7.3-8.el6.centos.x86_64.rpm              |  94 kB     00:00
(3/8): libXaw-1.0.6-4.1.el6.x86_64.rpm                   | 167 kB     00:00
(4/8): libXpm-3.5.8-2.el6.x86_64.rpm                     |  59 kB     00:00
(5/8): nc-1.84-22.el6.x86_64.rpm                         |  57 kB     00:00
(6/8): nx-3.5.0-1.el6.centos.x86_64.rpm                  | 2.7 MB     00:00
(7/8): tcl-8.5.7-6.el6.x86_64.rpm                        | 1.9 MB     00:00
(8/8): xorg-x11-apps-7.4-10.el6.x86_64.rpm               | 296 kB     00:00
--------------------------------------------------------------------------------
Total                                           9.9 MB/s | 5.5 MB     00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : libXpm-3.5.8-2.el6.x86_64                                    1/8
  Installing : libXaw-1.0.6-4.1.el6.x86_64                                  2/8
  Installing : xorg-x11-apps-7.4-10.el6.x86_64                              3/8
  Installing : nx-3.5.0-1.el6.centos.x86_64                                 4/8
  Installing : nc-1.84-22.el6.x86_64                                        5/8
  Installing : 1:tcl-8.5.7-6.el6.x86_64                                     6/8
  Installing : expect-5.44.1.15-2.el6.x86_64                                7/8
  Installing : freenx-0.7.3-8.el6.centos.x86_64                             8/8
Stopping sshd: [  OK  ]
Starting sshd: [  OK  ]
Starting freenx-server:  [  OK  ]


Installed:
  freenx.x86_64 0:0.7.3-8.el6.centos       nx.x86_64 0:3.5.0-1.el6.centos

Dependency Installed:
  expect.x86_64 0:5.44.1.15-2.el6       libXaw.x86_64 0:1.0.6-4.1.el6
  libXpm.x86_64 0:3.5.8-2.el6           nc.x86_64 0:1.84-22.el6
  tcl.x86_64 1:8.5.7-6.el6              xorg-x11-apps.x86_64 0:7.4-10.el6

Complete!

Folgender Benutzer wurde ebenfalls angelegt, was mit folgende Befehl überprüft werden kann:

# cat /etc/passwd | grep nx
nx:x:495:490::/var/lib/nxserver/home:/usr/bin/nxserver
Desweiteren wurden auch folgende Gruppen angelegt, was mit folgendem Befehl überprüft werden kann:
# cat /etc/group | grep nx
nx:x:490:

Um das Starten von FreeNX Server auch nach einem System-(re)-start auch in Zukunft dauerhaft zu realisieren, kann folgender Befehl genutzt werden. Hier wird xxx zu den Start-Scripten der einzelnen Runlevel des Betriebssystem hinzugefügt:

# chkconfig freenx-server on

Ein Überprüfung, ob der FreeNX Server in den einzelnen Runlevel des Betriebssystems bei einem system-(re)-start mit gestartet wird kann mit folgendem Befehl abgefragt werden:

# chkconfig --list | grep freenx-server 
freenx-server   0:off   1:off   2:on    3:on    4:on    5:on    6:off

Abschließend wird der FreeNX Server über nachfolgenden Befehl gestartet:

# service freenx-server start
Starting freenx-server:                                    [  OK  ]

:!: WICHTIG - Evtl. ist das Benutzerkonto nx gesperrt (locked) !!!

Falls dies der Fall sein sollte, sind nachfolgende Konfigurationen des Benutzers

  • nx

erforderlich:

Zuerst kann mit nachfolgendem Befehl festgestellt werden, ob der Benutzer tatsächlich gesperrt ist:

# passwd -S nx
nx LK 2012-03-08 0 99999 7 -1 (Password locked.)

Danach können nachfolgende Befehle dazu genutzt werden, den Benutzer zu entsperren:

# usermod -U nx
und
# passwd -u nx
Unlocking password for user nx.
passwd: Warning: unlocked password would be empty.
passwd: Unsafe operation (use -f to force)

Abschließend MUSS noch ein Passwort, für den Benutzer vergeben werden:

# passwd nx
Changing password for user nx.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

Konfiguration Server

Mit nachfolgendem Befehl wird aus einer Beispiel-Konfigurationsdatei im Konfigurationsverzeichnis /etc/nxserver des FreeNX Servers die Konfigurationsdatei /etc/nxserver/node.conf kopiert:

# cp /etc/nxserver/node.conf.sample /etc/nxserver/node.conf

:!: WICHTIG - Führen Sie evtl. Anpassungen der Konfiguration durch z.B. sshd-Port ungleich 22 usw.!

Abschließend muss noch die Konfigurationsdatei /etc/nxserver/node.conf, welche erst neu kopiert wurde wie folgt angepasst werden (nur relevanter Ausschnitt):

Vorher:

...
# This adds the passdb to the possible authentication methods
# ENABLE_PASSDB_AUTHENTICATION="0"
...
Nachher:
...
# This adds the passdb to the possible authentication methods
ENABLE_PASSDB_AUTHENTICATION="1"
...

Nachfolgend ist es erforderlich im Verzeichnis /var/lib/nxserver/home/.ssh/ die Datei authorized_keys2 mit nachfolgendem Befehl zu kopieren:

# cp -a /var/lib/nxserver/home/.ssh/authorized_keys2 /var/lib/nxserver/home/.ssh/authorized_keys

Als nächsten Schritt ist ein Neustart des Servers erforderlich, welches mit nachfolgendem Befehl realisiert werden kann:

# service freenx-server restart

Anschließend ist in der Konfigurationsdatei des SSH-Daemons /etc/ssh/sshd_conf folgende Anpassung durchzuführen (nur relevanter Ausschnitt):

Vorher:

...
AllowUsers jolanda
...
Nachher:
...
AllowUsers jolanda nx
...

Um diese Änderung wirksam werden zu lassen, ist es erforderlich auch den SSH-Daemons mir nachfolgendem Befehl durchzustarten:

# service sshd restart

Konfiguration Server Logging

Um das Logging des FreeNX Servers zu aktivieren, sind folgende Änderungen in der Konfigurationsdatei /etc/nxserver/node.conf erforderlich (nur relevanter Ausschnitt)):

...
# This directives controls the verbosity of the server-wide log.
# 0: No Logging
# 1: Errors
# 2: Warnings
# 3: Important information
# 4: Server - Client communication
# 5: Information
# 6: Debugging information
# 7: stderror of some applications
# Tachtler
#defautl: #NX_LOG_LEVEL=0
NX_LOG_LEVEL=3
 
# By setting this to 0 the nxserver might be a bit faster, but passwords can be found in the log files.
# Tachtler
# default: #NX_LOG_SECURE=1
NX_LOG_SECURE=1
 
# Before turning logging on, please make sure that NX_LOGFILE is
# writeable for the "nx" user
# Tachtler
#default: #NX_LOGFILE=/var/log/nxserver.log
NX_LOGFILE=/var/log/nx/nxserver.log
...

:!: WICHTIG - Die LOG-Datei /var/log/nx/nxserver.log muss VOR der ersten Verwendung noch angelegt UND mit Schreibrechten für den Benutzer nx versehen werden!

Dies kann mit nachfolgenden Befehlen realisiert werden. Anlage einer leeren LOG-Datei mit folgendem Befehl:

# touch /var/log/nx/nxserver.log
Schreibrechte für den Benutzer nx mit folgendem Befehl setzen:
# chown nx.root /var/log/nx/nxserver.log
Besitzrechte für den Benutzer nx mit folgendem Befehl setzen:
# chmod 600 /var/log/nx/nxserver.log

Zum Abschluß ist ein Neustart des FreeNX Servers mit nachfolgendem Befehl erforderlich:

# service freenx-server restart
Restarting freenx-server:
Stopping freenx-server:                                    [  OK  ]

Starting freenx-server:                                    [  OK  ]

Herunterladen Client für Linux

Der Client, um auf den FreeNX Server zugreifen zu können ist nicht Bestandteil der CentOS-Repository's. Dieser kann von nachfolgender Seite heruntergeladen werden:

Installation Client für Linux

Mit nachfolgenden Befehl werden die notwendigen Komponenten aus dem Verzeichnis und dem Namen des Installations-RPM-Paketes hier z.B. /tmp/nxclient-3.3.0-6.i386.rpm installiert:

# yum localinstall --nogpgcheck /tmp/nxclient-3.3.0-6.i386.rpm 
Loading "fastestmirror" plugin
Setting up Local Package Process
Loading mirror speeds from cached hostfile
 * update: linuxinstall
 * base: linuxinstall
 * addons: linuxinstall
 * extras: linuxinstall
Examining /tmp/nxclient-3.3.0-6.i386.rpm: nxclient - 3.3.0-6.i386
Marking /tmp/nxclient-3.3.0-6.i386.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package nxclient.i386 0:3.3.0-6 set to be updated
--> Finished Dependency Resolution

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size 
=============================================================================
Installing:
 nxclient                i386       3.3.0-6          /tmp/nxclient-3.3.0-6.i386.rpm  9.7 M

Transaction Summary
=============================================================================
Install      1 Package(s)         
Update       0 Package(s)         
Remove       0 Package(s)         

Total download size: 9.7 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: nxclient                     ######################### [1/1] 
Showing file: /usr/NX/share/documents/client/cups-info

 CUPS Printing Backend

 The NX Client set-up procedure detected that your "IPP CUPS" printing
 backend doesn't allow printing from the NX session. In order to have
 printing support in your NX system, you need to set proper permissions
 on the IPP backend. Please execute:

   chmod 755 /usr/lib/cups/backend/ipp

Installed: nxclient.i386 0:3.3.0-6
Complete!

Installation Client für Windows

Nach der erfolgreichen Installation des Windows-Clients (via Doppelklick :-D), müssen noch ein paar Anpassungen vorgenommen werden.

Konfiguration der Client's

:!: WICHTIG - Der hier neu angelegte Benutzer MUSS ein lokales Benutzerkonto besitzen, also in /etc/passwd enthalten sein!!!

Desweiteren ist es erforderlich einen Benutzer mit einem lokalen Benutzerkonto im System, mit dem und auf dessen Desktop zugegriffen werden soll, ebenfalls dem nxserver bekannt zugeben, was mit nachfolgenden Befehlen durchgeführt werden kann:

# nxserver --adduser jolanda
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: not detected)
NX> 1000 NXNODE - Version 3.2.0-73 OS (GPL, using backend: not detected)
NX> 716 Public key added to: /home/jolanda/.ssh/authorized_keys2
NX> 1001 Bye.
NX> 999 Bye
und
# nxserver --passwd jolanda
NX> 100 NXSERVER - Version 3.2.0-73 OS (GPL, using backend: not detected)
New password: 
Password changed.
NX> 999 Bye

Der Inhalt der Datei /home/jolanda/.ssh/authorized_keys2 MUSS anschließend an eine bestehende Datei mit dem Namen /home/jolanda/.ssh/authorized_keys angehängt werden, oder diese einfach kopiert werden, wie beide nachfolgenden Befehle zeigen:

Kopieren:

# cp -a /home/jolanda/.ssh/authorized_keys2 /home/jolanda/.ssh/authorized_keys

– oder –

Anhängen

# cat /home/jolanda/.ssh/authorized_keys2 >> /home/jolanda/.ssh/authorized_keys

Unter Linux muss folgender private Schlüssel aus dem Verzeichnis /etc/nxserver/ mit dem Namen client.id_dsa.key in das Installationsverzeichnis des NX Clients for Linux kopiert werden, was nachfolgendes Verzeichnis wäre:

  • /usr/NX/share/keys/client.id_dsa.key

Unter Windows muss folgender private Schlüssel aus dem Verzeichnis /etc/nxserver/ mit dem Namen client.id_dsa.key in das Installationsverzeichnis des NX Clients for Windows kopiert werden, was nachfolgendes Verzeichnis wäre:

  • C:\Program Files\NX Client for Windows\share\keys\client.id_dsa.key

Konfiguration der Client's grafische Oberfläche

Die Konfiguration der Clients, wird hier ausnahmsweise anhand einer Konfiguration unter Windows©® Vista™ gezeigt:

1. Start des NX Connection Wizard

NX Connection Wizard - Schritt 1

2. Hier sind die Angaben wie Sessionname, Host, Port und die Bandbreite einstellbar.

NX Connection Wizard - Schritt 2

3. Hier wird festgelegt welcher X-Window-Manager auf dem Server läuft (hier GNOME) und welche Auflösung im Anzeigefenster dargestellt werden soll.

NX Connection Wizard - Schritt 3

4. Hier kann (muss aber nicht) ein Desktop-Icon erstellt werden, jedoch was viel wichtiger ist, hier können die Erweiterten Einstellungsmöglichkeiten im nächsten Bildschirm zur Anzeige gebracht werden…

NX Connection Wizard - Schritt 4

5. Auf diesem Reiter ist der Button - Key, auf dessen Seite mit einem Klick der linken Maustaste gewechselt werden soll.

General

6. :!: WICHTIG - Der vorhandene Key ist UNWICHTIG, es muss ein anderer Key wie nachfolgend dargestellt importiert werden!

General - Key

7. :!: WICHTIG - Folgender Key muss aus dem Verzeichnis C:\Program Files\NX Client for Windows\share\keys\client.id_dsa.key importiert werden!

General - Key - Import

8. Nach Eingabe des lokalen Benutzers unter Linux hier jolanda und dem dazugehörigen Passwort…

NX

9. …sollte dann eine Verbindung aufgebaut werden können!

Connected

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
tachtler/nx_freenx.txt · Zuletzt geändert: 2012/08/29 11:40 von klaus