Update CrowdSec bouncer: add bunny-cdn-bouncer deployment details, fix LAPI port
This commit is contained in:
@@ -15,10 +15,27 @@ DB 테이블은 blocklist (ip PK, reason, origin, expires_at), verified_ips, met
|
|||||||
|
|
||||||
Bouncer 목록: [[apisix]]-waf-bouncer, bunny-cdn-bouncer, cs-[[cloudflare|cf]]-worker-bouncer
|
Bouncer 목록: [[apisix]]-waf-bouncer, bunny-cdn-bouncer, cs-[[cloudflare|cf]]-worker-bouncer
|
||||||
|
|
||||||
|
### bunny-cdn-bouncer 상세
|
||||||
|
|
||||||
|
- **동기화**: jp1 `infra-tool` 컨테이너, `/opt/crowdsec-bouncer/bouncer.py`
|
||||||
|
- **크론**: 3분 간격 delta sync, 매시 정각 full sync (`/etc/cron.d/crowdsec-bunny-bouncer`)
|
||||||
|
- **방식**: CrowdSec LAPI → Bloom filter 생성 → BunnyCDN Edge Script 코드에 임베딩 → 퍼블리시
|
||||||
|
- **Edge Script**: BunnyCDN Compute Script ID 64811 (`crowdsec-bouncer-middleware`)
|
||||||
|
- Bloom filter (FNV-1a) 기반 IP 차단
|
||||||
|
- 차단 시 Cloudflare Turnstile CAPTCHA 챌린지 (false positive 대응)
|
||||||
|
- LibSQL DB로 verified IP 4시간 캐싱 + HMAC 서명 쿠키
|
||||||
|
- Clean IP 네거티브 캐시 (최대 50K)
|
||||||
|
- **적용 풀존**: inouter (5316471) — actions (5330178)은 미적용
|
||||||
|
- **API 키**: Vault `secret/infra/crowdsec-bunny-bouncer` (bouncer_key)
|
||||||
|
- **소스 코드**: `~/crowdsec-bunny-bouncer/`
|
||||||
|
|
||||||
## 3중 보안 구조 (KR존, 2026-03-15)
|
## 3중 보안 구조 (KR존, 2026-03-15)
|
||||||
|
|
||||||
```
|
```
|
||||||
클라이언트 → BunnyCDN WAF (1차) → APISIX + SafeLine WAF (2차) → CrowdSec (분석/3차)
|
클라이언트 → BunnyCDN Edge Script (CrowdSec bouncer, 0차)
|
||||||
|
→ BunnyCDN WAF (1차)
|
||||||
|
→ APISIX + SafeLine WAF (2차)
|
||||||
|
→ CrowdSec (분석/3차) → bunny-cdn-bouncer로 피드백 루프
|
||||||
```
|
```
|
||||||
|
|
||||||
### 1차: BunnyCDN WAF (OWASP CRS)
|
### 1차: BunnyCDN WAF (OWASP CRS)
|
||||||
@@ -33,7 +50,7 @@ Bouncer 목록: [[apisix]]-waf-bouncer, bunny-cdn-bouncer, cs-[[cloudflare|cf]]-
|
|||||||
- 글로벌 적용 (global_rules로 chaitin-waf 설정)
|
- 글로벌 적용 (global_rules로 chaitin-waf 설정)
|
||||||
|
|
||||||
### 3차: CrowdSec (로그 분석)
|
### 3차: CrowdSec (로그 분석)
|
||||||
- 위치: jp1 CrowdSec (10.253.100.240:8085)
|
- 위치: jp1 CrowdSec (10.253.100.240:8080)
|
||||||
- APISIX http-logger → CrowdSec HTTP acquisition (global_rules)
|
- APISIX http-logger → CrowdSec HTTP acquisition (global_rules)
|
||||||
- 파서: custom/apisix-json-logs (APISIX http-logger JSON 파싱)
|
- 파서: custom/apisix-json-logs (APISIX http-logger JSON 파싱)
|
||||||
- 반복 공격자 패턴 탐지 (시나리오 매칭)
|
- 반복 공격자 패턴 탐지 (시나리오 매칭)
|
||||||
|
|||||||
Reference in New Issue
Block a user