MaddogWarner/unifi-dashboard

GitHub: MaddogWarner/unifi-dashboard

UniFi安全仪表板,可视化UniFi网络安全。

Stars: 0 | Forks: 0

# UniFi 安全仪表板 ## API 所有端点都在 `/api/v1/` 下,并通过 nginx 代理。 | 端点 | 方法 | 描述 | | -------- | ------ | ----------- | | `/api/v1/health` | GET | 服务健康状态,数据库状态,UniFi API 可达性 | | `/api/v1/firewall/policies` | GET | 基于区域的策略,包含命中次数 | | `/api/v1/firewall/rules` | GET | 带有命中次数的旧版防火墙规则 | | `/api/v1/firewall/logs` | GET | 分页的 syslogs 防火墙事件(过滤器:src_ip,rule_name) | | `/api/v1/firewall/zones` | GET | 带有分配网络的区域 | | `/api/v1/threats/events` | GET | IDS/IPS 威胁事件 | | `/api/v1/threats/ids-status` | GET | IDS/IPS 配置 + 差距分析 | | `/api/v1/networks/` | GET | 带有区域和策略元数据的 VLANs | | `/api/v1/assessment/` | GET | 得分安全评估 | | `/api/v1/assessment/conflicts` | GET | 检测到的策略冲突 | | `/api/v1/drift/snapshots` | GET | 策略快照历史记录 | | `/api/v1/drift/diff/{a}/{b}` | GET | 两个快照之间的 JSON 差异 | | `/api/v1/drift/latest-change` | GET | 最新的漂移事件 | | `/api/v1/scan/` | POST | 触发 nmap 扫描 `{target, ports, scan_type}` | | `/api/v1/scan/{id}` | GET | 轮询扫描结果 | | `/api/v1/settings` | GET | 读取所有运行时设置 | | `/api/v1/settings` | PUT | 更新运行时设置(功能开关,间隔,代理 URL) | | `/api/v1/cve/alerts` | GET | 分页的 CVE 警报 — 可按严重性和确认状态筛选 | | `/api/v1/cve/alerts/{id}/acknowledge` | POST | 将 CVE 警报标记为已确认 | | `/api/v1/cve/devices` | GET | 带有每个设备匹配的 CVE ID 的设备清单 | | `/api/v1/cve/refresh` | POST | 触发立即的 CVE 轮询周期 | | `/api/v1/threatfeed/feeds` | GET / POST | 列出或添加配置的源 | | `/api/v1/threatfeed/feeds/{id}` | PUT / DELETE | 更新或删除源 | | `/api/v1/threatfeed/status` | GET | 启用状态,最后更新,总条目数,挂起计数 | | `/api/v1/threatfeed/entries` | GET | 分页的阻止 IP/CIDR 条目 — 支持CIDR搜索 | | `/api/v1/threatfeed/pending-rules` | GET | 列出待批准的规则更改 | | `/api/v1/threatfeed/pending-rules/{id}/approve` | POST | 批准并将待批准的规则更改应用到 UniFi | | `/api/v1/threatfeed/pending-rules/{id}/reject` | POST | 拒绝待批准的规则更改 | | `/api/v1/threatfeed/refresh` | POST | 触发立即的威胁源轮询周期 | ## 验证 启动堆栈后: ``` # 所有服务应显示“健康”或“运行” docker compose ps # 健康检查(-k 接受自签名证书)——无需认证 curl -k https://localhost/api/v1/health # HTTP 重定向检查——应返回 301 并带有 Location: https:// curl -I http://localhost/ # 获取 Bearer 令牌(将凭据替换为您的账户) TOKEN=$(curl -k -s -X POST https://localhost/api/v1/auth/login \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "username=admin@example.com&password=yourpassword" \ | python3 -c "import sys,json; print(json.load(sys.stdin)['access_token'])") # 返回策略列表(在配置 UniFi 凭据并运行第一次轮询之前为空) curl -k -H "Authorization: Bearer $TOKEN" https://localhost/api/v1/firewall/policies # 测试扫描器 RFC1918 守护——应返回 HTTP 400 curl -k -X POST https://localhost/api/v1/scan/ \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"target":"8.8.8.8","ports":"80"}' # 触发有效扫描 curl -k -X POST https://localhost/api/v1/scan/ \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/json" \ -d '{"target":"192.168.1.1","ports":"22,80,443"}' ``` ## 开发环境搭建 ### 在本地不使用 Docker 运行服务 **API:** ``` cd services/api pip install -e ".[dev]" # 需要运行中的 PostgreSQL 实例——更新 .env 中的 POSTGRES_HOST uvicorn app.main:app --reload --port 8000 ``` **前端:** ``` cd services/frontend npm install # 如果 API 在本地运行,则设置 VITE_API_URL=http://localhost:8000 npm run dev # http://localhost:5173 ``` **MCP 服务器:** ``` cd services/mcp pip install "mcp[cli]>=1.0" httpx # 设置 API_BASE_URL=http://localhost:8000 python server.py ``` ### 仅在 Docker 中运行数据服务 ``` # 仅启动 postgres 和 API,以便前端开发服务器可以代理到它 docker compose up postgres api -d cd services/frontend && VITE_API_URL=http://localhost/api npm run dev ``` ### 代码质量 ``` # Python 代码风格检查和格式化 cd services/api && ruff check . && ruff format --check . # TypeScript 类型检查 cd services/frontend && npm run build # tsc runs as part of the Vite build ``` ## 贡献 欢迎贡献。在提交拉取请求进行重大更改之前,请先打开一个问题。 ### 贡献者 - [MadDogWarner](https://github.com/MadDogWarner) — 项目作者 - [Claude](https://claude.ai) (Anthropic) — 架构,代码审查和实施指导 - [Codex](https://openai.com/codex) (OpenAI) — 主要代码生成 ### 指南 - 遵循现有的代码风格(Python 的 Black/Ruff,TypeScript 严格模式) - 提交中不得包含机密信息或凭证 - Scanner RFC1918 守护者不得被削弱或删除 - 对于任何面向用户的变化,请添加或更新 `changelog.md` 条目 ## 许可证 MIT — 有关详细信息,请参阅 [LICENSE](LICENSE)。
标签:API 开发, Claude Code 集成, CVE 漏洞管理, Nginx 代理, UniFi 网络, 云存储安全, 入侵检测系统, 入侵防御系统, 反取证, 威胁情报, 威胁猎捕, 安全事件, 安全报告, 安全数据湖, 安全漏洞, 安全策略, 安全评估, 安全配置, 开发者工具, 提示词设计, 政策漂移检测, 测试用例, 网络扫描, 设备管理, 请求拦截, 逆向工具, 防火墙策略