Linux Terminal Server Project (LTSP) konfigurieren

Workshop: Thin Clients im Netzwerk einrichten

26.07.2012 von Thomas Hümmler
Mit dem Linux Terminal Server Project (LTPS) lässt sich ein Server einrichten, auf den beliebig viele Thin Clients per Netzwerk zugreifen können. Die Vorteile: Der Administrator muss nur einen Server verwalten, und die Benutzer arbeiten mit energieeffizienten Rechnern. Wir zeigen, wie Sie ein Thin-Client-Netzwerk per LTSP mit Debian oder Ubuntu einrichten.

Ein Terminal-Server, etwa in Form des Linux Terminal Server Projects, ist für Administratoren eine feine Sache. Denn alle Anwendungen laufen intern auf dem Server. LTSP nutzt dazu die Fähigkeiten des grafischen X-Servers, ein Linux-Programm in die Programmausführung und die Anzeige zu trennen. Die am Server per Netzwerk angeschlossenen Clients benötigen deshalb auch keine Festplatten; sie zeigen im Prinzip nur, was auf dem Server passiert. Alle Daten werden daher auch direkt auf dem Server gespeichert und nicht über das Netzwerk an die einzelnen Clients verteilt. Dementsprechend sollte der Server als Grundvoraussetzung über genügend Systemleistung verfügen.

Dabei ist die Server-CPU gar nicht so wichtig, vielmehr kommt es auf schnelle und ausreichend große Festplatten sowie genügend Arbeitsspeicher an. Wer IDE oder langsame SATA-Platten einsetzt, sollte maximal zehn Clients bedienen. Sind mehr Clients vorgesehen, greift man besser zu schnellen SATA- oder SAS-Festplatten, denn diese sollten mit 20 Clients fertig werden.

Der Arbeitsspeicher des Servers sollte aber möglichst groß sein. Hierbei werden allgemein (Ubuntu-Users-Wiki) 256 MByte für den Server und 128 MB pro Client empfohlen; ein Server für 20 Clients benötige dementsprechend 1 GB Arbeitsspeicher. Realistischer scheinen die Angaben im LTSP-Manual zu sein: 256 MByte plus 192 MByte pro Client - macht insgesamt 4 GByte für 20 Clients. Bei den Festplatten empfiehlt das Manual schnelle SATA-Disks, außerdem ein RAID vom Typ 1 für den schmalen und vom Typ 10 für den größeren Geldbeutel.

Wichtige Hilfe: das 84-seitige Handbuch "Administrator’s Reference ", das Sie von der LTSP-Homepage herunterladen können.

Als Server-CPU für ein Netzwerk mit bis zu 20 Clients ist ein 3-GHz-Prozessor ausreichend, so das Manual. Für größere Netzwerke liefert eine Dual-Core-CPU die erforderliche Performance.

Aufseiten der Clients sind die Anforderungen wesentlich geringer. Hier tun es bereits eine 533-MHz-CPU sowie 256 MByte Arbeitsspeicher - mehr ist hier natürlich in beiden Fällen besser. Wichtig ist, dass die Netzwerkkarte per PXE - beziehungsweise mit Yaboot für Macintosh-PowerPC-Rechner - übers Netzwerk booten kann.

LTSP ist in allen gängigen Linux-Distributionen von CentOS bis Opensuse enthalten. Auch in Debian und Ubuntu ist es dabei. Es gibt sogar zwei Ubuntu-Versionen, mit denen Sie schon während der Installation einen LTSP-Server aufsetzen können: Die eine ist Edubuntu, eine Ubuntu-Distribution für den Einsatz in Schulen. Die andere ist die sogenannte Alternate-Installations-CD. Wer Ubuntu von dieser anstelle der sonst üblichen Desktop-CD installiert, kann sofort eine LTSP-Umgebung aufsetzen, indem er im Installationsbildschirm die Funktionstaste F4 drückt und anschließend "Install an LTSP Server" wählt.

Wer LTSP nachträglich installieren will, ist damit auch schnell durch. Man benötigt lediglich eines der beiden Serverpakete ltsp-server oder ltsp-server-standalone. Das erste Paket erzeugt eine minimale Serverumgebung, das andere eine vollständige. Die Minimalvariante verzichtet auf Openssh- und DHCP-Server und überlässt den Bootstrap der Clients einem externen DHCP-Server.

