15.2. Erweiterte FreeNX-Konfiguration

Die folgenden Abschnitte stellen einige erweiterte Funktionen vor, die hauptsächlich in komplexeren NX-Szenarien benötigt werden.

15.2.1. Konfigurieren von SSH-Authentifizierung mit Client-Schlüsseln

Die in Abschnitt 15.1, „Erste Schritte in NX“ konfigurierte Authentifizierung verlässt sich einzig auf die Angabe von Benutzername und Passwort. Für eine sicherere Authentifizierung lässt sich NX so konfigurieren, dass es ein Paar von SSH-Schlüsseln generiert. Der Client-Schlüssel wird dann vom Server-Rechner an einen beliebigen Client kopiert, dem eine Verbindung zum NX-Server erlaubt sein soll. Clients, die diesen Schlüssel nicht angeben, können beim NX-Server nicht authentifiziert werden. Diese Funktion wird nur für die Kombination FreeNX-Server/knx-Client unterstützt.

Gehen Sie wie folgt vor, um den NX-Server für die Verwendung dieser Authentifizierungsmethode zu konfigurieren und das geeignete Schlüsselpaar zu generieren:

  1. Melden Sie sich als „root“ am Server-Rechner an.

  2. Öffnen Sie die Server-Konfigurationsdatei /etc/nxserver/node.conf und stellen Sie sicher, dass ENABLE_SSH_AUTHENTICATION auf 1 eingestellt ist. (Das sollte der Standard sein.)

  3. Installieren Sie den Server mit folgendem Befehl:

    nxsetup --install --clean --purge
  4. Ändern Sie die Zugriffsberechtigungen auf /var/lib/nxserver/home/.ssh/authorized_keys2:

    chmod 640 /var/lib/nxserver/home/.ssh/authorized_keys2
    
  5. Melden Sie sich ab.

Gehen Sie wie folgt vor, um knx zur Verwendung dieses Schlüssels zu konfigurieren:

  1. Melden Sie sich am Server-Rechner als „root“ an.

  2. Kopieren Sie die Schlüsseldatei an den Ort auf dem Client-Rechner, an dem knx sie braucht, und ersetzen Sie client durch die Adresse des Clients.

    scp /var/lib/nxserver/home/.ssh/client.id_dsa.key client:/usr/share/knx/
    
  3. Melden Sie sich als „root“ am Client-Rechner an.

  4. Passen Sie die Zugriffsberechtigungen wie folgt an:

    chmod 644 /usr/share/knx/client.id_dsa.key
    
  5. Melden Sie sich ab.

15.2.2. Konfigurieren der PAM-Authentifizierung

Standardmäßig gestattet FreeNX jedem Benutzer, eine NX-Sitzung zu öffnen, vorausgesetzt der Benutzer ist in der Benutzerdatenbank Ihres Servers aufgeführt (lokal oder über LDAP, NIS usw.). Dieses Verhalten wird durch die Variable ENABLE_PAM_AUTHENTICATION in /usr/bin/nxserver auf dem Server umgeschaltet. Der Standardwert lautet hier 1. Wenn Sie ihn auf 0 setzen, wird die von PAM vermittelte Benutzerauthentifizierung (PAM_AUTH) für FreeNX deaktiviert.

Wenn ENABLE_PAM_AUTHENTICATION auf 0 gesetzt ist, müssen Sie Benutzer und Passwörter manuell hinzufügen. Zum Hinzufügen von lokalen NX-Benutzern auf dem Server gehen Sie wie folgt vor:

  1. Melden Sie sich am Server-Rechner als „root“ an.

  2. Stellen Sie sicher, dass jeder Benutzer, den Sie hinzufügen möchten, in der Systemdatenbank der lokalen Benutzer aufgeführt ist. Prüfen Sie dazu den Inhalt von /etc/passwd oder verwenden Sie das YaST-Modul „Benutzerverwaltung“.

  3. Fügen Sie für jeden gewünschten Benutzer den Benutzernamen mit dem Befehl nxserver --adduser hinzu. Fügen Sie dann das Passwort des Benutzers mit nxserver --passwd hinzu.

  4. Starten Sie den Server mit nxserver --restart neu und melden Sie sich ab.

15.2.3. Verwenden von systemweiten und benutzerspezifischen Konfigurationsdateien

Das Verhalten des FreeNX-Servers wird über /etc/node.conf gesteuert. Sie können eine globale NX-Server-Konfiguration ausführen oder den Server mit benutzerspezifischen Konfigurationen betreiben. Das kommt ins Spiel, wenn verschiedene Benutzer NX auf einem Rechner mit anderen Anforderungen ausführen.

