Mit einem Mini-Router und der passenden Software verwandeln Sie einen Frontalvortrag in eine interaktive Diskussion mit exklusiven Zusatzinformationen.
Die Router der Firma GL.iNet sind handlich und recht flexibel. Auf ihnen läuft das offene Betriebssystem OpenWRT. In einer früheren Ausgabe unserer Schwesterzeitschrift Raspberry Pi Geek haben wir bereits gezeigt, wie Sie den Mini-Rechner mit kleinen Ergänzungen in einen Dokumentenserver verwandeln [1]. Nun geht es darum, diesen Server mit einem Rückkanal auszustatten: Damit händigt er nicht nur Dokumente aus, sondern nimmt darüber hinaus Kommentare oder Fragen entgegen.
Randbedingungen
Als Testgerät diente der GL-AR300M-ext. Das Gerät ist kleiner als eine Zigarettenschachtel. Es erhält die Forum-Software Kareha, die auch im Projekt PirateBox zum Einsatz kommt [2]. Diese Modifikation schränkt den Router in keiner Weise ein; alle seine Funktionen stehen weiterhin über die Administrationsseite bereit.
Im Internet gibt es unzählige Seiten, die Message-Boards und Voting-Server anbieten. Im Unterschied dazu landen bei der hier vorgestellten Lösung alle Eingaben der Nutzer nicht im Internet, sondern verbleiben auf dem Router. Wie beim Dokumentenserver erfordert der spätere Betrieb keinerlei Anbindung an das World Wide Web.
Konfiguration
Als Forum kommt das in Perl geschriebene Kareha [3] zum Einsatz. Zur Installation entpacken Sie das lediglich knapp 220 KByte große Zip-Archiv – die Software fände sogar im Speicher des Routers selbst Platz. Komfortabler ist es aber, sie stattdessen auf einem USB-Stick abzulegen, der zusätzlich als Ablage für Dokumente dient. Auf diese Weise verbleiben keine persönlichen Daten im Router, wenn Sie den Stick abziehen.
Abbildung 1 veranschaulicht, wie die Verzeichnisstruktur aussehen sollte. Letztendlich binden Sie nur das Verzeichnis www/ in den Verzeichnisbaum des Webservers ein. Damit bleiben Verzeichnisse auf der obersten Ebene, wie in der Abbildung protected/, vor dem Browser verborgen.

Abbildung 1: Mithilfe eines Symlinks legen Sie die Software für das Message-Board sowie die Dokumente auf dem USB-Stick ab, können sie aber trotzdem per Webserver ausliefern.
Nun kopieren Sie alle Verzeichnisse und Dateien aus dem Zip-Archiv ins Unterverzeichnis kareha/. Anschließend wechseln Sie ins gerade entpackte Unterverzeichnis mode_message/. Hier markieren Sie alle Dateien und Verzeichnisse und verschieben sie in den darüberliegenden Ordner.
Bestätigen Sie die Nachfrage, dass Sie dabei die Datei config.pl überschreiben möchten. Die Verzeichnisse mode_message/ und mode_image/ benötigen Sie nicht mehr und können sie bei Bedarf löschen.
Dann entfernen Sie in der Datei kareha/config.pl mindestens die Raute vor den beiden Einträgen aus Listing 1. Dann überschreiben Sie CHANGEME durch ein eigenes Kennwort.
Listing 1
use constant ADMIN_PASS => 'CHANGEME' use constant SECRET => 'CHANGEME'
Modifikationen
Damit der Webserver des Routers Zugriff auf den Stick erhält, setzen Sie einen symbolischen Link in dessen Verzeichnis. Dazu verbinden Sie sich über SSH mit dem Router (Listing 2, erste Zeile). Typischerweise lautet die IP-Adresse des Routers 192.168.8.1.
Listing 2
$ ssh root@192.168.8.1 root@GL-AR300M:/# ln -s /mnt/sda1/www /www/ntw root@GL-AR300M:/# ls -d */ cgi-bin/ images/ luci-static/ webcam/ css/ js/ ntw/ root@GL-AR300M:/# /etc/init.d/lighttpd restart root@GL-AR300M:/# opkg update root@GL-AR300M:/# opkg install perl root@GL-AR300M:/# opkg install perlbase-utf8 perlbase-if perl-cgi root@GL-AR300M:/# opkg install perlbase-data perlbase-time
Gelingt die Anmeldung, dann finden Sie sich in einer Shell mit administrativen Rechten wieder (Abbildung 2). Der Befehl aus der zweiten Zeile von Listing 2 verlinkt das Unterverzeichnis www/ des USB-Sticks in das Unterverzeichnis des Webservers.

