FlintGuard
一款管理GL.iNet Wi-Fi路由器的移动端和网页应用:在推送通知中批准或拦截新设备,牢牢掌控家庭网络。


挑战
家用路由器的管理后台是为网络工程师设计的,而不是为一位只想看看有哪些设备连着、给某台设备暂停上网的家长设计的。
方案
- 先做安全审计: 对路由器的基线检查发现,SSH和HTTPS可以从互联网访问,SSH密码登录处于开启状态;我们关闭了7条WAN规则,禁用了密码登录,并检查了路由器是否有被入侵的迹象。
- SDK与工具: 路由器JSON-RPC API的类型化客户端,带有防止把自己锁在外面的保护措施;针对真实路由器、会回滚每项更改的契约测试;命令行工具;9份架构决策记录。
- 应用: 带筛选的设备列表,可重命名、设置配置文件和一键断网的设备卡片,事件日志,带Allow和Block按钮的“待处理”设备,路由器自身列表之外的已拦截设备,针对新私有MAC地址的“这是同一台设备”处理;由路由器本身提供的网页版。
- 路由器上的代理程序: 一个Lua软件包和服务,用于发现新设备、添加自定义API方法、隔离新设备,并只允许已批准的设备连接Wi-Fi。
- 通知: 带操作按钮的推送,通过小型中继实现的iOS原生推送,连接尝试提醒,并配有速率限制和短时有效的操作令牌。
- 平台: 通过TestFlight分发的iOS版本、Android和网页版。
成果
这是一个为作者家庭网络打造的个人项目,正在积极开发中,并非商业产品。