5.3 KiB
5.3 KiB
date, topic, areas, tags
| date | topic | areas | tags | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2026-04-26 | CrowdSec bouncer 단일화 — netbis-cf-firewall만 유지, 나머지 3종 완전 제거 |
|
|
결정
CrowdSec LAPI 등록 4종 bouncer 중 cs-cloudflare-bouncer-1777082222 (netbis-cf-firewall) 만 유지하고 나머지 3종 완전 제거.
| 보존 | 폐기 |
|---|---|
cs-cloudflare-bouncer-1777082222 (netbis-cf-firewall, 2026-04-25 재구축) |
cs-cf-worker-bouncer (kappa CF Worker + KV + Turnstile×4) |
apisix-waf-bouncer (APISIX plugin 0.1) |
|
bunny-cdn-bouncer (BunnyCDN Edge Script 64811 bloom filter) |
이유 (kappa 지시):
- 운영 단순화 — 4종 bouncer 동시 관리 부담
- Worker bouncer 비용 + Turnstile 위젯 168h rotation 부담
- BunnyCDN Edge bloom filter 갱신 cron 의존성
- APISIX plugin 0.1 (오래된 패키지)
- netbis-cf-firewall은 origin filter
[crowdsec, cscli]+ Free CF 영역으로 비용 0, 단순
영향 (실행 전 사용자 확인 불필요로 진행)
- enforce 사라진 영역:
- kappa zone (keepanker.cv, actions.it.com, ironclad.it.com, servidor.it.com) CrowdSec ban → CF에서 관통
- BunnyCDN 풀존 iron-jp(5555247) / iron-kr(5555227) edge bouncer 차단 → 풀존 도착 트래픽이 origin까지 전달
- APISIX 인스턴스 chaitin-waf 보완용 IP ban (어느 인스턴스인지 Syn 확인) → SafeLine WAF만 유지
- 유지되는 enforce:
- SafeLine WAF (chaitin-waf 플러그인, K3s safeline ns)
- APISIX limit-req
- netbis-cf-firewall (Netbis 6 zone CF Firewall Rule managed_challenge)
- BunnyCDN WAF (OWASP CRS) — bouncer와 별개
작업 분담 + 진행
Heimdall 직접
| 단계 | 결과 |
|---|---|
incus stop+delete jp1:cs-cf-worker-bouncer |
ok, 컨테이너 사라짐 확인 |
jp1:infra-tool cron /etc/cron.d/crowdsec-bunny-bouncer 삭제 |
ok |
jp1:infra-tool /opt/crowdsec-bouncer/ 디렉토리 + bouncer.py 삭제 |
ok |
pkill -9 -f bouncer.py (잔존 프로세스) |
ok |
cscli bouncers delete cs-cf-worker-bouncer |
deleted successfully |
cscli bouncers delete apisix-waf-bouncer |
deleted successfully |
cscli bouncers delete bunny-cdn-bouncer |
deleted successfully |
| LAPI 최종 상태 | cs-cloudflare-bouncer-1777082222 단일 |
Syn 위임 (peer 통신, 동시 진행)
heimdall→syn tmux 메시지로 3건 위임:
- CF Worker (kappa account) 정리 — Worker 스크립트 + KV namespace + Turnstile 위젯 4개 (
crowdsec-cloudflare-worker-bouncer-widget, 적용 zone keepanker/actions/ironclad/servidor) 모두 삭제 - BunnyCDN Edge Script 64811 정리 — iron-jp(5555247) + iron-kr(5555227) 두 풀존에서
MiddlewareScriptId: 64811해제 + 스크립트 자체 삭제 - APISIX crowdsec-bouncer 플러그인 비활성화 — apisix-osaka 추정 (헤임달 검증: K3s 서울 미사용, zlambda 미사용). plugin_metadata/crowdsec-bouncer 삭제 + 사용하는 route/global_rule plugins.crowdsec-bouncer 모두 제거 + config.yaml plugins 목록에서 crowdsec-bouncer 제거 (선택)
APISIX는 본래 Syn 영역(CLAUDE.md 스코프) 이지만 kappa task 에서는 Heimdall 직접으로 명시되어 있었음. 실제로 apisix-osaka admin 권한이 Heimdall ops-agents 키로 없음 → Syn 위임이 자연스러움. 이 경계 deviation 은 작업 효율 우선으로 합리적 판단.
Vault 시크릿 처리
secret/infra/crowdsec-bunny-bouncer— 보존 (별도 폐기 결정)cs-cf-worker-bouncer관련 토큰 — 보존 (별도 폐기 결정)- LAPI api-key 3종 —
cscli bouncers delete시점에 자동 무효화
검증
# LAPI bouncers list
incus exec jp1:crowdsec -- cscli bouncers list
# → cs-cloudflare-bouncer-1777082222 단일
# infra-tool cron 사라짐 확인
incus exec jp1:infra-tool -- ls /etc/cron.d/ | grep -i crowdsec
# → (empty)
# cs-cf-worker-bouncer 컨테이너 사라짐
incus list jp1: --all-projects | grep cs-cf-worker-bouncer
# → (empty)
Syn 결과 (별도 보고 후 추가): CF Worker / KV / Turnstile / BunnyCDN Edge Script / APISIX plugin 정리 결과는 Syn → Heimdall 회신 시 본 history에 추기.
롤백
각 bouncer 재구성 절차 필요 시 이전 history 참조:
- cs-cf-worker-bouncer: 정본
gitea.inouter.com/kaffa/k8sconfigs/crowdsec/crowdsec-cloudflare-worker-bouncer.yaml - bunny-cdn-bouncer:
gitea.inouter.com/kaffa/crowdsec-bunny-bouncer(소스 보존) - apisix-waf-bouncer:
crowdsec-bouncer.lua파일 + APISIX config.yaml plugins 등록 + plugin_metadata 설정
후속 과제
- Vault
secret/infra/crowdsec-bunny-bouncer+ cs-cf-worker-bouncer 관련 토큰 폐기 결정 (kappa) - CrowdSec scenarios 다시 검토 — 일반 enforce 경로가 사라졌으니 시나리오 그룹화/조용화 가능
- kappa zone에 대한 대체 보호 검토 (필요 시 BunnyCDN WAF 강화 / CF Pro 플랜 활용 등)
- Syn 회신 후 본 history에 CF Worker / KV / Turnstile / BunnyCDN Edge / APISIX plugin 정리 결과 추기
관련 history
- 2026-04-23-netbis-bouncer-removal (1차)
- 2026-04-25-netbis-cf-firewall-rebuild (origin filter 적용)