Abbildung 2: Klappt das Login auf dem Mini-Router, so finden Sie sich in einer Shell wieder, die Ihnen den Zugriff auf das System ermöglicht.
Anschließend erscheint das Unterverzeichnis www/ des Sticks als neues Unterverzeichnis /www/ntw/ im Zugriff des Webservers, wie der Befehl ls -d */ zeigt (Listing 2, Zeilen 3 bis 5).
Es ist nicht erforderlich, die Einstellungen des Webservers Lighttpd anzupassen. Ein Blick in die Datei /etc/lighttpd/lighttpd.conf bestätigt, dass die Software bereits mit Perl-Skripten zurechtkommt. Außerdem gestattet der Server das Ausführen von Skripten innerhalb der zugewiesenen Verzeichnisse. Im konkreten Fall erfordert das eine Abwägung bezüglich der Sicherheit.
Die Dateien auf einem FAT-formatierten Stick abzulegen erscheint ebenfalls nicht in jedem Fall optimal: Das Dateisystem schränkt die Zugriffsrechte nicht ein. Hätten Sie die Perl-Dateien im Speicherbereich des Routers abgelegt, wäre es möglich, dass nur ausgewählte Verzeichnisse und Dateien die Rechte zum Schreiben und Ausführen erhalten.
Nach einem Neustart des Webservers (Listing 2, Zeile 6) testen Sie zunächst den Zugriff auf die Dateien. Rufen Sie dazu eine HTML-Datei im Verzeichnis /www/documents/ auf. Fehlt sie oder ist das Unterverzeichnis auf dem USB-Stick nicht korrekt eingebunden, springt der Webserver auf seine Administrationsseite.
Funktioniert das Anzeigen, rufen Sie die Perl-Datei http://192.168.8.1/ntw/kareha/kareha.pl auf dem USB-Stick auf. Antwortet der Webserver mit der Fehlermeldung 500 Internal server error, hat er die Datei zwar gefunden, weiß aber nichts mit ihr anzufangen. Diese Situation tritt typischerweise auf, wenn die Perl-Laufzeitumgebung nicht installiert ist. Gegebenenfalls rüsten Sie sie mit den Kommandos aus den Zeilen 8 bis 11 von Listing 2 nach.
Zunächst lassen Sie den Router die Liste der aktuellen Pakete aktualisieren (Zeile 8), dann richten Sie in den Zeilen 9 bis 11 Perl und weitere Module ein. Erwartungsgemäß gelingt das nur, wenn Sie den Router in diesem Fall mit dem Internet verbinden.
Rufen Sie anschließend im Browser erneut die Adresse http://192.168.8.1/ntw/kareha/kareha.pl auf, meldet sich nach kurzer Rechenzeit das Message-Board (Abbildung 3).

