Linux als NX-Terminal-Server einrichten [ACHTUNG: Diese Anleitung ist noch nicht fertiggestellt!]
Diese Anleitung beschreibt die Einrichtung eines Linux-Terminal-Servers mit NX-Technologie. Als NX-Server dient hier FreeNX, eine Opensource-Alternative zum kommerziellen NX-Server von NoMachine.
Ziel ist es einen Server zur Verfügung zu stellen, auf dem sich jeder mit seinem normalen ActiveDirectory-Account anmelden kann und eine grafische Linux-Desktop-Sitzung bekommt.
Voraussetzung ist dafür, dass der Server selbst schon als Client ins ActiveDirectory eingebunden ist.
Hintergrundwissen
NX ist ein von NoMachine entworfenes Protokoll zur effizienten Übertragung einer grafischen X-Sitzung über Netzwerkverbindungen mit hoher Latenz. Selbst über eine Modem-Verdindung ist damit die Übertragung grafischer Oberflächen noch verhältnismäßig gut nutzbar.
FreeNX bietet die Möglichkeit den Server im Usermode laufen zu lassen. Dabei loggt sich jeder Nutzer (fast) ganz normal mittels ssh ein und startet dann den nxserver selbst. Im Gegensatz dazu loggt sich im normalen Modus stets ein spezieller Nutzer "nx" auf dem Server ein und erst später wird mittels su oder ssh in den eigentlich gewählten Nutzeraccount gewechselt. Dieses Vorgehen ist genau das, das auch der NX-Server von NoMachine verwendet. Damit sind zwar einige Zusatzfunktionen möglich, die im Usermode nicht funktionieren, jedoch ist dieses Vorgehen aus sicherheitstechnischer Sicht problematisch.
Detailliertere Erläuterungen zum Usermode in FreeNX finden sich unter anderem in der FreeNX 7.3.0 Freigabe-Mitteilung und in einem Blog-Eintrag von Felipe Alfaro Solana.
Um den Usermode mit dem NX-Client von NoMachine nutzen zu können muss der darin enthaltene SSH-Client nxssh umbenannt und dann durch einen Wrapper aufgerufen werden. Eine detaillierte Anleitung zur Einrichtung des NX-Clients befindet sich unter: NX-Client einrichten.
Installierte Software
Als Grundlage wurde ein Debian Lenny ohne zusätzlich Tasks genutzt. Die für einen Einsatz als vollwertiger Deskop benötigten Anwendungen wurden nachträglich zum Teil aus zusätzlichen Repositories nachinstalliert. Dabei sollten jedoch für einen Server unnötige Programme Dienste, wie z.B. GDM oder Avahi nicht mit installiert werden.
zusätzliche Paketquellen einrichten
Da einige gewünschte Programme im normalen (stable) Debian Lenny entweder nicht, oder nur in einer zu alten Version vorhanden sind werden, zunächst zusätzliche Paketquellen eingerichtet. Wir werden Lenny-Backports und Debian-Multimedia verwenden.
/etc/apt/sources.list sieht dann wie folgt aus:
deb ftp://ftp.rrzn.uni-hannover.de/debian/debian/ lenny main non-free contrib
deb-src ftp://ftp.rrzn.uni-hannover.de/debian/debian/ lenny main non-free contrib
deb security.debian.org lenny/updates main non-free contrib
deb-src security.debian.org lenny/updates main non-free contrib
deb volatile.debian.org/debian-volatile lenny/volatile main non-free contrib
deb-src volatile.debian.org/debian-volatile lenny/volatile main non-free contrib
# Debian Backports
deb www.backports.org/debian lenny-backports main contrib non-free
deb-src www.backports.org/debian lenny-backports main contrib non-free
# Debian Multimedia
deb ftp://ftp.uni-kl.de/debian-multimedia/ lenny main
deb-src ftp://ftp.uni-kl.de/debian-multimedia/ lenny main
Nach Der Aktualisierung der Paketlisten werden die Schlüsselringe für Backports und Multimedia installiert (diese sollte man natürlich überprüfen):
aptitude update
aptitude install debian-backports-keyring
aptitude install debian-multimedia-keyring
Zuletzt wird nun in /etc/apt/preferences noch die Gewichtung (Präferenzen) für die Repositories festgelegt: Debian stable = Debian volatile > Backports.org > Debian-Multimedia > Alles Andere. (Den letzten Zeilenumbruch nicht vergessen, sonst hat apt eventuell Probleme!)
/etc/apt/preferences
Package: *
Pin: release o=Debian,a=stable
Pin-Priority: 900
Package: *
Pin: release o=volatile.debian.org,a=stable
Pin-Priority: 900
Package: *
Pin: release o=Backports.org archive,a=lenny-backports
Pin-Priority: 800
Package: *
Pin: release o=Unofficial Multimedia Packages,a=stable
Pin-Priority: 700
Package: *
Pin: release o=Debian
Pin-Priority: -1
Damit wird aus Backports und Multimedia nur dann etwas installiert, wenn es explizit angefordert wurde (z.B. aptitude -t lenny-backports), oder aber nicht im Standard-Repository vorhanden ist. Gleichzeitig kann kein Paket aus Multimedia eines aus Backports oder Standard automatisch ersetzen, auch wenn es eine höhere Version hat und ebenso kann keines aus Backports eines aus Standard automatisch ersetzen. Eine sehr ausführliche Erklärung zum APT-Pinning gibt es auf dieser Seite von Roderick Schertler.
Installation der zusätzlichen Software
Aus dem normalen stable Lenny
aptitude -VD -R install xfce4 xfce4-goodies xfce4-mixer+M xfce4-terminal+M xfprint4+M xfwm4-themes+M xbase-clients+M desktop-base+M gamin+M librsvg2-common+M menu
# xfce mit einigen Zusatzpaketen.
# xfce-desktop zieht zuviel unerwünschtes nach.
# Das meiste soll aber trotzdem als "automatisch installiert"
# markiert werden.
aptitude -VD -R install sun-java6-jre gsfonts-x11+M libxtst6+M libasound2+M
# ohne Recommends, da das sonst libnss-mdns und damit
# avahi-daemon hinterherzieht.
# aber trotzdem gsfonts-x11 libxtst6 libasound2 als automatisch
# installiert markieren
aptitude -VD install myspell-de-de myspell-en-us aspell-de
aptitude -VD install iceweasel iceweasel-l10n-de mozilla-firefox-adblock mozilla-noscript iceweasel-scrapbook
aptitude -VD install icedove icedove-l10n-de
aptitude -VD install flashplayer-mozilla
aptitude -VD install graphicsmagick
aptitude -VD -R install gimp gimp-gnomevfs+M gimp-libcurl+M gimp-python+M dbus-x11+M
aptitude -VD -R install scribus libpaper-utils+M psfontmgr+M libgl1-mesa-glx+M libgl1-mesa-swx11+M libglu1-mesa+M
aptitude -VD -R install inkscape graphicsmagick-imagemagick-compat+M libwmf-bin+M perlmagick+M pstoedit+M
aptitude -r install texlive texlive-doc-de texlive-lang-german texlive-fonts-extra texlive-font-utils texlive-math-extra texlive-pictures texlive-latex-extra
# Standard texlive-LaTeX mit Recommends und einigen zusätzlichen Paketen
aptitude -rVD install ttf-mscorefonts-installer msttcorefonts
# MS-TrueType Fonts
aptitude -VD install rdesktop
Um etwas aus den Nicht-Lenny-Debian-Repositories zu installieren, muss das Repository extra ausgewählt werden:
Aus Lenny-Backports
aptitude -VD -r -t lenny-backports install german-desktop openoffice.org openoffice.org-gtk
#aptitude -VD -r -t lenny-backports install openoffice.org openoffice.org-gtk
# mit Recommends, damit man nicht alles einzeln installieren muss
aptitude -VD -R -t lenny-backports install pidgin pidgin-otr libpurple-bin+M
Aus Multimedia
aptitude -VD -r install acroread acroread-l10n-de acroread-doc-de acroread-dictionary-de
# Dies gibt's nicht im stable, deshalb muss man Multimedia
# nicht extra angeben.
Einrichtung von FreeNX
FreeNX bietet die Möglichkeit den NX-Server im Usermode laufen zu lassen. Dafür gibt es sogar schon extra ein speziell angepasstes Paket: NX4U.tar.gz. Dieses wird als /usr/local/NX4U entpackt. Dort muss nun noch im Unterverzeichnis etc/ die Konfiguration so angepasst werden, dass nur Usermode zulässig ist:
/usr/local/NX4/etc/node.conf
ENABLE_USERMODE_AUTHENTICATION="1"
ENABLE_SSH_AUTHENTICATION="0"
ENABLE_SU_AUTHENTICATION="0"
ENABLE_USER_DB="0"
ENABLE_FORCE_ENCRYPTION="1"
Zusätzlich wird noch ein Symlink angelegt, so dass eine XFCE-Sitzung gestartet wird, wenn der NX-Client eine KDE-Sitzung anfordert:
cd /usr/local/bin
ln -s /usr/bin/startxfce4 startkde
Konfiguration des SSH-Dienstes
(folgt)
Kein Support
Für diesen Tipp / die Software bzw. Skripte leistet das RRZN keinen Support.

