FlintGuard
Мобільний і вебзастосунок для керування роутером GL.iNet: схвалювати нові пристрої з пуш-сповіщення, блокувати їх і тримати домашню мережу під контролем.


Задача
Адмінка домашнього роутера зроблена для мережних інженерів, а не для батьків, які хочуть бачити, хто підключений, і на час вимкнути інтернет одному пристрою.
Рішення
- Спершу аудит безпеки: еталонний знімок роутера показав, що SSH і HTTPS доступні з інтернету, а вхід у SSH паролем увімкнений; закрито 7 WAN-правил, вимкнено вхід паролем, роутер перевірено на сліди зламу.
- SDK і інструменти: типізований клієнт JSON-RPC API роутера із захистом від самоблокування, контрактні тести на справжньому роутері з відкатом усіх змін, CLI, 9 архітектурних рішень.
- Застосунок: пристрої з фільтрами, картка пристрою (перейменування, профіль, блок інтернету одним дотиком), журнал подій, «Очікують рішення» з кнопками «Дозволити» і «Заблокувати», заблоковані поза власним списком роутера, «Це той самий пристрій» для нової приватної MAC-адреси; веб-версія, яку віддає сам роутер.
- Агент на роутері: пакет і сервіс на Lua, який виявляє нові пристрої, додає власні методи API, ставить нові пристрої в карантин і пускає в Wi-Fi лише схвалені.
- Сповіщення: пуші з кнопками дій, нативні iOS-пуші через невеликий посередник, сповіщення про спроби підключення, ліміти частоти й короткоживучі токени дій.
- Платформи: збірки iOS через TestFlight, Android і веб.
Результат
Особистий проєкт для домашньої мережі автора, у активній розробці; на продаж не виходить.