FlintGuard
Aplikacja mobilna i webowa do zarządzania routerem Wi-Fi GL.iNet: zatwierdzanie nowych urządzeń z powiadomienia push, blokowanie ich i kontrola nad siecią domową.


Zadanie
Panel administracyjny domowego routera powstał dla inżynierów sieci, a nie dla rodzica, który chce zobaczyć, co jest podłączone, i wstrzymać internet jednemu urządzeniu.
Rozwiązanie
- Najpierw audyt bezpieczeństwa: przegląd wyjściowy routera wykazał, że SSH i HTTPS były dostępne z internetu, a logowanie hasłem przez SSH włączone; zamknięto siedem reguł WAN, wyłączono logowanie hasłem i sprawdzono router pod kątem oznak włamania.
- SDK i narzędzia: typowany klient do API JSON-RPC routera z zabezpieczeniami przed odcięciem samego siebie, testy kontraktowe na prawdziwym routerze, które cofają każdą zmianę, narzędzie wiersza poleceń, dziewięć rekordów decyzji architektonicznych.
- Aplikacja: urządzenia z filtrami, karta urządzenia ze zmianą nazwy, profilem i blokadą internetu jednym dotknięciem, dziennik zdarzeń, urządzenia „oczekujące” z przyciskami Allow i Block, zablokowane urządzenia poza własną listą routera, „to samo urządzenie” dla nowego prywatnego adresu MAC; wersja webowa serwowana przez sam router.
- Agent na routerze: pakiet i usługa w Lua, które wykrywają nowe urządzenia, dodają własne metody API, umieszczają nowe urządzenia w kwarantannie i wpuszczają do Wi-Fi tylko zatwierdzone.
- Powiadomienia: push z przyciskami akcji, natywne powiadomienia push w iOS przez mały relay, alerty o próbach połączenia, z limitami częstotliwości i krótkotrwałymi tokenami akcji.
- Platformy: buildy iOS przez TestFlight, Android i web.
Rezultat
Osobisty projekt dla domowej sieci autora, w aktywnym rozwoju, a nie produkt komercyjny.