Ubuntu 16.04 mit Openbox als Kiosksystem

Openbox

Der Beitrag Ubuntu 16.04 mit Openbox als Kiosksystem ist der erste einer Reihe, die sich mit einem abgesicherten Ubuntu-System beschäftigt, das man für computergestützte Prüfungen einsetzen kann. Weiterführende Beiträge dazu sind:
-> Openbox als Prüfungsumgebung
-> Tasten sperren oder Belegung verändern
-> Batch-Konvertierung HTML nach PDF
-> Dateien mit Batch-Script umbenennen
-> Tipps zur Openbox als Prüfungsrechner (I)

Die Vorgaben für das System sind:

  • Das System wird über externe SSDs oder USB-Sticks gebootet.
  • Einem Standardbenutzer ist nur das Starten vorgegebener Programme erlaubt oder die Programme starten automatisch.
  • Es ist nur über einen SSH- oder RDP-Zugang administrierbar.
  • Der Standardbenutzer kann die GUI nicht verlassen.

Das identische Vorgehen gilt auch für Ubuntu 18.04. Wird anstelle der Serverversion die Desktopversion verwendet, muss die grafische Oberfläche Unity allerdings entfernt werden.

Installation der Openbox

Zuerst wird die Serverversion 16.04 von Ubuntu installiert (Download -> hier). Bei der installation wählt man No automatic updates und installiert mit der Paketauswahl Manual package selection. -> Hier gibt es im Netz eine gute und bebilderte Anleitung sowohl zur Desktop als auch zur Serverinstallation.
Nach der Installation und einem Reboot wird das System zuerst aktualisiert.

:~$ sudo apt update && sudo apt upgrade

Unter Ubuntu Server 18.04 muss zunächst das Repository Universe hinzugefügt werden, da sich die openbox und der Midnight Commander sonst nicht installieren lassen.

:~$ sudo apt-add-repository universe

Als Oberfläche wird Openbox installiert. Eigentlich wollte ich mir den ganzen Ballast von Openbox sparen und mit dem Parameter –no-install-recommends installieren, das klappte bei mir aber nicht. Des weiteren brauchen wir Xorg als Display-Server und Slim als Starter für Openbox.

:~$ sudo apt install xorg openbox slim

Die Administrationszugänge werden installiert, wobei prinzipiell SSH ausreichend ist. Hier installiere ich den RDP-Zugang mit.

:~$ sudo apt install openssh-server xrdp

Um die Administration zu vereinfachen, wird der Midnight Commander installiert.

:~$ sudo apt install mc

Falls eine Java-Anwendung laufen soll, muss noch das Java-JRE installiert werden.

:~$ sudo apt-get install default-jre 

Zum Testen wird ein User angelegt und der Benutzergruppe video zusätzlich zugeordnet. Dazu kann man sich mit -> PuTTY per SSH verbinden. Mit dem Neustart sollte jetzt der Loginscreen von Openbox verfügbar sein.

:~$ sudo adduser testuser
:~$ sudo usermod -aG video testuser
:~$ sudo shutdown -r -t 0

Mit dem Neustart sollte jetzt der Login-Screen von Openbox verfügbar sein.

TIPP: Sollte irgendetwas während der Konfiguration schiefgehen, kann man mit STRG + ALT + F1 in die Konsole ohne Fenstermanager wechseln.

Konfiguration der Openbox

Am Beispiel des Dokumentenbetrachters Evince soll gezeigt werden, wie man dem Testuser eine Anwendung zur Verfügung stellt. Dazu wird zunächst Evince installiert.

:~$ sudo apt install evince 

Die allgemein gültige Konfiguration von Openbox befindet sich in /etc/xdg/openbox/ und wird in das home-Verzeichnis des Testusers kopiert. Sie wird dann anstelle der Konfiguration in /etc/xdg/openbox/ geladen, so dass man ggfls. jedem User eine angepasste Oberfläche zuordnen kann und vor allem die Originalkonfiguration zur Sicherheit noch behält.

:~$ sudo mkdir /home/testuser/.config
:~$ sudo mkdir /home/testuser/.config/openbox
:~$ sudo cp /etc/xdg/openbox/{rc.xml,menu.xml,autostart,environment} /home/testuser/.config/openbox
:~$ sudo chown -R testuser:testuser /home/testuser/.config/openbox

