两个 Docker 化的 NGINX 实例:基于模式的“危险重写”片段与已修复的命名捕获片段,分别固定在 nginx:1.30.0-alpine / nginx:1.30.1-alpine 上。脚本运行良性的 curl 请求,导出 nginx -T,并归档证据。仅用于配置审查培训——/health、/nginx_status、/legacy/ 是实验室端点;在实验室 VLAN 之外请收紧暴露范围。
适用范围:仅限授权主机。供应商公告和您自己的策略解释 scripts/check-nginx-rewrite-risk.sh 输出的 [RISK](启发式 grep 配置,非正式扫描器)。
Host 127.0.0.1:18080 -> nginx-rift-vulnerable (容器内监听 :8080)
Host 127.0.0.1:18081 -> nginx-rift-patched
www/ -> RO -> /usr/share/nginx/html (两者)
nginx-vulnerable/nginx-patched -> RO -> conf.d/default.conf
Network: nginx_rift_net (bridge)
仓库树:docker-compose.yml、nginx-{vulnerable,patched}/default.conf、www/、scripts/、evidence/(工件已 gitignore,仅保留 .gitkeep)、docs/。
Docker + docker compose、bash、curl。一次性操作:chmod +x scripts/*.sh。Linux(或虚拟机)会暴露 /proc/sys/kernel/randomize_va_space(如果您在意 collect-evidence.sh 中的那一行收集逻辑);macOS Docker Desktop 通常跳过此项——脚本已注明此情况。
cd nginx-rift-defensive-lab
docker compose pull # 可选
docker compose up -d
docker compose ps
./scripts/benign-request-test.sh
./scripts/check-nginx-rewrite-risk.sh
./scripts/check-nginx-rewrite-risk.sh nginx-rift-patched
./scripts/collect-evidence.sh
./scripts/cleanup-lab.sh
# ./scripts/cleanup-lab.sh --purge-evidence
如果 18080/18081 端口冲突,可更改主机端口(docker-compose.yml)。
| 路径 | 作用 |
|---|---|
/health | 用于探测的稳定文本(vulnerable-nginx-alive / patched-nginx-alive) |
请使用带连字符的 docker compose up -d。像 *d 这样的 shell 通配符可能会扩展成意外的文件名。
/nginx_status |
stub_status(生产环境需限制) |
/legacy/ | 重写演示 |
| 文件 | 用途 |
|---|
docs/LAB_GUIDE.md | 分步实验室指南 |
docs/WEBINAR_FLOW.md | 演讲者节奏 |
docs/PRTG_MONITORING_NOTES.md | 传感器示例 |
docs/REMEDIATION_SUMMARY_TEMPLATE.md | CAB/事件报告模板 |
docs/NGINX_RIFT_DEFENSIVE_LAB_COMPLETE_GUIDE.md | 合并版 Markdown |
docs/TR_KAPSAMLI_SAVUNMA_LAB_REHBERI.md | 土耳其语手册 |
docs/PDF_GENERATION_NOTES.txt | 可选的本地 PDF 构建(docs/*.pdf,已 gitignore) |