Schritt 1: Grundinstallation

Doch auch mit einem andernorts vorhandenen DHCP-Server, etwa einer FritzBox, kann man den vollständigen LTSP-Server aufsetzen. Sie benötigen dazu die folgenden Pakete:

ltsp-server-standalone: den LTSP-Server mit Open-SSH- und nbd-server

ltspfsd, ltspfs und ltspfsd-core: ein entferntes Dateisystem, um zum Beispiel USB-Sticks und DVD-Laufwerke an den Thin Clients nutzen zu können

ltsp-manager: ein GUI-Werkzeug, um einen LTSP-Server aufzusetzen, zu modifizieren und zu verwalten (nicht zwingend erforderlich)

ltsp-docs: die Dokumentation für LTSP (nicht zwingend erforderlich)

ldm und ldm-server: den LTSP-Displaymanager und die Serverkomponenten für den LTSP-Displaymanager

tftpd-hpa: das Trivial-File-Transfer-Protokoll TFTP, das dafür sorgt, dass den Thin Clients das entsprechende Bootimage übers Netzwerk angeboten wird

isc-dhcp-server und isc-dhcp-client: den DHCP-Server und -Client des Internet Software Consortiums

Installieren Sie die Pakete mithilfe des Befehls apt-get, also etwa:

sudo apt-get install ltsp-server-standalone

Wenn Sie unter Debian installieren, brauchen Sie den sudo-Befehl nicht voranstellen. Manche Pakete installieren einige der genannten bereits mit, sodass diese Pakete bereits auf dem Server vorhanden sein können. Welche das sind, überprüfen Sie mit dem Befehl dpkg wie folgt::

dpkg -l | grep ltsp

Alle Pakete installiert: Mithilfe des dpkg-Kommandos stellen Sie fest, was vorhanden ist und was noch fehlt.

Der Befehl listet alle Pakete auf, in deren Namen oder Beschreibung die Zeichenfolge "ltsp" auftaucht. Dass die Pakete installiert sind, erkennen Sie an den beiden "ii" zu Anfang einer Zeile. Wichtig: Schreiben Sie "ltsp" und nicht "LTSP", denn grep arbeitet kontextsensitiv mit regulären Ausdrücken und unterscheidet zwischen Groß- und Kleinschreibung.

Sind alle Pakete installiert, wird die LTSP-Netzwerk-Umgebung auf dem Server erzeugt. Dazu starten Sie in einer Konsole den Befehl

sudo ltsp-build-client

Damit erzeugen Sie je nach Serverarchitektur die Umgebung entweder im Verzeichnis /opt/ltsp/i386 oder /opt/ltsp/amd64; Sie finden in diesen Ordnern die erforderliche Linux-Dateistruktur sowie alle benötigten Befehle und Einstellungen. Wichtig: Beachten Sie, dass viele Thin Clients 32-Bit-Rechner sind und Sie daher die entsprechende Umgebung benötigen. Ist Ihr Server selbst ein 64-Bit-Rechner etwa mit einem Dual- oder Quad-Core-Prozessor, müssen Sie die gewünschte Architektur für die LTSP-Umgebung noch mit angeben:

sudo ltsp-build-client --arch i386

Nun wird eine Verbindung zu den Repositories hergestellt, und die für die LTSP-Umgebung erforderlichen Pakete werden heruntergeladen und anschließend installiert. Jetzt müssen Sie nur noch mit dem Befehl

sudo ltsp-update-sshkeys

die aktuellen LTSP-Serverkeys in die Chroot-Umgebung des Clients installieren. Übrigens: Diesen Befehl wird auch dann benötigt, wenn sich später einmal die IP-Adresse des Servers ändern sollte. Hinweis: Wollen Sie eine grafische Desktop-Umgebung wie Gnome, KDE oder XFCE nutzen, müssen Sie diese auf dem LTSP-Server installieren - sonst startet später auf den Thin Clients keine grafische Umgebung.

Schritt 2: Trivial-File-Transfer-Protokoll (TFTP)