Das Menü für den Testuser wird in der Datei /home/testuser/.config/openbox/menu.xml angepasst, indem nach
<menu id=“root-menu“ label=“Openbox“> folgendes eingefügt wird:

<item label="Document-Reader">
<action name="Execute"><execute>evince</execute></action>
</item>

Soll Evince mit einem PDF-Dokument geöffnet werden, gibt man einfach den Pfad dort mit an.

<item label="Document-Reader">
<action name="Execute"><execute>evince /Pfad/zum/Dokument.pdf</execute></action>
</item>

Nach dem gleichen Schema können auch Scripte ausgeführt werden. Liegen die Scripte nicht im home-Verzeichnis des Testusers, muss der Pfad angegeben werden und natürlich müssen auch die Zugriffsrechte stimmen und die Dateien ausführbar sein.

<item label="Mein Script">
<action name="Execute"><execute>./start.sh</execute></action>
</item>

Soll auf dem Kiosk-System ein Browser laufen, dann gibt es -> hier einen sehr guten Artikel, wie man das mit Chromium macht.

Autologin mit Slim

Die Konfigurationsdatei dafür ist /etc/slim.conf. Dort werden die Einträge geändert auf

# default user, leave blank or remove this line
# for avoid pre-loading the username.
default_user testuser
....
focus_password no
....
auto_login yes

Autostart von Programmen

Um für den automatisch eingeloggten User Programme zu starten, trägt man sie in die OpenBox-Konfiguration im home-Verzeichnis des Users ein. Für dieses Beispiel ist das /home/testuser/.config/openbox/autostart. Um Firefox zu starten wird am Ende der Datei firefox angefügt. Will man mehrere Programme starten, muss man mit & dafür sorgen, dass die Startshell nicht blockiert wird. Um den Editor NodePadQQ und ein PDF mit Evince automatisch zu öffnen sieht das so aus:

# If you want to use XFCE config tools...
#
#xfce-mcs-manager &
notepadqq &
evince /home/testuser/Irgendein.pdf 

Kurz mal mounten

Um Dateien und Programme auf den Kiosk-PC zu übertragen, kann man z.B. -> WinSCP verwenden oder man mountet mal eben kurz ein Netzlaufwerk.  Handelt es sich um eine Windows-Freigabe, benötigt man cifs zum Mounten. Um einen USB-Stick mit fat32 zu mounten, legt man in /media ein Verzeichnis für den Mountpunkt an.

:~$ sudo apt-get install cifs-utils
:~$ sudo mkdir /media/external

Dann sucht man die Bezeichnung des eingesteckten USB-Sticks

:~$ sudo fdisk -l  

und kann ihn dann mounten mit

:~$ sudo mount -t vfat /dev/sdb1 /media/external -o uid=1000,gid=1000,utf8,dmask=027,fmask=137

Optimierungen

Silent Boot

Um ohne Systemmeldungen zu booten, passt man die Datei sudoedit /etc/default/grub an.

GRUB_DEFAULT=0
GRUB_HIDDEN_TIMEOUT=0
GRUB_HIDDEN_TIMEOUT_QUIET=true
GRUB_TIMEOUT=0
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet"
GRUB_CMDLINE_LINUX=""

Anschließend muss grub noch mit der geänderten Konfiguration aktualisiert werden.

:~$ sudo update-grub 
Quelle:

https://thepcspy.com/read/building-a-kiosk-computer-ubuntu-1404-chrome/

Absicherung der Openbox

Um den Kiosk gegen Ausbruchsversuche ins System abzusichern, muss insbesondere der Tastatur noch einige Aufmerksamkeit gewidmet werden. Dazu folgender -> Artikel.

Weiterführende Beiträge dazu sind:
-> Openbox als Prüfungsumgebung
-> Batch-Konvertierung HTML nach PDF
-> Dateien mit Batch-Script umbenennen
-> Tipps zur Openbox als Prüfungsrechner (I)

Buy Me a Coffee at ko-fi.com

2 Comments

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.

Neuigkeiten auf Împuşcătura?

Klicken Sie -> hier und  Sie werden automatisch per E-Mail über neue Beiträge auf Împuşcătura informiert.

Natürlich ohne Werbung!