Im folgenden Beispiel wird angenommen, dass der Benutzer joe einen automatischen Start von NX mit einer bestimmten Anwendung möchte, sobald er eine NX-Sitzung öffnet. Gehen Sie wie folgt vor, um dieses Verhalten nur für diesen Benutzer festzulegen:

  1. Melden Sie sich als „root“ an.

  2. Wechseln Sie in das Verzeichnis /etc/nxserver:

    cd /etc/nxserver
  3. Speichern Sie eine Kopie der Konfigurationsdatei des NX-Servers (node.conf) unter joe.node.conf im selben Verzeichnis.

  4. Bearbeiten Sie die entsprechenden Parameter (NODE_AUTOSTART und ENABLE_AUTORECONNECT) in joe.node.conf. Weitere Informationen zu diesen Funktionen finden Sie in Abschnitt 15.2.5, „Konfigurieren von automatisch gestarteten Tasks und Exportieren von Konfigurationen“ und Abschnitt 15.2.4, „Aussetzen und Wiederaufnehmen von NX-Sitzungen“.

  5. Installieren Sie den NX-Server neu, um die neue Konfiguration zu aktivieren:

    nxsetup --install --clean --purge --setup-nomachine-key

    Die benutzerspezifische Konfiguration überschreibt die globale Konfiguration.

  6. Melden Sie sich ab.

15.2.4. Aussetzen und Wiederaufnehmen von NX-Sitzungen

Wie bei Sitzungen auf einem mobilen Computer kann NX auch so konfiguriert werden, dass das Aussetzen und Wiederaufnehmen von Benutzersitzungen möglich ist. Eine ausgesetzte Sitzung wird wieder genau in dem Zustand geöffnet, in dem sie verlassen wurde.

Gehen Sie wie folgt vor, um das Aussetzen und Wiederaufnehmen von NX-Sitzungen zu konfigurieren:

  1. Melden Sie sich als „root“ an.

  2. Öffnen Sie die Konfigurationsdatei des Servers, /etc/nxserver/node.conf, und bearbeiten Sie sie wie folgt:

    ENABLE_PASSDB_AUTHENTICATION="0"
    ENABLE_USER_DB="0"
    ENABLE_AUTORECONNECT="1"
    
  3. Speichern und schließen Sie die Konfigurationsdatei und starten Sie den Server mit nxserver --restart neu.

  4. Melden Sie sich ab.

Um eine Sitzung beim Beenden auszusetzen, klicken Sie auf das X in der oberen rechten Ecke Ihres NX-Fensters und wählen Sie Suspend (Aussetzen), um Ihre Sitzung auszusetzen und den Client zu beenden. Bei der erneuten Verbindung werden Sie gefragt, ob Sie die vorherige Sitzung wiederaufnehmen oder eine neue beginnen möchten.

15.2.5. Konfigurieren von automatisch gestarteten Tasks und Exportieren von Konfigurationen

FreeNX bietet eine Autostart-Funktion, mit deren Hilfe Sie bestimmte Tasks bei Start oder Wiederaufnahme einer NX-Sitzung starten können, vorausgesetzt die zugrunde liegende Anwendung unterstützt die Eigenschaften für start (Start) und resume (Wiederaufnahme). Beispielsweise können Sie beim Start von FreeNX automatisch den Desktop aufräumen oder andere automatisch gestartete Aufgaben ausführen. Dies ist besonders nützlich, wenn Sie wieder eine Verbindung zu einer Sitzung aufbauen, selbst von einem anderen NX-Client (auf dem Sie nicht die KDE- oder GNOME-Standardmechanismen nutzen können).

Gehen Sie zur Konfiguration der Autostart-Funktionen wie folgt vor:

  1. Melden Sie sich als „root“ am Server-Rechner an.

  2. Öffnen Sie die Konfigurationsdatei des Servers, /etc/nxserver/node.conf, und ändern Sie den Wert der Variablen NODE_AUTOSTART, indem Sie myprogram durch den Namen des Programms ersetzen, das bei Start oder Wiederaufnahme einer NX-Sitzung ausgeführt werden soll:

    NODE_AUTOSTART=myprogram
         
  3. Speichern und schließen Sie die Konfigurationsdatei.

  4. Starten Sie den Server mit dem Befehl nxserver --restart neu und melden Sie sich ab.

    Das angegebene Programm startet nun bei jedem Start und jeder Wiederaufnahme einer Sitzung.

