netbis CF firewall bouncer 재구축 (origin filter) + VL acquisition 통합 + sigmatch v2.4

- crowdsec-safeline.md: VL → CrowdSec acquisition 3개(apisix/traefik/npm) → 1개 통합
  (victorialogs-nginx.yaml, query OR 결합). Netbis NPM CrowdSec 연동 활성.
  netbis-cf-firewall 재구축 섹션 추가.
- services/netbis.md: bouncer 폐기 → 재구축 정정. firewall_bouncer_token 정보 갱신.
  Worker bouncer는 트래픽 비례 비용으로 재구축 안 함 명시.
- history/2026-04-25-netbis-cf-firewall-rebuild.md: 오늘 작업 종합 (sigmatch v2.4
  MP 제거, VL 통합, CrowdSec 연동, CF Firewall bouncer 재구축, origin filter로
  10k 한도 회피).

origin filter [crowdsec, cscli] 적용으로 2026-04-23 폐기 사유였던 CF IP List
10k 한도 회피. Worker bouncer는 origin filter로 회피 불가 (트래픽 비례 비용)
이라 재구축 안 함.
This commit is contained in:
kaffa
2026-04-25 12:43:47 +09:00
parent ae6237de21
commit e5c6b4deab
3 changed files with 155 additions and 22 deletions

View File

@@ -68,8 +68,9 @@ NixOS `virtualisation.oci-containers`로 선언 — `~/nixos-infra/apisix.nix`.
| Account ID | 8fcf3c7876332aba33e974cbbfdad951 |
| Global API Key | Vault `secret/cloud/cloudflare-netbis` (`global_api_key`) |
| Linode API Key | `e7cd3103ca76b865df2533b32eee5c8d7799c963fb29848274245dee142d21b0` |
| API Token (바운서용) | `crowdsec-cf-bouncer-netbis` (Workers, Turnstile, WAF, Zone 권한) |
| Workers 플랜 | Paid ($5/월, 1000만 요청 포함) |
| ~~API Token (Worker bouncer용)~~ | ~~`crowdsec-cf-bouncer-netbis`~~ → 2026-04-23 Worker bouncer 폐기 시 token 삭제됨 |
| API Token (Firewall bouncer용) | Vault `secret/cloud/cloudflare-netbis` (`firewall_bouncer_token`, id `firewall_bouncer_token_id`). 2026-04-25 발급. 권한: Account Firewall Access Rules Write + Account Rule Lists Write + 6 zone Firewall Services Write |
| Workers 플랜 | Paid ($5/월, 1000만 요청 포함) — 현재 미사용 (Worker bouncer 폐기 후 재구축 안 함) |
### Zone 목록
@@ -126,18 +127,27 @@ APISIX global_rule로 모든 요청 로그를 CrowdSec(jp1)로 전송.
- 인증: `auth_header: apisix-crowdsec-log-2024`
- 파서: `custom/apisix-json-logs` (기존 파서 공유)
### Cloudflare Worker Bouncer (netbis-cf)
### Cloudflare Firewall Bouncer 재구축 (2026-04-25)
2026-04-23에 두 종류 bouncer (Worker + Firewall Rule) 모두 폐기됐다가 ([[../history/2026-04-23-netbis-bouncer-removal|history]]), 2026-04-25에 **Firewall Rule bouncer만 재구축**.
| 항목 | 값 |
|------|-----|
| 컨테이너 | jp1 incus `netbis-cf-bouncer` (10.253.103.33) |
| 바운서 이름 | netbis-cf (CrowdSec LAPI 등록) |
| LAPI 키 | `FR/PbHA110b6+m/gkByp9itNOaQMdbM8BwKR3DerCTI` |
| 설정 파일 | `/etc/crowdsec/bouncers/crowdsec-cloudflare-worker-bouncer.yaml` |
| 동작 | CrowdSec ban → Cloudflare Worker + Turnstile captcha |
| 적용 범위 | Netbis 계정 전체 6개 zone |
| 컨테이너 | jp1 incus `crowdsec` (LAPI와 동거. 별도 컨테이너 X) |
| 패키지 | `crowdsec-cloudflare-bouncer 0.3.0` (apt) |
| LAPI bouncer 이름 | `cs-cloudflare-bouncer-1777082222` (자동 생성) |
| 설정 파일 | `/etc/crowdsec/bouncers/crowdsec-cloudflare-bouncer.yaml` |
| origin filter | `[crowdsec, cscli]` — CAPI 30k+/lists 무시 (10k 한도 회피 핵심) |
| 적용 범위 | netbis 계정 전체 6개 zone, managed_challenge 액션 |
| CF 리소스 | IP List `crowdsec_managed_challenge` + 6 Zone Firewall Rule 자동 생성 |
| API token | Vault `secret/cloud/cloudflare-netbis``firewall_bouncer_token`, `firewall_bouncer_token_id` |
| Token 권한 | Account Firewall Access Rules Write, Account Rule Lists Write, 6 zone Firewall Services Write |
| 인증 방식 | Bearer token. global_api_key는 `Invalid request headers (6003)`로 거부 |
| 비용 | $0 (Free plan IP List + Firewall Rule 사용) |
기존 `cs-cf-worker-bouncer` (Kappa 계정용)와 별도 컨테이너로 분리 운영.
2026-04-23에 Worker Bouncer (`netbis-cf`) 도 폐기됐고 **2026-04-25 재구축에는 포함 안 됨** — Worker는 트래픽 비례 비용($14~50/월 추정)이라 origin filter로 회피 불가.
상세 history: [[../history/2026-04-25-netbis-cf-firewall-rebuild|2026-04-25 재구축]]
## Cloudflare 보안 설정