Abbildung 3: Haben Sie die Software korrekt installiert und außerdem die passenden Pakete auf dem Rechner nachgezogen, lässt sich das Message-Board über einen Webbrowser starten.
Kareha
Das Programm Kareha bildet einen Teil der PirateBox, eines Systems, das die Kommunikation und den Datenaustausch über einen lokalen Router unterstützt. Die Software der GL.iNet-Box bietet zwar einige weitere Optionen, doch dafür wäre es nötig, die Router-Software im AR300M-ext auszutauschen. Die hier vorgestellte Lösung dagegen passt auf einen USB-Stick und bedarf nur kleiner Modifikationen am bestehenden System.
Die erste Installation über den Aufruf kareha.pl erzeugt eine Datei index.html. Das Verzeichnis, in dem sie liegt, dürfen Sie ab jetzt nicht mehr verschieben, da das Programm absolute Pfade zu den HTML- und Javascript-Dateien anlegt. Nun genügt der Link auf http://192.168.8.1/ntw/kareha, um das Forum zu besuchen.
Um das Forum anzupassen, etwa so wie in Abbildung 3 zu sehen, waren im Test einige Modifikationen im Unterverzeichnis include nötig. Die Datei rules.html nimmt den Text für die Begrüßung auf; das File header.html besteht nur aus dem HTML-Tag <hr> für eine horizontale Linie.
Mit footer.html legen Sie den Text für die Fußzeile fest. Der Name des Forums steht in der Konfigurationsdatei config.pl, die weitere Anpassungen erlaubt. Als Theme (Board look) kam im Beispiel die Option Blue moon zum Einsatz.
Das Beispiel aus Abbildung 3 zeigt, dass zwei Nutzer im Forum Mitteilungen hinterlassen haben. Solange die Cookies gültig bleiben, dürfen diese ihre Beiträge anpassen. Mit dem Kennwort aus der Datei config.pl löschen Sie bei Bedarf Beiträge, indem Sie die Adresse http://192.168.8.1/ntw/kareha/admin.pl aufrufen.
Sollten Sie das Kennwort vergessen haben, stecken Sie den USB-Stick an einen PC oder loggen sich via SSH ein und schauen in der Datei config.pl nach. Alternativ setzen Sie das Board zurück, indem Sie die Datei index.html und alle Dateien im Unterverzeichnis res löschen.
Raspberry Pi
Das Programm Kareha läuft bei Bedarf auch auf einem Raspberry Pi; Perl ist dort bereits installiert. Statt Lighttpd übernimmt dann der Webserver Apache 2 das Verteilen der Daten: Die erste Zeile in Listing 3 schaltet CGI-Skripte für den Webserver frei, die Zeilen 2 und 4 ergänzen Perl um weitere Module. Zeile 3 lädt ein Hilfsprogramm, das die Nachinstallation von Modulen erleichtert [4].
Listing 3
$ sudo a2enmod cgid $ sudo apt install libcgi-pm-perl $ cpan App::cpanminus $ cpanm utf8::all $ nano /etc/apache2/sites-enabled/000-default.conf
Kareha mischt HTML-Dateien und Skripte im selben Verzeichnis. Um Perl-Dateien nicht nur im Verzeichnis /var/www/cgi-bin/ auszuführen, sondern auch im Verzeichnis /var/www/html/, müssen Sie die Konfigurationsdatei entsprechend ergänzen. Dazu öffnen Sie sie mit dem Editor Nano (Listing 3, letzte Zeile).
Listing 4 zeigt die notwendigen Ergänzungen in der Datei 000-default.conf. Wie oben beschrieben, liegen die Skripte von Kareha im Verzeichnis /var/www/html/. Mit dem Kommando chmod +x Datei vergeben Sie für die Perl-Dateien kareha.pl und admin.pl die entsprechenden Attribute. Die Datei index.html sowie die Files in res/) benötigen das Attribut, das das Schreiben erlaubt (chmod +w).
Listing 4
ScriptAlias /usr/lib/cgi-bin/ "/var/www/html" <Directory "/var/www/html"> Options +ExecCGI AddHandler cgi-script .cgi .pl Order allow,deny Allow from all </Directory>
TIPP
In Form von Wakaba [3] existiert ein Board für Bilder, dessen Installation ähnlich verläuft wie beim hier beschriebenen Kareha. Es ergänzt diese Installation bei Bedarf sehr gut.
Fazit
Jeder Vortragende freut sich über Zuhörer. Dass er diesen exklusiv Informationen bereitstellt, drückt Anerkennung aus. Die Rolle der Programmblätter aus früheren Zeiten übernimmt heute ein lokaler Dokumentenserver; ein passender USB-Stick lässt sich schnell vorbereiten. Die Installation der Perl-Skripte auf demselben Stick hält alle Daten an einem Ort zusammen.
Mit dem Mitteilungsboard Kareha erhält der Aufbau zusätzlich einen Rückkanal. Darüber haben die Teilnehmer des Vortrags die Möglichkeit, Rückmeldungen zu posten und Fragen zu stellen. Im Idealfall steigen Sie so in eine Diskussion ein.
Die Reichweite der Hardware beschränkt sich in der Regel auf den Vortragsraum. Das Ablegen der Daten auf einem FAT-formatierten Medium öffnet potenzielle Lücken in der Sicherheitskette des Browsers. Für das gezeigte Einsatzgebiet wäre das zu vertreten, bei einem anderen Szenario stünden aber vermutlich Anpassungen an.
Infos
-
OpenWRT auf dem GL.Inet AR300M: Dr. Roland Pleger, “Handlicher Helfer”, RPG 11-12/2018, S. 50, http://http:/www.raspi-geek.de/41750
-
PirateBox: Christoph Langner, “Anonymes Filesharing mit der PirateBox”, RPG 05-06/2019, S. 54, http://www.raspi-geek.de/41049
-
Kareha und Wakaba: http://wakaba.c3.cx/s/web/wakaba_kareha
-
CPAN-Module: http://www.cpan.org/modules/INSTALL.html