Das Trivial-File-Transfer-Protokoll -kurz TFPT - wird in Ubuntu über den sogenannten Inet-Superserver gestartet. Es dient hauptsächlich dazu, Kernel-Images über das Netzwerk anderen Maschinen zur Verfügung zu stellen. Der in Ubuntu benutzte tftpd-hpa-Server basiert auf dem BSD-TFTP-Server, hat aber gegenüber dem Original einige Verbesserungen und Bugfixes erfahren.

Ganz wichtig: In der Konfiguration des Internet-Superservers muss udp4 beim TFTP-Service stehen.

Damit der TFTP-Server funktioniert, müssen Sie zwei Dinge kontrollieren und gegebenenfalls ändern: In der Konfigurationsdatei /etc/inetd.conf des Inet-Superservers muss der Eintrag

tftp dgram udp4 wait root /usr/sbin/in.tftpd /usr/sbin/in.tftpd -s /var/lib/tftpboot

vorhanden sein. Achten Sie in Ihrer Installation besonders auf die "4" hinter "upd" - die muss dort stehen. Des Weiteren benötigen Sie die Datei /etc/default/tftpd-hpa mit folgendem Inhalt:

TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="-l -s"

Die Variable TFTP_DIRECTORY weist auf das Verzeichnis mit dem Kernel-Image der LTSP-Umgebung hin. Nach den Änderungen müssen Sie den TFTP-Server neu starten mit

service tftpd-hpa restart

Der einfache Weg zur korrekten Konfigurationsdatei: Ändern Sie die /etc/default/tftpd-hpa mit dem Kommando dpkg-reconfigure.

Tipp: Anstatt die Datei direkt zu editieren, können Sie auch Debians Paketkonfiguration nutzen mit dem Befehl:

sudo dpkg-reconfigure -plow tftpd-hpa

Schritt 3: DHCP konfigurieren

Ein DHCP-Server verteilt IP-Adressen an die angeschlossenen Clients. Über diese sind die Rechner eines Netzwerks zu erreichen. Wer beispielsweise einen Internet-Router wie die FritzBox einsetzt, bekommt den DHCP-Server schon einsatzbereit mitgeliefert. Der hauptsächliche Vorteil: Man muss sich um die Konfiguration des Netzwerkadapters nicht mehr kümmern, das geschieht automatisch.

Es können auch mehrere DHCP-Server innerhalb eines Netzwerks genutzt werden: etwa einer, der nur die IP-Adressen verteilt, und einer, der die Informationen vorhält, wo Clients das Boot-Image für die LTSP-Umgebung finden. Das Gute dabei: Man muss die Konfiguration des ersten DHCP-Servers nicht ändern und nur den neuen für LTSP anpassen.

Zuerst stellen Sie in der Datei /etc/default/isc-dhcp-server ein, über welchen Netzwerkadapter der DHCP-Server seine Dienste anbietet. Dazu passen Sie lediglich die INTERFACES-Zeile an, etwa:

INTERFACES="eth1"

Die Konfiguration des DHCP-Servers für LTSP passen Sie in der Datei /etc/ltsp/dhcpd.conf an. Diese hat beispielsweise folgenden Inhalt:

authoritative;

subnet 192.168.178.0 netmask 255.255.255.0 {

range 192.168.178.20 192.168.178.200;

option domain-name "hogwarts.huemmler.de";

option domain-name-servers 192.168.178.1;

option broadcast-address 192.168.178.255;

option routers 192.168.178.1;

next-server 192.168.178.52;

option subnet-mask 255.255.255.0;

option root-path "/opt/ltsp/i386";

if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {

filename "/ltsp/i386/pxelinux.0";

} else {

filename "/ltsp/i386/nbi.img";

}

}

Für Ihr Netzwerk müssen Sie zumeist nur die folgenden Parameter anpassen:

subnet: Hier steht die Adresse des Netzwerk, häufig etwa 192.168.178.0 oder 192.168.1.0.

range: die kleinste und die höchste IP-Adresse innerhalb eines Subnetzes, die zugewiesen werden kann

option domain-name: Hier tragen Sie den Namen Ihres Netzwerks ein.

option domain-name-servers: der DNS-Server im Netzwerk (meist wie das Subnetz, nur mit "1" am Ende)

