--- date: 2026-04-23 topic: Netbis CF 바운서 전량 제거 areas: [infra/security/crowdsec-safeline.md, services/netbis.md, infra/security/cloudflare.md] tags: [crowdsec, cloudflare, netbis, removal, cost-control] --- ## 배경 같은 날 [[2026-04-23-netbis-firewall-bouncer-migration|Firewall Rule 바운서 병행 도입]] 직후 재평가 → **두 바운서 모두 제거 결정**. ### 재평가 핵심 - **Worker Bouncer (`netbis-cf`)**: KV.get 구조. 2026-04 청구서 $100 중 82%가 KV read 오버. Worker 실행 자체가 과금 유발 - **Firewall Rule Bouncer (`netbis-cf-firewall`)**: CF Rule List 용량 10,000 (Pro). LAPI 전체 decision ~29k 중 67% 초과분은 CF에 동기화 불가. 우선순위 선별이지만 실제 공격자 IP 누락 가능성 + CF API rate limit(10040) 만성 - **결론**: 두 방식 모두 현재 Netbis 트래픽 규모와 비용 모델에 적합하지 않음. 더 적절한 방어 수단 재설계 필요 (후속 과제) ## 제거 범위 ### netbis-cf-firewall (Firewall Rule Bouncer) | 리소스 | 상태 | |---|---| | systemd service `crowdsec-cloudflare-bouncer.service` | disable + stop | | 패키지 `crowdsec-cloudflare-bouncer` (0.3.0) | apt purge | | LAPI bouncer 엔트리 `netbis-cf-firewall` | `cscli bouncers delete` | | CF Rule List `crowdsec_block` (id `b14745a3306a4f81b46d96593135f78b`, 10,000 items) | DELETE | | CF Firewall Rules (6 zones) + companion filters | 각 zone DELETE | | CF scoped API token `crowdsec-cloudflare-bouncer-netbis` (id `2196850b050493d01e0ab9ec0cde3e15`) | DELETE | | Vault `secret/cloud/cloudflare-netbis` `api_token` 필드 | kappa 경유 제거 예정 | ### netbis-cf (Worker Bouncer) | 리소스 | 상태 | |---|---| | systemd service `crowdsec-cloudflare-worker-bouncer.service` | disable + stop | | 패키지 `crowdsec-cloudflare-worker-bouncer` (0.0.14) | apt purge | | LAPI bouncer 엔트리 `netbis-cf` | `cscli bouncers delete` | | CF Worker Script `crowdsec-cloudflare-worker-bouncer` | DELETE | | CF KV Namespace `CROWDSECCFBOUNCERNS` (id `8cb07c1cb7784a4ca533f319bf66aa64`) | DELETE | | CF Worker Routes (6 zones, pattern `*/*`) | 각 zone DELETE | | CF Turnstile widgets (6개 `crowdsec-cloudflare-worker-bouncer-widget`) | DELETE | | CF User API Token `crowdsec-cf-bouncer-netbis` (`cfut_239XYQ...cf7c816`, id `d06694e98a2e58bfe9e0c338711b3aba`) | DELETE | ### 컨테이너 자체 | 리소스 | 상태 | |---|---| | jp1 Incus 컨테이너 `netbis-cf-bouncer` (10.253.103.33) | `incus delete --force` | | OpenTofu 정의 | 탐색 결과 없음 (heimdall `~/kaffa/ops-agents-tofu/`, kappa Mac 모두 미발견). destroy 대상 없음 | ### 6개 보호 zone (변경 영향) fall-vip.com, fall-mvp.com, fall-vip7.com, psd777.com, rss-555.com, rss-7790.com — CrowdSec 기반 CF 엣지 차단 일시 해제. 다른 계층(SafeLine WAF, BunnyCDN middleware 등)이 있다면 그쪽은 무변경. ## 실행 순서 ``` 1. systemctl disable --now crowdsec-cloudflare-bouncer crowdsec-cloudflare-worker-bouncer (jp1:netbis-cf-bouncer) 2. cscli bouncers delete netbis-cf-firewall netbis-cf (jp1:crowdsec) 3. apt purge crowdsec-cloudflare-bouncer crowdsec-cloudflare-worker-bouncer (jp1:netbis-cf-bouncer) 4. CF API (cfut token): Worker Routes × 6 DELETE → Worker Script DELETE → KV Namespace DELETE → Turnstile widgets × 6 DELETE 5. CF API (global_api_key): Firewall Rules × 6 DELETE + Filters × 6 DELETE → IP List DELETE → scoped api_token DELETE → cfut User Token DELETE 6. 컨테이너 내부 잔존 config 백업·log shred → /etc/crowdsec 삭제 → systemctl reset-failed 7. incus delete --force jp1:netbis-cf-bouncer 8. tmux → kappa: Vault api_token 필드 제거 요청 (global_api_key/email/account_id 보존) ``` ## 검증 제거 후 CF 상태 (global_api_key X-Auth 조회): | 지표 | 값 | |---|---| | Netbis Workers Scripts | 0 | | Netbis KV Namespaces | 0 | | 6 zones Worker Routes | 0 각각 | | 6 zones CrowdSec firewall rules | 0 각각 | | `crowdsec*` IP Lists | 0 | | `bouncer*` Turnstile widgets | 0 | | scoped api_token verify | Invalid API Token | | cfut User Token verify | Invalid API Token | LAPI (jp1:crowdsec): ``` cscli bouncers list # netbis-cf, netbis-cf-firewall 둘 다 없음 ``` Incus (jp1): ``` incus list --all-projects jp1: | grep netbis # (empty) ``` ## 롤백 불가 영역 - 제거된 API 토큰 2개: 값 복구 불가. 필요시 global_api_key로 재발급 - 삭제된 IP List의 10,000 IP 항목: 재생성 시 LAPI에서 다시 sync (바운서 재설치 필요) - 삭제된 Turnstile widgets: secret key 포함 완전 파기. 재설치 시 새 widget/secret 발급 - Worker Script/KV: 재배포로 재생성 가능 ## 후속 과제 - [ ] **Vault `secret/cloud/cloudflare-netbis`의 `api_token` 필드 제거** — kappa 경유 (다른 필드 보존) - [ ] Netbis 방어 수단 재설계: CF 비용 + 차단 범위 트레이드오프 분석 후 대체 구조 결정 (예: BunnyCDN Edge + SafeLine WAF 조합, CrowdSec → CF Account Rule Lists 단독, CF Custom Ruleset 등) - [ ] 2026-05 CF 청구서에서 Netbis 요금 감소 확인 (Worker 호출 0 + KV read 0 예상) ## 관련 문서 - [[../infra/security/crowdsec-safeline|crowdsec-safeline]] (섹션 2개 제거됨) - [[2026-04-23-netbis-firewall-bouncer-migration|이전 history: Firewall Bouncer 도입]] (같은 날, 역전) - [[../services/netbis|netbis]] (방어 구조 재설계 대상)