diff --git a/history/2026-07-21-cf-zone-cleanup.md b/history/2026-07-21-cf-zone-cleanup.md new file mode 100644 index 0000000..5bf6aae --- /dev/null +++ b/history/2026-07-21-cf-zone-cleanup.md @@ -0,0 +1,36 @@ +--- +title: 2026-07-21 CF zone 정리 (actions.it.com, servidor.it.com 삭제) +updated: 2026-07-21 +tags: [cloudflare, dns, cleanup] +--- + +## 배경 + +CF ECH 상태 재확인(`GET /zones/{id}/settings/ech`) 하던 중 6개 zone 중 `actions.it.com`, `servidor.it.com` 두 zone의 API 응답 `status`가 `active`가 아닌 `moved`로 나온 걸 발견. kappa 확인 결과 두 zone 모두 삭제 대상으로 확정. + +## 조사 + +- `dig NS`로 확인한 결과 두 도메인 모두 네임서버가 이미 `earl/raegan.ns.cloudflare.com`에서 `ns1/ns2.lander.d.parity.domains`(파킹/랜딩 서비스로 추정)로 이관되어 있었음 +- CF zone API `modified_on` 값으로 이관 시점 확인: **2026-07-18**, 즉 삭제 작업 3일 전 — 이미 실사용이 끊긴 상태였고, zone 삭제로 인한 신규 트래픽 영향은 없음 +- `activation_failure_reason: "ns_delegated_from_provider"` — CF도 자체적으로 NS 이탈을 감지한 상태였음 + +## 발견: actions.it.com은 실서비스 기반 도메인이었음 + +`services/cf-multisite.md` 확인 결과 `actions.it.com`은 Cloudflare Workers + R2 기반 멀티테넌트 정적 사이트 호스팅(`cf-multisite`)의 서빙 도메인이었음 (`demo.actions.it.com`, `test-customer.actions.it.com` 등). 2026-07-18 NS 이관 시점부터 이미 이 서브도메인들은 해석 불가 상태였을 것으로 추정 — zone 삭제가 새로 끊은 게 아니라 기존에 끊겨 있던 걸 확인 사살한 것. Worker 스크립트(`cf-multisite`)와 R2 버킷(`multisite-bucket`)은 계정에 그대로 남아있어 새 도메인 연결 시 복구 가능. + +## 수행 + +1. Cloudflare API `DELETE /zones/{id}` 로 두 zone 삭제 (global_api_key 인증, `secret/cloud/cloudflare`) + - `actions.it.com` (`dd7db27346eeee98f2fd766b9095f0f9`) + - `servidor.it.com` (`a6e1a3f179dfb04520734a55a5759abc`) +2. 삭제 후 계정 zone 목록 재조회로 4개(anvil/inouter/ironclad/keepanker) 정상 유지 확인 +3. `infra/security/cloudflare.md` — zone 테이블, DNS 레코드 섹션, Worker 라우트 테이블, Turnstile 도메인 목록, CF proxy on/off 패턴 테이블에서 두 zone 관련 행 정리 +4. `services/cf-multisite.md` — 기반 도메인 소실 경고 추가 + +## 후속 필요 + +- [ ] `cf-multisite` 서비스를 재개할지 결정 필요 — 재개 시 새 도메인 매핑 + Worker 라우트 재설정 +- [ ] `cf-multisite` Worker 스크립트 자체는 계정에 남아있음 — 재사용 안 할 거면 별도 삭제 검토 +- [ ] Turnstile `crowdsec-captcha` 위젯의 도메인 목록에서 actions/servidor 정리 (위젯 자체는 유지, 목록 정리만 남음) + +수행: kappa (직접, CF API) diff --git a/infra/security/cloudflare.md b/infra/security/cloudflare.md index fc92b7b..c2d0bf6 100644 --- a/infra/security/cloudflare.md +++ b/infra/security/cloudflare.md @@ -1,9 +1,11 @@ --- title: Cloudflare 서비스 -updated: 2026-04-26 bouncer 단일화로 Turnstile 위젯 6개 + Worker/KV 정리 반영 +updated: 2026-07-21 actions.it.com, servidor.it.com zone 삭제 반영 tags: [infra, cloudflare, cdn, dns] --- +> [!note] Syn 에이전트는 2026-07-21 decommission됨 ([[../../ops-agents/overview|ops-agents/overview]] 참고). 아래 "Syn 소유" 서술은 재구성 전까지 kappa가 직접 관리. + Syn 이 엣지 관점에서 소유. 일반 DNS 관리 협업은 Heimdall. ## 계정 @@ -71,24 +73,18 @@ Syn 이 엣지 관점에서 소유. 일반 DNS 관리 협업은 Heimdall. | Zone | Zone ID | Status | Plan | NS | DNS rec | 비고 | |---|---|---|---|---|---|---| -| **actions.it.com** | `dd7db273…` | active | Free | earl/raegan | 2 | apex+wildcard CNAME → BunnyCDN. `*.actions.it.com → actions.b-cdn.net` 는 dead 풀존 가리킴 (미정리) | | **anvil.it.com** | `742f4c98…` | active | Free | earl/raegan | 9 | apex/wildcard CNAME → iron-jp, ssh.anvil.it.com A, Cloudflare Email Routing | | **inouter.com** | `cd84743d…` | active | Free | earl/raegan | 32 | 메인 zone. 와일드카드 → k3s.inouter.com (LAN), 다수 서브가 iron-kr / iron-git 으로 분기 | | **ironclad.it.com** | `bc8761b3…` | active | Free | earl/raegan | 14 | apex+wildcard A `172.233.93.180` (proxied), Mailgun MX, AWS SES DKIM | | **keepanker.cv** | `118ac337…` | active | Free | lochlan/olivia | 3 | apex/wildcard → Cloudflare Tunnel (`cfargotunnel.com`), juiceshop CNAME → iron-kr-waf | -| **servidor.it.com** | `a6e1a3f1…` | active | Free | earl/raegan | 0 | DNS 0건 orphan. cert-manager wildcard + CrowdSec bouncer + Turnstile 위젯은 세팅된 상태 (배포 준비용 유지) | 별도 계정 [[netbis]] 의 6개 zone 은 본 문서 범위 외 — netbis-cf-bouncer 가 별도로 관리. +> [!warning] actions.it.com, servidor.it.com zone 삭제 (2026-07-21) +> 두 도메인 모두 2026-07-18 네임서버가 Cloudflare(earl/raegan)에서 `ns1/ns2.lander.d.parity.domains`(파킹/랜딩 서비스로 추정)로 이미 이관된 상태였음 — 트래픽 영향 없이 CF zone API로 삭제. zone 삭제로 첨부된 DNS 레코드·Worker 라우트도 함께 사라짐. 상세: [[../../history/2026-07-21-cf-zone-cleanup|history]] + ## DNS 레코드 — zone 별 핵심 -### actions.it.com - -| Name | Type | Value | Proxied | -|---|---|---|---| -| `actions.it.com` | CNAME | `iron-kr.b-cdn.net` | ✅ | -| `*.actions.it.com` | CNAME | `actions.b-cdn.net` (dead 풀존) | ✅ | - ### anvil.it.com | Name | Type | Value | Proxied | @@ -152,17 +148,13 @@ ironclad.it.com 은 **BunnyCDN 풀존을 거치지 않음**. CF proxied A 로 os apex/wildcard 는 Cloudflare Tunnel. juiceshop 은 BunnyCDN iron-kr-waf 로 override. -### servidor.it.com - -DNS 레코드 없음. zone 만 등록. 워커 라우트 + Turnstile 위젯 + cert-manager wildcard cert 는 세팅되어 있으며 배포 준비 상태로 유지. - ## Workers | Worker | 라우트 부착 zones | 비고 | |---|---|---| | ~~**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/*` | 라우팅 워커 | +| ~~**cf-multisite**~~ | _(라우트 없음)_ | actions.it.com zone 삭제(2026-07-21)로 라우트 소실. 스크립트 자체는 계정에 남아있음 — 재사용 안 하면 별도 정리 | | chat-worker | (없음) | workers.dev only | | cloud-instances-api | (없음) | workers.dev only | | cloud-orchestrator | (없음) | workers.dev only | @@ -174,9 +166,6 @@ DNS 레코드 없음. zone 만 등록. 워커 라우트 + Turnstile 위젯 + cer | Zone | Pattern | Script | |---|---|---| -| 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 | > [!note] cs-cf-worker-bouncer 라우트 4개 폐기 (2026-04-26) @@ -210,22 +199,21 @@ Vault 시크릿 잔여 (위젯 삭제됐지만 시크릿은 보존 — 재가동 ## 특이사항 -- **`*.actions.it.com → actions.b-cdn.net`** — 와일드카드가 dead 풀존 가리킴. 일부 서브가 5xx 가능. 미정리 (영향 평가 후 별건) -- **Worker routes `vultr.actions.it.com/*`, `linode.actions.it.com/*`** — `script: null` orphan. 미정리 +- ~~`*.actions.it.com → actions.b-cdn.net` dead 풀존~~ — 2026-07-21 actions.it.com zone 삭제로 해소 +- ~~Worker routes `vultr.actions.it.com/*`, `linode.actions.it.com/*` orphan~~ — 2026-07-21 actions.it.com zone 삭제로 해소 - ~~**Turnstile `inouter` legacy**~~ — 2026-04-26 정리 완료 -- **Turnstile `crowdsec-captcha` (8 도메인)** — `charon.my`, `n8n.my`, `subin.my` 등 사용처 미확인 → 폐기 보류 +- **Turnstile `crowdsec-captcha`** — 도메인 목록에서 `actions`, `servidor` 는 2026-07-21 zone 삭제로 실사용 종료 (위젯 자체는 나머지 6개 도메인용으로 유지, 목록 정리는 별건) ### CF proxy on/off 패턴 | Zone | Proxy | 보호 | |---|---|---| | 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 | +| ironclad.it.com | on | CF Worker (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 없음 | > [!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]] +> kappa zone (keepanker / ironclad) + inouter / anvil 에서 CrowdSec 결정 enforce layer가 사라짐. CrowdSec ban은 현재 `netbis-cf-firewall` (netbis 6 zone) 만 enforce. 자세한 영향: [[../../history/2026-04-26-bouncer-consolidation|history]] ## ~~cfb-manager~~ (폐기 2026-04-26) @@ -235,7 +223,7 @@ Vault 시크릿 잔여 (위젯 삭제됐지만 시크릿은 보존 — 재가동 ## 관련 문서 - [[netbis]] — Netbis 계정 Cloudflare (별도) -- [[cf-multisite]] — `*.actions.it.com` 라우팅 워커 +- [[cf-multisite]] — `*.actions.it.com` 라우팅 워커 (2026-07-21 zone 삭제로 라우트 소실, 스크립트만 잔존) - [[crowdsec-safeline]] — CrowdSec CF Worker Bouncer 연동 - [[bunnycdn-security]] — BunnyCDN 엣지 보안 - [[nas-storage]] — Synology NAS + `nas.inouter.com` reverse proxy diff --git a/services/cf-multisite.md b/services/cf-multisite.md index 8c86d07..701c1b7 100644 --- a/services/cf-multisite.md +++ b/services/cf-multisite.md @@ -1,9 +1,12 @@ --- title: CF Multisite (정적 사이트 호스팅) -updated: 2026-03-28 +updated: 2026-07-21 actions.it.com zone 삭제로 서비스 중단 반영 tags: [service, hosting, cloudflare, r2] --- +> [!warning] 기반 도메인 actions.it.com 소실 (2026-07-21) +> `actions.it.com` 네임서버가 2026-07-18 Cloudflare에서 이탈했고(파킹 서비스로 추정), 2026-07-21 CF zone 자체도 삭제됨. 아래 `*.actions.it.com` 서브도메인 전부 이제 해석 불가 — Worker 라우트도 함께 소실. Worker 스크립트(`cf-multisite`)와 R2 버킷(`multisite-bucket`)은 그대로 남아있어 새 도메인에 재연결하면 복구 가능. 상세: [[../history/2026-07-21-cf-zone-cleanup|history]] + ## 개요 Cloudflare Workers + R2 기반 멀티테넌트 정적 사이트 호스팅 플랫폼. Gitea repo에 push하면 자동으로 R2에 업로드되고, Workers가 서브도메인으로 서빙.