Webbrowser im Kioskmode

Ziel ist es, einen Rechner so zu konfigurieren, dass er nur einen Webbrowser anzeigt und der Benutzer nicht in der Lage ist, etwas an den PC Einstellungen zu ändern. Zusätzlich sollen nur bestimmte Seiten aufrufbar sein.

An dem Rechner reicht es aus, wenn HTML und PDF angezeigt werden können. Flash und Java sind nicht von Interesse :-).

Als Betriebssystem setze ich Ubuntu 8.04 LTS ein.

Nach der normalen Ubuntu Installation geht es nun um die Konfiguration.

Im einzelnen müssen folgende Punkte erledigt werden:

  • Installation von Opera und Adobe-Reader
  • Konfiguration von Opera für den Kioskmodus
  • automatischer Login am Rechner (via GDM)
  • Abschaltung der Funktionstasten Alt+Fn sowie der Tastenkombination Strg+Alt+Backspace
  • Einrichtung eines SSH-Zugang zur Wartung
  • Verschlüsselung der Booteinträge im Grub
  • Fernwartungszugang per VNC einrichten
  • Zum Klonen: Festplattenkennung in /etc/fstab und /boot/grub/menu.lst ändern

Installation von Opera und Adobe-Reader

Das ist inzwischen eine einfache Aktion. Auf den jeweiligen Herstellerseiten wird das entsprechende DEB-Paket runtergeladen und anschließend mittels dpkg -i <paketname> installiert. Alternativ kann man dazu auch den Paketmanager von Ubuntu verwenden.

Konfiguration von Opera für den Kioskmodus

Ich habe mich für Opera entschieden, weil dieser von Haus aus schon einen Kioskmodus mitbringt. Beim Firefox hätte ich erst irgendwelche Extensions installieren müssen oder direkt in den Configdateien wühlen müssen.

Wie der Kioskmodus aufgesetzt wird, ist auf den Seiten des Herstellers gut beschrieben.

Vor dem ersten Start vom Opera im Kioskmodus sind dort einige Konfigurationen vorzunehmen.

Dazu erst Opera normal starten. Anschließend in den Einstellungen bei „Allgemein“ die Startseite einstellen und unter „Erweitert -> Downloads“ den MIME-Typ PDF mittels „Bearbeiten“ zum Adobe Reader 8 zuweisen.

Danach geht es an die internen Parameter. In der Adresszeile „opera:config“ eingeben und „Special -> GoHomeTimeOut“ ein Timelimit einstellen, nach welchem der Browser bei Inaktivität zurück zur Startseite springt. Unter „Network -> Url Filter File“ kann eine Datei angegeben werden, die für die Filterung der Webseiten sorgt. Diese wird anschließend erstellt. Zwei Beispiele dazu gibt es auf der Operaseite.

Hier ein Beispiel, was nur die Domains heise.de und spiegel.de zuläßt:

[prefs]
prioritize excludelist=0

[include]
http://*.heise.de/*
http://*.spielgel.de/*
[exclude]
*

Die interne Konfiguration vom Opera ist hiermit abgeschlossen und er kann mittels diesem Kommando im Kioskmodus gestartet werden.

opera -kioskmode -kioskbuttons -kioskwindows -kioskbuttons -nomail -nomaillinks
-noprint -nowin -resetonexit -nosave -nochangebuttons -nochangefullscreen -nocon
textmenu -nohotlist -nokeys -kioskresetstation -nomenu

automatischer Login am Rechner (via GDM)

Manuell gestartet, funktioniert der Opera unter Gnome nun. Jetzt geht es darum, den Start zu automatisieren und abzusichern.

Dazu in Gnome unter „System -> Systemverwaltung“ das Anmeldefenster aufrufen und dort unter „Sicherheit“ die „Automatische Anmeldung“ aktiveren. Zusätzlich habe ich dem lokalem Systemadministrator ebenfalls das Login gestattet.
Auf der Karteikarte „Allgemein“ muss als voreingestellte Sitzung das „xclient-skript ausführen“ stehen.

Hintergrund ist, dass wir in Zukunft nicht den gesamten Gnome Desktop starten möchten, sondern nur den Opera. Dazu legen wir die Datei „.xsession“ im Heimatverzeichnis des aktuellen Benutzers an. Dort kommt dann der Operastartaufruf von oben rein.

Abschaltung der Funktionstasten Alt+Fn sowie der Tastenkombination Strg+Alt+Backspace

Dazu einfach in der /etc/X11/xorg.conf einen neuen Abschnitt einfügen und folgendes eintragen:

Section "ServerFlags"
        Option "DontZap"
        Option "DontVTSwitch"
        Option "DontZoom"
EndSection

DontZoom verhindert das Ändern der Auflösung
DontVTSwitsch verhindert das Umschalten auf andere Terminals (Alt+Fn)
DontZap schaltet Strg+Alt+Backspace ab

Einrichtung eines SSH-Zugang zur Wartung

Als root ausführen: apt-get install openssh-server

Verschlüsselung der Booteinträge im Grub

Neben dem Abschalten aller anderen Bootdevices im Bios, sollte der Grub so eingestellt werden, dass dort die Bootparameter ebenfalls nicht geändert werden können.

Dazu in /boot/grub/menu.lst im Abschnitt password entweder ein neues Kennwort mittels md5-Hash anlegen oder einfach ein Klartextkennwort hinterlegen.

Fernwartungszugang per VNC einrichten

Um einem Benutzer über die Schulter schauen zu können, kann man VNC installieren.

apt-get install x11vnc

Dieses muss dann in der .xsession noch mit aufgenommen werden.

Diese lautet dann so:

x11vnc &
opera -kioskmode -kioskbuttons -kioskwindows -kioskbuttons -nomail -nomaillinks
-noprint -nowin -resetonexit -nosave -nochangebuttons -nochangefullscreen -nocon
textmenu -nohotlist -nokeys -kioskresetstation -nomenu

Das „&“ hinter x11vnc nicht vergessen!

Hinweis: Der VNC-Server läuft nun ohne Passwort auf dem Rechner!

Zum Klonen: Festplattenkennung in /etc/fstab und /boot/grub/menu.lst ändern

Ubuntu verwendet zur eindeutigen Identifizierung von Partitionen sogenannte UUID und nicht mehr das klassische Device-Node Verfahren.

Ich habe für meine Installation das alte Device-Node Verfahren eingestellt, weil ich das zum Klonen des Rechners brauche.

Um das alte Verhalten zurück zu bekommen, sind zwei Änderungen notwendig. Einmal in der /etc/fstab die UUID gegen die entsprechenden Device-Node tauschen. (Sie stehen dort auskommentiert drin) und anschließend in der /boot/grub/menu.lst unten bei den einzelnen Booteinträgen die Einträge korrigieren.

Achtung: Jeder Lauf von update-grub (passiert bei Kernelupdates) wird diese Einträge wieder zerstören. Diese sind dann leider wieder von Hand zu reparieren. Ursprünglich war angedacht feste Optionen in einem Abschnitt der menu.lst zu setzen, die dann von dem update-grub Skript angewendet werden sollten.

Leider tut es das aber seit ewigen Zeiten nicht mehr. Ein Bugtracking zu dem Thema gibt es hier.

Änderungen an diesem Abschnitt werden von update-grub ignoriert:

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=e3aeb003-2bfd-4f2b-8116-6d690d5a8330 ro