FreeNX Server HOWTO
aus openSUSE, der freien Wissensdatenbank
Inhaltsverzeichnis |
Über NX
NX bezeichnet ein Protokoll für Terminal Server und Remote Access Anwendungen. Mit Hilfe dieses Protokolls können X11 Sessions mit entfernten Hosts (oder "nodes", in der NX Terminologie) über ein Netzwerk aufgebaut werden. Die NX Technologie erfreut sich zunehmender Beliebtheit, da sie als schnell (besonders im Vergleich mit VNC basierten Lösungen) und sicher gilt.
Die Sicherheit verdankt NX weitgehend der Tatsache, das zum Auszutausch von Daten das SSH Protokoll und Public Key Kryptographie zum Zweck der Authentifizierung verwendet wird. Die Bedienbarkeit entfernter Hosts über einen NX Desktop profitiert in hohem Maß von Kompression und Caching des X Protokolls. Für den Zugriff auf einen NX Terminal Server können dadurch auch Verbindungen mit nur niedriger Bitrate (beispielsweise über ein Modem) ausreichen.
Dieses How To beschreibt, wie FreeNX als Terminal Server eingerichtet und von einem passenden Client Verbindungen aufgebaut werden können.
Historie
Das NX Protokoll wurde ursprünglich von NoMachine, einem italienischen Unternehmen entwickelt und wesentliche Teile vor einigen Jahren unter der GPL veröffentlicht. Mit Hilfe der offengelegten Bibliotheken hat Kurt Pfeifle - ein KDE Entwickler - FreeNX implementiert. Das Unternehmen NoMachine verkauft nach wie vor Implementierungen der Server Komponente des NX Protokolls und stellt darüber hinaus eigene Clients kostenlos bereit. Frei zur Verfügung stehen ausserdem unter der GPL implementierte, quelloffene Software wie der FreeNX Server und der KNX Client für KDE.
Einrichten des FreeNX Servers
Zur Installation der FreeNX Serverkomponente steht für aktuelle Versionen wie SUSE Linux 10.x im Online Repository oder auf den verfügbaren CD Images ein RPM-Paket bereit. Dies kann mit Hilfe von YaST oder mittels RPM installiert werden. Aktuell ist zum Zeitpunkt der Erstellung dieses How-Tos das Package FreeNX in der Version 0.4.4-15. Um auf diesen FreeNX-Server dann lokal oder über ein Netzwerk zuzugreifen, bedarf es noch einer Client Software. Entweder man verwendet den kostenlosen NX Client von NoMachine (www.nomachine.com/download), oder die Open Source Software KNX, den Standard KDE NX Client. Dieser steht ebenfalls in den SUSE Repositories zur Verfügung.
Nachdem der Server und ein Client per RPM beziehungsweise YaST installiert wurde, ist die Konfiguration zur Nutzung denkbar einfach.
1) Um sich zu vergewissern, dass tatsächlich die richtige Server Software installiert wurden, kann man als Root User die lokale RPM Datenbank mit folgendem Kommando abfragen:
linux:/ # rpm -q FreeNX FreeNX-0.4.4-4
Sollte auf die RPM Abfrage hin kein Package Name ausgegeben werden, ist das Package noch nicht installiert. Wenn wir im Beispiel "FreeNX-0.4.4-4" angegeben wird, sind schon alle Vorbedingungen für die Konfiguration des installierten Servers erfüllt.
2) Zur Konfiguration wird das (mitinstallierte) Programm nxsetup genutzt.
linux:/ # nxsetup --install --setup-nomachine-key --clean
Die Optionen bedeuten im Folgenden:
--install Installiert die für den Betrieb der Server Software notwendigen Dateien und richtet einen lokalen Benutzern Account für NX ein.
--setup-nomachine-key Diese Option ermöglicht den Aufbau einer verschlüsselten Verbindung mit einem bereits vorhandenen, mitgelieferten und dem Nomachine NX-Client bereits bekannten, SSH-Schlüssel. Dies bedeutet weniger Sicherheit, erleichtert jedoch die Konfiguration des Clients. Um einen neuen Schlüssel zu generieren und zu verteilen, sollte man sich zunächst mit grundlegenden Zusammenhängen der Public-Key Kryptographie vertraut machen.
--clean Vor der Installation werden eventuell bereits vorhandene Konfigurations- dateien entfernt.
Mittels des Programms 'nxserver' kann neben der Konfigurationn des NX-Servers auch dessen Status Status abgefragt werden:
linux:/ # nxserver --status NX> 100 NXSERVER - Version 1.4.0-44 OS (GPL) NX> 110 NX Server is running NX> 999 Bye
Für den nxserver müssen die lokalen Benutzerkonten konfiguriert werden, welche sich über einen Client (wie z.B. KNX) anmelden können. Ebenso können für diese Anwender Passwörtern vergeben werden.
linux:/ # nxserver --adduser <Benutzername> linux:/ # nxserver --passwd <Benutzername>
Der NX Server wird in der Nomachine-Terminologie als Node bezeichnet. Weitere Möglichkeit zu dessen Konfiguration bietet die Konfigurationsdatei /etc/nxserver/node.conf
3) Die Funktion des NX Servers kann nun mit einem lokal installierten Client getestet werden. Im Beispiel wird der KDE Client KNX genutzt.
Screenshot des NX Clients KNX und seines Anmeldungsdialogs:
Nach dem Starten von KNX bietet dieser Client die Möglichkeit, unter "Connection Settings" Konfigurationen für NX Sessions anzulegen. Solch eine gespeicherte Konfigruation kann anschließend unter "Connection" ausgewählt werden. Nun muss nur noch unter "Login" ein für den Host des NX Server gültiger Benutzername und das dazu passende Passwort angegeben werden, um sich mittels Klick auf "Connect" zu verbinden.
Screenshot einer lokalen NX Session mit KNX und FreeNX:
Firewall und notwendige Ports
Soweit die Inbetriebname des FreeNX Servers. Um nun über ein Netzwerk auf den NX Host zuzugreifen, kann es sein, das noch entsprechende Einstellungen an der verwendeten Firewall vorgenommen werden müssen.
Sollen NX Clients über SSH authentifiziert werden, muss die Firewall (des NX Servers) SSH Verbindungen über den für SSH konfigurierten Port (üblicherweise 22) in beide Richtungen zulassen. Ausserdem muss für eine Verbindung am NX Server per Default der Port 5000 in eingehender Richtung offen sein.