option broadcast-address: die Broadcast-Adresse (meist wie das Subnetz, nur mit "255" am Ende)

option routers: die Adresse des Routers (oft die IP-Adresse mit "1" am Ende)

next-server: Hier tragen Sie die IP-Adresse des LTSP-Servers ein.

option root-path: der Pfad zur LTSP-Umgebung

Haben Sie gemischte Umgebungen mit 32- und 64-Bit-Clients, muss die DHCP-Konfiguration entsprechend erweitert werden, etwa so:

group {

next-server 192.168.1.1;

server-name "192.168.1.1";

use-host-decl-names on;

host alice {

option root-path "/opt/ltsp/i386";

filename "/ltsp/i386/pxelinux.0";

# MAC-Adresse des Client-Rechners

hardware ethernet 00:e0:4c:c8:de:ad;

# IP-Adresse, welche zugewiesen wird

fixed-address 192.168.1.32;

}

host bob {

option root-path "/opt/ltsp/amd64";

filename "/ltsp/amd64/pxelinux.0";

hardware ethernet 00:16:36:10:b3:61;

fixed-address 192.168.1.33;

}

}

Hilfreich: Im Ubuntu-Users-Wiki steht, wie man die DHCP-Server an verschiedene Client-Architekturen anpassen kann.

In diesem Beispiel aus dem Ubuntu-Wiki werden zwei Rechner - "alice" und "bob" - definiert und zu einer Gruppe zusammengefasst. Beide Rechner erhalten außerdem eine feste IP-Adresse und werden über die MAC-Adresse des Netzwerkadapters eindeutig erkannt; das sorgt dafür, dass nur diese sich mit dem LTSP-Server verbinden können.

Ist der DHCP-Server konfiguriert, starten Sie ihn anschließend neu mit dem Kommando

sudo /etc/init.d/isc-dhcp-server restart

Thin Clients im Netzwerk starten

Nun können Sie die Thin Clients starten. Festplattenlose Thin Clients booten zumeist per PXE-Boot direkt über das Netzwerk und greifen auf das Boot-fähige Image auf dem LTSP-Server zu. Achten Sie deshalb darauf, dass im BIOS der Clients das Booten per Netzwerk eingestellt ist. Danach sollte der grafische Login erscheinen - falls nicht, achten Sie auf die Meldungen in der Datei /var/log/syslog.

Ein etwas kurioses Problem kann es beim Login geben. Wenn Sie zum Beispiel einen falschen Benutzernamen oder ein falsches Passwort eingeben, meldet der Login-Screen "Antwort des Servers", aber es passiert nichts weiter, und Sie erhalten keinen Zugang. Das liegt daran, dass die Meldung nicht vollständig angezeigt wird: Sie lautet nämlich normalerweise "Keine Antwort des Servers" und soll Sie auf eine falsche Eingabe hinweisen. Haben Sie Name und Passwort korrekt eingegeben, erhalten aber trotzdem keinen Zugriff? Dann benutzen Sie eventuell deutsche Umlaute oder andere Sonderzeichen im Passwort. Der grafische Anmeldeschirm am Thin Client nutzt zunächst die englische Tastaturbelegung. Dort befinden sich die meisten Sonderzeichen an anderen Stellen.

Weitere Arbeiten: In der Manpage lts.conf wird gut erklärt, etwa wie man verschiedene Thin Clients konfiguriert.

Läuft so weit alles, können Sie die Thin Clients noch weiter speziell an Ihre Anforderungen beziehungsweise Netzwerkumgebung anpassen. Das machen Sie in der Datei /var/lib/tftpboot/ltsp/i386/lts.conf beziehungsweise /var/lib/tftpboot/ltsp/amd64/lts.conf. Welche Parameter erlaubt sind, steht in der Manpage lts.conf. Auf diese greifen Sie zu, wenn Sie das Paket ltsp-docs installiert haben. Um Fehler zu vermeiden. passen Sie die Konfiguration aber nur schrittweise an. Damit ist unsere Basisinstallation zum Betreiben von Thin-Clients im Netzwerk abgeschlossen. Weitere Informationen zur LTSP-Installation finden Sie auf der LTSP-Homepage und im Ubuntu-Wiki. (hal)