edge: 풀존 매핑 정합성 (2026-04-09 API 실측 반영)

- iron-kr 호스트 7개 (사용자 6 + 시스템 1) 명시. gitea.inouter.com 제거 (iron-git 분리됨), outline.inouter.com 추가
- iron-jp 호스트 5개 정정 (anvil.it.com 계열, 옛 inouter.com 표기 제거)
- 옛 풀존 ID 5316471/5330178/5554681 → iron-kr/iron-jp/iron-kr-waf 통합 메모
- Edge Script 64811 attach: iron-kr + iron-jp 두 풀존 모두 (단일 아님)
- iron-kr-waf 섹션을 waf-kr 에서 재명명, 새 경로 표기
This commit is contained in:
Syn
2026-04-09 21:05:34 +09:00
parent fa174b75ab
commit ae696f3e33
3 changed files with 42 additions and 27 deletions

View File

@@ -1,15 +1,18 @@
---
title: BunnyCDN 엣지 보안 (CrowdSec + 국가 차단)
updated: 2026-03-23
updated: 2026-04-09
tags: [cdn, bunnycdn, security, crowdsec, edge-script]
---
## 구성
- 엣지 스크립트: `crowdsec-bouncer-middleware` (ID: 64811)
- 연결된 Pull Zone: inouter (5316471), actions (5330178)
- 관리: cfb-manager (K3s tools ns)
- 소스: [[crowdsec-safeline|CrowdSec]] bloom filter + Cloudflare Turnstile 캡차
- 엣지 스크립트: `crowdsec-bouncer-middleware` (ID: 64811, ScriptType=2 Middleware)
- **연결된 Pull Zone (2026-04-09 실측)**: **iron-kr (5555227)**, **iron-jp (5555247)**`MiddlewareScriptId: 64811`. 두 풀존 모두 동일 미들웨어 공유.
- 미장착 풀존: iron-git (5584382, gitea.inouter.com), iron-kr-waf (5555224, SafeLine 자체 보호), i-gate (5557897, 미사용)
- 관리·동기화: jp1 `infra-tool` 컨테이너 `/opt/crowdsec-bouncer/bouncer.py` (3분 delta + 매시 full sync). cfb-manager 는 **Cloudflare Worker** bouncer 관리이며 BunnyCDN 미들웨어와 무관.
- 소스: [[crowdsec-safeline|CrowdSec]] bloom filter (FNV-1a 임베디드 BLOOM_B64) + Cloudflare Turnstile 캡차
> 옛 메모의 풀존 ID `5316471 (inouter)`, `5330178 (actions)`, `5554681 (waf-kr)` 는 현 계정에 더 이상 존재하지 않음. iron-kr / iron-jp / iron-kr-waf 로 통합·이전됨.
## 동작 순서
@@ -38,16 +41,20 @@ US, CA, GB, DE, FR, IT, ES, NL, BE, AT, CH, SE, NO, DK, FI, PL, CZ, PT, IE, RO,
- 엣지 스크립트의 국가 차단은 `Cdn-RequestCountryCode` 헤더 기반 → CDN 내부 요청(Let's Encrypt, Origin Shield)에는 이 헤더가 없으므로 영향 없음
- Free SSL 자동 발급/갱신 정상 동작
## Pull Zone 설정
## Pull Zone 설정 (2026-04-09)
| Pull Zone | Origin | 비고 |
|-----------|--------|------|
| inouter (5316471) | https://172.233.93.180 (오사카) | |
| actions (5330178) | https://220.120.65.245 (서울) | |
| Pull Zone | ID | Origin | 호스트 수 | 비고 |
|-----------|----|--------|----------|------|
| iron-kr | 5555227 | https://220.120.65.245 (서울) | 사용자 6 + 시스템 1 | actions.it.com / outline / vault / n8n / jarvis / telegram-webhook + iron-kr.b-cdn.net. `IgnoreQueryStrings: true` |
| iron-jp | 5555247 | https://172.233.93.180 (오사카) | 사용자 4 + 시스템 1 | anvil.it.com / n8n.anvil / tg.anvil / linode.actions + iron-jp.b-cdn.net. `IgnoreQueryStrings: false` |
- VerifyOriginSSL: false
- BlockedCountries: 비어있음 (엣지 스크립트에서 처리)
- Origin Shield: 비활성화
공통:
- `VerifyOriginSSL: false`
- `BlockedCountries: []` (엣지 스크립트에서 헤더 기반 처리)
- `EnableOriginShield: false`
- `BlockNoneReferrer: true`
- `MiddlewareScriptId: 64811`
- `EdgeRules: []` (Edge Rules 미사용 — 모든 분기는 미들웨어 코드 안)
## CrowdSec Bouncer 구조