docs: aggregate project documentation under docs/ with unified index

- Move all per-module security audit reports to docs/security/
- Move code review logs to docs/reviews/, analysis reports to docs/reports/
- Add docs/INDEX.md as single entry point for all project documentation
- Add documentation management conventions section to README.md
- Clean up empty per-module docs/ directories
This commit is contained in:
qing committed 2026-08-03 13:21:48 +08:00
1 parent 9dbe395484
commit a7a78d1424
22 files changed
+151

No files matched your search

@@ -0,0 +1,78 @@
# 部署配置安全审计报告
**审计日期**: 2026-08-01
**审计范围**: `docker-compose.yml`、`docker.sh`、`_inst.sh`、`_setup.*.sh`、`.env.example`
**代码版本**: dev_qing 分支
---
## 修复进度
| 优先级 | 总数 | 已修复 | 待修复 |
|--------|------|--------|--------|
| P0 | 1 | 0 | 1 |
| P1 | 2 | 0 | 2 |
| P2 | 3 | 0 | 3 |
---
## 🔴 P0 — 严重问题
### P0-1: WAF 规则默认全部注释,WAF 形同虚设
- **位置**: `waf/rules/local/custom.conf`
- **问题**: 所有 WAF 安全规则默认被注释掉:
```
# SecRule ... SQL 注入规则...
# SecRule ... XSS 规则...
```
部署后 WAF 实际不拦截任何攻击,恶意请求直接透传到后端
- **修复建议**:
1. 启用核心规则集(SQLi、XSS、命令注入等关键规则)
2. docker.sh 启动时检测规则是否启用,若全注释则打印警告
3. 异常模式先运行一周,观察误报后切换到拦截模式
---
## 🟠 P1 — 高危问题
| # | 问题 | 位置 | 说明 |
|---|------|------|------|
| P1-1 | 默认密钥/密码需检查 | `.env.example`、各 `_set.sh` | 确认没有硬编码的默认数据库密码、API Key |
| P1-2 | Docker 容器权限过高 | `docker-compose.yml` | 检查是否使用 `--privileged`、是否挂载了敏感目录(`/etc`、`/root`) |
---
## 🟡 P2 — 中危问题
| # | 问题 |
|---|------|
| P2-1 | Docker 镜像未指定非 root 用户运行 |
| P2-2 | 没有健康检查配置,异常服务不会自动重启 |
| P2-3 | 数据库文件/配置文件未配置定期备份 |
---
## ✅ 已有安全机制
1. ✅ **端口绑定限制**: 内部服务(db、confs、smtp、captcha、pymsg 服务)均绑定 `127.0.0.1`,不对外暴露
2. ✅ **Docker Compose 编排**: 容器化部署,环境一致性
3. ✅ **.env.example 模板**: 环境变量配置模板,不硬编码密钥
4. ✅ **独立 Docker 网络**: 服务间通过内部网络通信
5. ✅ **waf 前置**: 所有公网流量先经过 WAF 再到 gateway
---
## 修复路线图
### 立即(24小时)
- [ ] 启用 WAF 核心规则(关键攻击类型)
### 短期(72小时)
- [ ] 检查所有默认密码/密钥
- [ ] 容器非 root 用户运行
- [ ] 移除不必要的 privileged 权限
### 中期
- [ ] 添加健康检查配置
- [ ] 自动备份策略
- [ ] Docker 镜像安全扫描