FlintGuard
Eine Mobile- und Web-App zur Verwaltung eines WLAN-Routers von GL.iNet: neue Geräte per Push-Benachrichtigung freigeben, sperren und das Heimnetz im Griff behalten.


Aufgabe
Die Verwaltungsoberfläche eines Heimrouters ist für Netzwerktechniker gemacht, nicht für Eltern, die sehen wollen, was verbunden ist, und einem Gerät kurz das Internet abdrehen möchten.
Lösung
- Zuerst ein Sicherheitsaudit: Eine Bestandsaufnahme des Routers zeigte, dass SSH und HTTPS aus dem Internet erreichbar waren und die Passwortanmeldung per SSH aktiv war; sieben WAN-Regeln wurden geschlossen, die Passwortanmeldung abgeschaltet und der Router auf Anzeichen einer Kompromittierung geprüft.
- SDK und Werkzeuge: ein typisierter Client für die JSON-RPC-API des Routers mit Schutz davor, sich selbst auszusperren, Contract-Tests gegen einen echten Router, die jede Änderung zurücksetzen, ein Kommandozeilenwerkzeug, neun Architecture Decision Records.
- App: Geräte mit Filtern, eine Gerätekarte mit Umbenennen, Profil und Internetsperre per Tippen, ein Ereignisprotokoll, „wartende“ Geräte mit den Buttons Allow und Block, gesperrte Geräte außerhalb der routereigenen Liste, „das ist dasselbe Gerät“ für eine neue private MAC-Adresse; eine Webversion, die der Router selbst ausliefert.
- Agent auf dem Router: ein Lua-Paket mit Dienst, der neue Geräte erkennt, eigene API-Methoden ergänzt, neue Geräte in Quarantäne stellt und nur freigegebene Geräte ins WLAN lässt.
- Benachrichtigungen: Push mit Aktionsbuttons, native iOS-Push über ein kleines Relay, Hinweise auf Verbindungsversuche, mit Rate Limits und kurzlebigen Aktionstokens.
- Plattformen: iOS-Builds über TestFlight, Android und Web.
Ergebnis
Ein persönliches Projekt für das Heimnetz des Autors, in aktiver Entwicklung, kein kommerzielles Produkt.