obsidian 정합성 정정 — bouncer 단일화 잔존 stale 정리
- infra/compute/infra-hosts.md: jp1 default 20→19, cs-cf-worker-bouncer 컨테이너 라인에서 제거 - services/bunnycdn-security.md: Edge Script 64811 / bloom filter / 국가차단 / Turnstile inouter-bunny 폐기 반영. 현재 layer (Bunny Shield + Rate Limit + 대역폭 한도) 중심 재작성 - infra/network/apisix.md: Edge Script 64811 attach 라인 폐기 표시 - infra/security/cloudflare.md: Workers 인벤토리 + Worker 라우트 + CF proxy 패턴 + cfb-manager 절 모두 폐기 반영 - infra/security/crowdsec-safeline.md: cs-cf-worker-bouncer 운영 중 문장 폐기 표시 - ops-agents/overview.md: Syn 영역 정의에서 폐기 자산 명시 - history/_index.md: 누락된 2026-04-25-netbis-npm-vector-msg-rewrite, 2026-04-26-bouncer-consolidation 등록 + frontmatter updated
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
---
|
||||
title: 인프라 호스트 및 네트워크
|
||||
updated: 2026-04-25 anomaly-detect 폐기 반영 (hp2 default 5→4)
|
||||
updated: 2026-04-26 bouncer 단일화 — jp1 default 20→19 (cs-cf-worker-bouncer 폐기) + hp2 default 5→4 (anomaly-detect 폐기 2026-04-25)
|
||||
tags: [infra, network, kr-zone, openwrt]
|
||||
---
|
||||
|
||||
@@ -219,7 +219,7 @@ db (proxysql, pgcat), kroki, mq (RabbitmqCluster CR), openmemory (mcp/ui/qdrant)
|
||||
|--------|---------|------------|------|
|
||||
| jp1 | agents | 15 | 모두 RUNNING |
|
||||
| jp1 | db | 1 | etcd-1 |
|
||||
| jp1 | default | 20 | RUNNING 18 + STOPPED 2 (baserow, iac-route) |
|
||||
| jp1 | default | 19 | RUNNING 17 + STOPPED 2 (baserow, iac-route) — cs-cf-worker-bouncer 폐기 2026-04-26 |
|
||||
| jp1 | monitoring | 2 | grafana, prometheus |
|
||||
| kr1 | default | 3 | brokkr, mariadb-2, postgres-2 |
|
||||
| kr1 | ops | 1 | heimdall (tofu 관리) |
|
||||
@@ -238,8 +238,8 @@ db (proxysql, pgcat), kroki, mq (RabbitmqCluster CR), openmemory (mcp/ui/qdrant)
|
||||
|
||||
**db 프로젝트** (1): etcd-1 (10.253.102.11)
|
||||
|
||||
**default 프로젝트** (20):
|
||||
- RUNNING 컨테이너: crowdsec (10.253.100.240), cs-cf-worker-bouncer (10.253.100.131), dev-web (10.253.102.169), **etcd** (10.253.101.233, 2026-04-06 신규), hey (10.253.103.80), infra-tool (10.253.100.183), **netbis-cf-bouncer** (10.253.103.33, 2026-04-03 신규), pricing-api (10.253.102.142), **socks5-proxy** (10.253.102.12, 2026-03-21 신규), ssh-test (10.253.102.82), sshpiper (10.253.100.34), telegram-web-client (10.253.102.124), tor-server (10.253.101.178), **vault** (10.253.101.58, 2026-03-24 신규 — K3s 이전 후 인프라 정본), voice-api (10.253.101.7)
|
||||
**default 프로젝트** (19):
|
||||
- RUNNING 컨테이너: crowdsec (10.253.100.240), dev-web (10.253.102.169), **etcd** (10.253.101.233, 2026-04-06 신규), hey (10.253.103.80), infra-tool (10.253.100.183), **netbis-cf-bouncer** (10.253.103.33, 2026-04-03 신규), pricing-api (10.253.102.142), **socks5-proxy** (10.253.102.12, 2026-03-21 신규), ssh-test (10.253.102.82), sshpiper (10.253.100.34), telegram-web-client (10.253.102.124), tor-server (10.253.101.178), **vault** (10.253.101.58, 2026-03-24 신규 — K3s 이전 후 인프라 정본), voice-api (10.253.101.7) _(cs-cf-worker-bouncer는 2026-04-26 bouncer 단일화로 폐기)_
|
||||
- RUNNING VM: gitea-runner (10.253.103.203, +docker0), juice-shop (10.253.100.202, +docker0), k8s (10.253.103.124, +flannel/cni0)
|
||||
- STOPPED: baserow (CONTAINER APP, 2026/01/05 마지막 시작), iac-route (CONTAINER, 2026/03/04)
|
||||
|
||||
|
||||
@@ -203,8 +203,8 @@ etcd 통합/분리 이력: [[2026-04-06-apisix-etcd-consolidation|history]]
|
||||
참고:
|
||||
- iron-kr / iron-jp 모두 `IgnoreQueryStrings: false` (통일)
|
||||
- iron-kr / iron-jp `BlockNoneReferrer: true`, iron-git 는 `false` (git smart HTTP 호환)
|
||||
- 모든 zone `EdgeRules: []` (Edge Rules 미사용, 모든 분기는 미들웨어 64811 안)
|
||||
- Edge Script 64811 `crowdsec-bouncer-middleware` 는 **iron-jp + iron-kr 두 풀존**에만 attach. iron-git 은 의도적 우회 (git pack 바이너리 보호 불가).
|
||||
- 모든 zone `EdgeRules: []` (Edge Rules 미사용)
|
||||
- ~~Edge Script 64811 `crowdsec-bouncer-middleware` attach~~: **2026-04-26 bouncer 단일화로 폐기.** 전 풀존 `MiddlewareScriptId: null` ([[../../history/2026-04-26-bouncer-consolidation|history]])
|
||||
- gitea.inouter.com 은 더 이상 iron-kr 가 아니라 iron-git 풀존 소속 (분리됨)
|
||||
|
||||
### DNS 참고
|
||||
|
||||
@@ -159,7 +159,7 @@ DNS 레코드 없음. zone 만 등록. 워커 라우트 + Turnstile 위젯 + cer
|
||||
|
||||
| Worker | 라우트 부착 zones | 비고 |
|
||||
|---|---|---|
|
||||
| **crowdsec-cloudflare-worker-bouncer** | actions, ironclad, keepanker, servidor | CrowdSec CF bouncer 본체. cs-cf-worker-bouncer (jp1) 가 168h 마다 secret rotate. 정본 [[crowdsec-safeline]] |
|
||||
| ~~**crowdsec-cloudflare-worker-bouncer**~~ | _(폐기)_ | **2026-04-26 bouncer 단일화로 Worker 스크립트 + KV namespace + 라우트 4개 모두 삭제.** [[../../history/2026-04-26-bouncer-consolidation\|history]] |
|
||||
| **ironclad-site** | ironclad.it.com (apex) | 정적 사이트, has_assets |
|
||||
| **cf-multisite** | `*.actions.it.com/*` | 라우팅 워커 |
|
||||
| chat-worker | (없음) | workers.dev only |
|
||||
@@ -173,16 +173,15 @@ DNS 레코드 없음. zone 만 등록. 워커 라우트 + Turnstile 위젯 + cer
|
||||
|
||||
| Zone | Pattern | Script |
|
||||
|---|---|---|
|
||||
| actions.it.com | `*actions.it.com/*` | crowdsec-cloudflare-worker-bouncer |
|
||||
| actions.it.com | `*.actions.it.com/*` | cf-multisite |
|
||||
| actions.it.com | `vultr.actions.it.com/*` | null (orphan, 미정리) |
|
||||
| actions.it.com | `linode.actions.it.com/*` | null (orphan, 미정리) |
|
||||
| ironclad.it.com | `ironclad.it.com/*` | ironclad-site |
|
||||
| ironclad.it.com | `*ironclad.it.com/*` | crowdsec-cloudflare-worker-bouncer |
|
||||
| keepanker.cv | `*keepanker.cv/*` | crowdsec-cloudflare-worker-bouncer |
|
||||
| servidor.it.com | `*servidor.it.com/*` | crowdsec-cloudflare-worker-bouncer |
|
||||
|
||||
inouter.com / anvil.it.com 에는 Worker 라우트 없음. DNS proxied=false 라 CF 엣지를 거치지 않으므로 enforce 불가 — 이들 zone 의 엣지 보호는 BunnyCDN 미들웨어 64811 이 단독 책임.
|
||||
> [!note] cs-cf-worker-bouncer 라우트 4개 폐기 (2026-04-26)
|
||||
> `*actions.it.com/*`, `*ironclad.it.com/*`, `*keepanker.cv/*`, `*servidor.it.com/*` Worker 라우트는 bouncer 단일화로 모두 제거. Worker 스크립트 + KV namespace + Turnstile 위젯 4개 함께 폐기. [[../../history/2026-04-26-bouncer-consolidation|history]]
|
||||
|
||||
inouter.com / anvil.it.com 에는 Worker 라우트 없음. DNS proxied=false 라 CF 엣지를 거치지 않으므로 enforce 불가. ~~BunnyCDN 미들웨어 64811 단독 책임~~ 도 2026-04-26 폐기 — 현재 이들 zone 엣지 IP 차단 layer 부재 (Bunny Shield WAF + Rate Limit + 풀존 BlockedIps 만 가능).
|
||||
|
||||
Worker Custom Domains (계정 레벨): 0건.
|
||||
|
||||
@@ -219,31 +218,18 @@ Vault 시크릿 잔여 (위젯 삭제됐지만 시크릿은 보존 — 재가동
|
||||
|
||||
| Zone | Proxy | 보호 |
|
||||
|---|---|---|
|
||||
| inouter.com / anvil.it.com | off | BunnyCDN 미들웨어 64811 단독 |
|
||||
| actions.it.com / ironclad.it.com | on | CF Worker (bouncer + cf-multisite / ironclad-site) |
|
||||
| keepanker.cv | on (Tunnel) | CF Tunnel + juiceshop 만 iron-kr-waf override |
|
||||
| inouter.com / anvil.it.com | off | _IP-list enforce 부재 (2026-04-26 BunnyCDN 미들웨어 64811 폐기 후). Bunny Shield WAF + Rate Limit + 풀존 BlockedIps 만 가능_ |
|
||||
| actions.it.com / ironclad.it.com | on | CF Worker (cf-multisite / ironclad-site). ~~bouncer~~ 폐기 2026-04-26 |
|
||||
| keepanker.cv | on (Tunnel) | CF Tunnel + juiceshop 만 iron-kr-waf override. ~~bouncer~~ 폐기 2026-04-26 |
|
||||
| servidor.it.com | on | ~~bouncer~~ 폐기 2026-04-26, 현재 별도 보호 layer 없음 |
|
||||
|
||||
## cfb-manager (CrowdSec CF Worker bouncer 관리 API)
|
||||
> [!warning] cs-cf-worker-bouncer + BunnyCDN 미들웨어 64811 폐기 (2026-04-26)
|
||||
> kappa zone 4개 (keepanker / actions / ironclad / servidor) + inouter / anvil 에서 CrowdSec 결정 enforce layer가 사라짐. CrowdSec ban은 현재 `netbis-cf-firewall` (netbis 6 zone) 만 enforce. 자세한 영향: [[../../history/2026-04-26-bouncer-consolidation|history]]
|
||||
|
||||
| 항목 | 값 |
|
||||
|---|---|
|
||||
| 위치 | K3s `default/cfb-manager` (`10.43.68.76:8000`) |
|
||||
| 구현 | Python FastAPI |
|
||||
| 기능 | bouncer 보호 도메인 추가/삭제, decision 조회, CF zone 동기화, bouncer 재시작 트리거 |
|
||||
| SSH 키 | K8s `default/cfb-ssh-key` (ed25519) |
|
||||
## ~~cfb-manager~~ (폐기 2026-04-26)
|
||||
|
||||
```bash
|
||||
BASE=http://cfb-manager.default.svc.cluster.local:8000
|
||||
curl $BASE/status # bouncer_running, pids, protected_domains
|
||||
curl $BASE/domains # 보호 중인 zone 상세
|
||||
curl $BASE/decisions # 현재 결정
|
||||
curl -X POST $BASE/domains/<zone> # zone 추가
|
||||
curl -X DELETE $BASE/domains/<zone> # zone 제거 (destructive — bouncer restart + widget rotate)
|
||||
```
|
||||
|
||||
**중요**: `DELETE /domains/<zone>` 는 단순 config 항목 제거가 아니라 bouncer restart 를 트리거하며, restart 가 모든 zone 의 widget 을 force-rotate 하고 제거된 zone 의 widget 을 destroy 한다. 외부에서 baked-in 으로 사용 중인 sitekey 가 있다면 동시에 깨진다.
|
||||
|
||||
BunnyCDN 미들웨어와는 무관. BunnyCDN 미들웨어 64811 의 bloom filter 동기화는 jp1 `infra-tool` 컨테이너 `/opt/crowdsec-bouncer/bouncer.py` (3분 delta + 매시 full sync) 가 담당.
|
||||
> [!warning] cs-cf-worker-bouncer 폐기와 함께 cfb-manager도 의미 상실
|
||||
> cs-cf-worker-bouncer 자체가 사라져 `bouncer_running` / `widget rotate` 등 cfb-manager의 핵심 기능이 동작하지 않음. K8s `default/cfb-manager` Deployment는 별도 정리 결정 필요 (보존 / 폐기). [[../../history/2026-04-26-bouncer-consolidation|history]]
|
||||
|
||||
## 관련 문서
|
||||
|
||||
|
||||
@@ -269,7 +269,7 @@ CrowdSec 공식 가이드 명시 사항 ([blog](https://www.crowdsec.net/blog/mi
|
||||
| 비용 | $0 (Free plan 영역, IP List + Firewall Rule). Worker bouncer 대비 비용 구조 우월 |
|
||||
| 한계 | CF 공식 deprecation 표기 ("isn't actively supported anymore"). 동작은 정상이나 향후 호환성 변화 가능 |
|
||||
|
||||
cs-cf-worker-bouncer (kappa 계정용)는 별도 컨테이너에서 그대로 운영. netbis는 비용 구조 차이로 firewall bouncer만 사용.
|
||||
~~cs-cf-worker-bouncer (kappa 계정용)는 별도 컨테이너에서 그대로 운영~~ — **2026-04-26 폐기**. 현재 LAPI 등록 bouncer는 본 항목(`cs-cloudflare-bouncer-1777082222`) 단 하나. [[../../history/2026-04-26-bouncer-consolidation|history]]
|
||||
|
||||
### ~~bunny-cdn-bouncer (BunnyCDN Edge Script)~~ — 폐기 (2026-04-26)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user