Sie können die Variablen NX_USERIP und NX_SESSIONID auch exportieren, damit sie in der Umgebung des Benutzers im Zugriff sind. Damit ist es beispielsweise möglich, ein Symbol mit dem generischen Inhalt auf den Desktop zu platzieren und auf einen Samba-Server zuzugreifen, der auf dem Thin-Client des Benutzers läuft. Gehen Sie wie folgt vor, um dem Benutzer den Inhalt einer Diskette im Diskettenlaufwerk des Thin-Clients zur Verfügung zu stellen:

  1. Aktivieren Sie den Export der Variablen NX_USERIP und NX_SESSIONID auf der Serverseite:

    1. Melden Sie sich als „root“ am Server an.

    2. Öffnen Sie die Konfigurationsdatei des Servers, /etc/nxserver/node.conf, und setzen Sie die folgenden Variablen:

      EXPORT_USERIP="1"
      EXPORT_SESSIONID="1"
      
    3. Speichern und schließen Sie die Server-Konfigurationsdatei und starten Sie den Server mit dem Befehl nxserver --restart neu.

    4. Melden Sie sich ab.

  2. Öffnen Sie auf der Client-Seite eine Sitzung, exportieren Sie das Diskettenlaufwerk über SMB und legen Sie ein Symbol auf dem Desktop an:

    1. Exportieren Sie den Inhalt Ihres Diskettenlaufwerks mithilfe Ihres Dateimanagers (Nautilus oder Konqueror) über Samba.

    2. Erstellen Sie die Datei floppy.desktop im Verzeichnis Desktop und geben Sie die folgende Zeile ein:

      Exec=smb://$NX_USERIP/floppy

      Der Server exportiert die IP-Adresse des Thin-Clients und ermöglicht Ihnen, in der NX-Sitzung über das Diskettensymbol auf das Diskettenlaufwerk des Thin-Clients zuzugreifen.

15.2.6. Erstellen einer NX-Serverkette

Mithilfe einer Kette von NX-Servern können Sie Firewalls überqueren und IP-Masquerading durchführen. Ein externer „Gateway“-Server kann verwendet werden, um eingehende Verbindungen an einen internen Server weiterzuleiten, der hinter einer (maskierten) Firewall verborgen ist.

Gehen Sie wie folgt vor, um eine NX-Serverkette zu konfigurieren:

  1. Konfigurieren Sie den internen Server wie in Abschnitt 15.2.1, „Konfigurieren von SSH-Authentifizierung mit Client-Schlüsseln“ beschrieben und verteilen Sie den privaten Schlüssel des Servers (client.id_dsa.key) an /usr/NX/share/ auf dem Gateway.

  2. Gehen Sie am Gateway-Server wie folgt vor:

    1. Melden Sie sich als „root“ an.

    2. Setzen Sie die folgenden Variablen in /etc/nxserver/node.conf und ersetzen Sie myinternalhost durch die IP-Adresse des internen NX-Servers:

      ENABLE_SERVER_FORWARD="1"
      SERVER_FORWARD_HOST="myinternalhost"
      SERVER_FORWARD_KEY="/usr/NX/share/client.id_dsa.key"
    3. Starten Sie den externen Server mit dem Befehl nxserver --restart neu, um die geänderte Konfiguration zuzuweisen, und melden Sie sich ab.

      Jede eingehende Verbindung wird an den internen Server weitergeleitet.

15.2.7. Installieren und Ausführen von FreeNX und NoMachine auf demselben Server

Sie können FreeNX und den kommerziellen NoMachine NX-Server ohne Konflikte auf demselben Rechner ausführen. Die Implementierung erfolgt in FreeNX durch Weiterleiten der Verbindung an NoMachine, das auf demselben Rechner installiert ist.

Gehen Sie zur Aktivierung dieser Funktion wie folgt vor:

  1. Melden Sie sich als „root“ am Server-Rechner an.

  2. Öffnen Sie die Konfigurationsdatei des Servers für FreeNX unter /etc/nxserver/node.conf und setzen Sie die folgende Variable:

    ENABLE_NOMACHINE_FORWARD="1"
  3. Speichern Sie diese Datei und starten Sie den FreeNX-Server mit dem Befehl nserver --restart neu.

  4. Melden Sie sich ab.

Verwenden Sie für die Verbindung zum NoMachine-Server die Standarddaten für Benutzername und Passwort. Stellen Sie für eine Verbindung zum FreeNX-Server dem normalen Benutzernamen die Angabe freenx. voran (zum Beispiel: freenx.joedoe) und verwenden Sie das normale Passwort.