Vorwort

Viele Unternehmen und öffentliche Einrichtungen, darunter auch Braintower, stellen ihren Gästen einen Zugang zum Internet zur Verfügung. Viele Nutzer verbinden sich einmalig mit dem bereitgestellten Gast-WLAN und können ab dann, meist uneingeschränkt, auf das Internet zugreifen.

Wenn im Nachhinein der Zugang wieder gesperrt und das verbundene Gerät entfernt werden soll, ist meist ein Aufschalten auf den Access Point oder Controller notwendig.

Hier kommt meine Lösung ins Spiel. Das Gast-WLAN Passwort wird automatisch in einem festgelegten Intervall neu definiert. Das neu generierte Passwort wird als QR-Code und als PDF an für die Veröffentlichung verantwortliche Personen im Unternehmen oder der Einrichtung verteilt.
Diese können an für Gäste zugänglichen Orten frei ausgehangen werden.

Durch die Implementierung dieser Routine wird sichergestellt, dass verbundene Geräte nur innerhalb eines festgelegten Zeitraums Zugriff auf das bereitgestellte Gast-WLAN haben.

Vorrausetzungen

Für die Änderung des Passworts ist ein SSH fähiger Access Point oder WLAN Controller notwendig. Die Verwendung an einem Router oder einer FritzBox ist bislang nicht getestet, kann unter Umständen jedoch ähnlich funktionieren.

Ein Server oder Computer, der den Access Point oder WLAN Controller über das Netzwerk erreicht und von dem aus das Skript regelmäßig gestartet werden kann, ist notwendig.

Das Skript wurde mittels PHP realisiert, daher ist die Installation von PHP in Version 5.6 auch eine Vorrausetzung.

Für den Aufruf des Expect Skripts kann jedoch jede beliebige Programmiersprache oder Routine gewählt werden. Expect selbst erkläre ich etwas weiter unten im Beitrag.

Skript (PHP)

Das Skript startet mit der Suche nach den Passwörtern die es konfigurieren soll. Sind die Passwörter nicht vorhanden werden sie generiert. In unserem Beispiel werden diese lokal auf dem Server abgelegt und ausgelesen. Das Speichern der Passwörter kann jedoch auch mittels Datenbank realisiert werden oder das Aktuelle Passwort wird nur während der Laufzeit generiert und nicht zwischengespeichert.

Das Speichern der Passwörter kann jedoch auch mittels Datenbank realisiert werden oder das aktuelle Passwort wird nur während der Laufzeit generiert und nicht zwischengespeichert.

Hier im Beispiel wird die Passwortliste erzeugt, falls sie nicht existiert. Die Passwörter werden für 12 Monate generiert und beim automatischen Ausführen des Skripts durch einen Cronjob wird monatlich ein neues hinzugefügt, so dass immer Passwörter für 12 Monate vorgehalten werden.

Anschließend werden QR-Codes mit den erzeugten Passwörtern generiert. Hierbei greife ich auf die lizenzfreie Klasse BarcodeQR zu.

Als letzter Schritt wird das Passwort und der dazugehörige QR-Code der PDFCreator Klasse übergeben und zu einem PDF zusammengefügt. Hierfür verwende ich die lizenzfreie Klasse FPDF.php.

Hier nur ein Ausschnitt dessen, was meine übergeordnete Klasse als Parameter erwartet und wie die FDPF Klasse meine erweitert. Weiter im Skript stehen kundespezifische Informationen die ich nicht beifügen kann.

Zusammenfassung:

Das PHP Skript generiert mittels einer von mir entwickelten Klasse (PasswordGenerator) eine Liste mit nach Kundenwunsch definierten Passwörtern. Diese werden mit Datum (Format: Monat-Jahr) und Zeitstempel (Unix-Timestamp) versehen. Für jedes dieser Passwörter in der Liste wird mittels einer zweiten Klassen (QRCodeCreator) ein QR-Code generiert und als PNG-Datei abgespeichert. Beides (Passwort und QR-Code) werden einer weiteren Klasse (PDFCreator) übergeben, um ein PDF zu generieren. Für jedes in der Liste hinterlegtes Passwort werden zwei PDF’s erzeugt (deutsch und englisch). Diese sind einfach am Dateinamen zu unterscheiden („Guest-Wifi-Passwort“-Jahr-Monat-Sprache.pdf). Das Skript hält für den aktuellen Monat und die darauf folgenden 11 Passwörter bereit.

Expect

Die Skriptsprache Expect dient zur Automatisierung von interaktiven Aufgaben unter Unix. Es handelt sich um eine Erweiterung der Skriptsprache TCL für interaktive Anwendungen wie telnet, ftp, passwd, fsck, rlogin, ssh und andere. Mit Tk Erweiterung für TCL, können interaktive Anwendungen auch in X11-Benutzeroberflächen eingepackt werden.
(Quelle: https://en.wikipedia.org/wiki/Expect)

Abschließend wird mittels exec das Expect-Skript ausgeführt und das aktuelle Passwort als Parameter übergeben. Das Expect-Skript ändert dann am WLAN Controller das Passwort für den aktuellen Monat.

Das Expect-Skript ändert dann am WLAN Controller das Passwort für den aktuellen Monat.

Fazit

Ohne größeren Aufwand oder Investition in teure Hardware kann hier mittels relativ wenigen Mitteln ein Mehrwert geschaffen werden, der auch zusätzlich noch einen Sicherheitsaspekt in das Gast-WLAN implementiert. Wenn Sie sicherstellen möchten, das keine Geräte aus dem letzten Monat mit in den Folgemonat wandern, ohne ihr Passwort erneuert zu haben, können Sie mithilfe dieses Skripts für Sicherheit im WLAN sorgen.

Nicolas Kortgen

Nicolas Kortgen

Application Developer

Nick ist in Frankreich aufgewachsen, bevor es ihn nach Deutschland verschlagen hat. Er kann nicht nur die Bälle beim Jonglieren in der Luft halten, sondern auch die unterschiedlichsten Projekte am Laufen. Löst den Rubik Würfel in unter einer Minute. Startete bei Braintower als Praktikant, wechselte dann zum Azubi und bringt auch noch heute alle zum Lachen.

Gefällt dir der Artikel? Bitte teile ihn!
Share on Facebook
Facebook
6Share on Google+
Google+
0Share on LinkedIn
Linkedin
Email this to someone
email
Tweet about this on Twitter
Twitter