Raspberry Pi als ThinClient für LTSP

08 Aug 2013

In meinem zweiten Zuhause, meiner Arbeitstelle, haben wir in der Bibliothek Rechercherechner auf Basis von LTSP im Einsatz. Als ThinClients kommen hierbei ausgediehnte Rechner ohne Festplatte zum Einsatz. Mittlerweile machen diese Rechner aber immer mehr Probleme, da die verwendete Hardware einfach unter der eigenen Last des Alters zusammenfällt. Auch das Lager an Ersatzteilen schwindet dahin und der Kauf von Ersatzteilen ist schwierig oder unverhältnismäßig teuer, wenn man bedenkt, dass man dafür meist einen neuen Raspberry Pi bekommt. Der bringt außerdem gleich viele Vorteile mit sich:

  • die Größe: er verschwindet hinter dem Monitor
  • den Stromverbauch: die Rechner idlen 99% ihres Tages dahin und wandeln Watt in Wärme um
  • die Lüfterlosigkeit: damit einhergehend die Ruhe, welche in einer Bibliothek sehr gewünscht wird

Also habe ich kurz recherchiert inwieweit man die alten Kisten durch Raspis ersetzen kann und bin dabei auf BerryTerminal gestoßen. BerryTerminal ist eine Distribution für den Raspberry Pi, der den Kleinstrechner in einen ThinClient für LTSP verwandelt. Also Raspberrys bestellt, das SD-Karten-Image in Form einer ZIP-Datei herunter geladen und einfach auf die SD-Karten entpackt.

Da bei uns jeder LTSP-Client seinen eigenen generischen Login besitzt und quasi immer angemeldet ist, musste ich nur noch die Login-Daten in der cmdline.txt auf der SD-Karte in einer Zeile anfügen. Anschließend alles verkabelt, gebootet und gefreut: Es hat alles auf Anhieb funktioniert. Super!

Beim Testen fiel mir allerdings dann folgender Missstand auf: der lokale root-Account, als auch der default-Account besitzen kein Passwort. Man muss das Passwort also nicht erst erraten, sondern muss beim Login die Passwortabfrage nur durch Enter drücken bestätigen. Zum lokalen Login kommt man z.B. wenn der LTSP-Raspi keine IP vom DHCP-Server bekommt oder sich nicht mit dem LTSP-Server verbinden kann. Ein Passwort mittels passwd zu setzen bringt nichts, da es sich um ein Readonly-Image mit darüber gelegtem Squash-FS handelt und sich alle Änderungen nach einem Reboot in Wohlgefallen auflösen.

Also muss man das Image selbst ändern. Um einen kompletten Neubau des Images aus den Quellen des BerryTerminals zu umgehen habe ich einfach die /etc/shadow im Image selbst verändert.

Das root-Dateisystem befindet sich in der Datei berryterminal.img auf der SD-Karte. Diese habe ich erst einmal nach /tmp entpackt.

mkdir /tmp/secberry
cd /tmp/secberry
cat /media/sdcard/berryterminal.img | gunzip | cpio -ivd

Anschließend habe ich die shadow-Datei mit dem Editor meiner Wahl abgeändert. Ich habe beide Accounts einfach stillgelegt, indem ich ein * zwischen den ersten und zweiten Doppelpunkt gesetzt habe. Denn ich benötige weder den einen noch den anderen Account.

vi /tmp/secberry/etc/shadow
grep root /tmp/secberry/etc/shadow 
root:*:10933:0:99999:7:::

Nun habe ich das Image wieder zusammen geschnürt und zurück auf die SD-Karte geschrieben.

find . | cpio --quiet -o -H newc | gzip - > /media/sdcard/berryterminal.img

Und schon ist das BerryTerminal sicher einsatzbereit. Nun muss man nur den Raspberry selbst vor Zugriff schützen, denn der Wechsel einer SD-Karte dürfte selbst dem unbedarftesten Nutzer nicht schwer fallen.

Nun haben wir leise, stromsparende Rechercherechner und die ganze Migration der Clients dauerte keinen Vormittag. Die Kombination aus Raspberry Pi und LTSP kann man also für einen solchen Einsatzzweck durchaus weiter empfehlen.

raspberry-pi ltsp thinclient berryterminal security
comments powered by Disqus