2つのDocker化されたNGINXインスタンス: パターンベースの「リスクのある rewrite」スニペットと、修正済みの名前付きキャプチャスニペットを、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 (listens :8080 in container)
Host 127.0.0.1:18081 -> nginx-rift-patched
www/ -> RO -> /usr/share/nginx/html (both)
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/(.gitkeep を除き成果物はgitignore対象)、docs/。
Docker + docker compose、bash、curl が必要です。初回のみ: chmod +x scripts/*.sh。Linux(またはVM)では collect-evidence.sh の当該コレクタ行に関心がある場合に /proc/sys/kernel/randomize_va_space が公開されます。macOSのDocker Desktopではしばしばスキップされます——スクリプトはそのケースを注記します。
cd nginx-rift-defensive-lab
docker compose pull # optional
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)。
| Path | Role |
|---|---|
/health | プローブ用の安定したテキスト(vulnerable-nginx-alive / patched-nginx-alive) |
/nginx_status | stub_status(本番では制限) |
/legacy/ | 書き換えデモ |
| File | Purpose |
|---|---|
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対象) |
docker compose up -d はハイフン付きで使用します。*d のようなシェルグロブは意図しないファイル名に展開される可能性があります。