From 3e100e5755211112c4a35f17adee026896de9a5b Mon Sep 17 00:00:00 2001 From: kappa Date: Mon, 23 Mar 2026 14:26:14 +0900 Subject: [PATCH] =?UTF-8?q?BunnyCDN=20=EC=97=A3=EC=A7=80=20=EC=8A=A4?= =?UTF-8?q?=ED=81=AC=EB=A6=BD=ED=8A=B8=20=EB=B3=B4=EC=95=88=20=EA=B5=AC?= =?UTF-8?q?=EC=84=B1=20=EB=AC=B8=EC=84=9C=ED=99=94=20(=EA=B5=AD=EA=B0=80?= =?UTF-8?q?=20=EC=B0=A8=EB=8B=A8=20+=20CrowdSec=20+=20=EC=BA=A1=EC=B0=A8)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/bunnycdn.md | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) diff --git a/services/bunnycdn.md b/services/bunnycdn.md index 4014f0d..ae0affb 100644 --- a/services/bunnycdn.md +++ b/services/bunnycdn.md @@ -1,6 +1,6 @@ --- title: BunnyCDN Reference -updated: 2026-03-12 +updated: 2026-03-23 tags: [cdn, bunnycdn, infrastructure, reference] --- @@ -598,6 +598,39 @@ Origin Shield는 CDN 엣지 PoP와 Origin 사이의 **2차 캐싱 레이어**. --- +## 15. 엣지 스크립트 보안 (CrowdSec + 국가 차단) + +### 구성 +- 스크립트: `crowdsec-bouncer-middleware` (ID: 64811) +- 연결된 Pull Zone: inouter (5316471), actions (5330178) +- 관리: cfb-manager (K3s tools ns) + +### 동작 순서 +``` +요청 → BunnyCDN 엣지 + 1. 국가 차단 (Cdn-RequestCountryCode 헤더) + - 차단: US,CA,GB,DE,FR,IT,ES,NL,BE,AT,CH,SE,NO,DK,FI,PL,CZ,PT,IE,RO,HU,BG,HR,SK,SI,LT,LV,EE,LU,MT,CY,GR,IS,UA,RU,BY + - 차단 시 403 반환 + 2. CrowdSec bloom filter (악성 IP 판별) + - bloom filter에 hit → 캡차 또는 403 + - cfb-manager가 주기적으로 bloom filter 업데이트 + 3. 캡차 (Cloudflare Turnstile) + - bloom hit된 IP에게 캡차 제시 + - 통과 시 4시간 허용 (DB + 쿠키) + 4. 정상 → Origin으로 전달 +``` + +### 주의사항 +- BunnyCDN Traffic Manager 국가 차단은 사용하지 않음 (Let's Encrypt/Origin Shield 문제 유발) +- 엣지 스크립트의 국가 차단은 `Cdn-RequestCountryCode` 헤더 기반이라 내부 요청에 영향 없음 +- Free SSL 발급: 국가 차단이 엣지 스크립트에 있으므로 Let's Encrypt 검증 통과 가능 + +### Pull Zone 설정 +- Origin: HTTPS (서울 220.120.65.245, 오사카 172.233.93.180) +- VerifyOriginSSL: false +- 국가 차단(BlockedCountries): 비어있음 (엣지 스크립트에서 처리) +- Origin Shield: 비활성화 + ## 참고 링크 - [API Reference](https://docs.bunny.net/reference/bunnynet-api-overview)