--- title: Cloudflare 서비스 updated: 2026-04-10 tags: [infra, cloudflare, cdn, dns] --- > 2026-04-10 전수 감사 (Outline `agent-qna` doc `51b963c3-b251-48b5-a57a-a2305959c470`) 결과 반영 + 정리 1차 (`nas.inouter.com`, `ironclad.jp.inouter.com`, `k8s.jp.inouter.com` 삭제). Syn 이 엣지 관점에서 소유. 일반 DNS 관리 협업은 Heimdall. ## 계정 - ID: `d8e5997eb4040f8b489f09095c0f623c` (kappa@inouter.com) - API 토큰: Vault `secret/cloud/cloudflare` (`api_token`, `email`) - **Turnstile 쓰기 권한 없음** — 현 토큰은 read-only. 신규 위젯은 CF 대시보드 수동 또는 별도 권한 토큰 필요. ## Zone 전수 (6개, 2026-04-10) | Zone | Zone ID | Status | Plan | NS | DNS rec | 비고 | |---|---|---|---|---|---|---| | **actions.it.com** | `dd7db273…` | active | Free | earl/raegan | 2 | apex+wildcard CNAME → BunnyCDN, **wildcard 가 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 zone**. 워커 라우트 + Turnstile 위젯만 살아 있음 | 총 60건 (servidor 제외). 별도 계정 [[netbis]] 의 6개 zone (fall-vip / psd777 등) 은 본 문서 범위 외 — netbis-cf-bouncer 가 별도로 관리. ## DNS 레코드 — zone 별 핵심 ### actions.it.com (2) | 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 (9) | Name | Type | Value | Proxied | |---|---|---|---| | `anvil.it.com` | CNAME | `iron-jp.b-cdn.net` | off | | `*.anvil.it.com` | CNAME | `iron-jp.b-cdn.net` | off | | `n8n.anvil.it.com` | CNAME | `iron-jp.b-cdn.net` | off | | `kroki.anvil.it.com` | CNAME | `k3s.inouter.com` | off | | `ssh.anvil.it.com` | A | `139.162.71.52` | off | | MX×3 (Cloudflare Email Routing), DKIM TXT 1건 | | | | ### inouter.com (32) — 핵심 | Name | Type | Value | Proxied | 메모 | |---|---|---|---|---| | `*.inouter.com` | CNAME | `k3s.inouter.com` | off | LAN 직통 (BunnyCDN 우회) | | `k3s.inouter.com` | A | `192.168.9.53` | off | Traefik MetalLB VIP | | `kr.inouter.com` | A | `220.120.65.245` | off | OpenWrt 공인 IP | | `jp.inouter.com` | A | `42.125.196.116` | off | jp1 | | `derp.inouter.com` | A | `42.125.196.116` | off | jp1 derp | | `gitea.inouter.com` | CNAME | `iron-git.b-cdn.net` | off | 별도 풀존 (미들웨어 우회) | | `n8n.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | `jarvis.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | `vault.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | `outline.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | `telegram-webhook.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | `desk-api.inouter.com` | A | `172.233.93.180` | ✅ | osaka 직통, CF proxied | | `sftp.inouter.com` | A | `220.120.65.245` | ✅ | OpenWrt 직통, CF proxied | | `git.inouter.com` | A | `52.79.45.166` | off | relay4wd Lightsail | | `teleport.inouter.com` | A | `52.79.45.166` | off | relay4wd Lightsail | | `twilio.jp.inouter.com` | A | `172.233.93.180` | off | | `bunny.mcp.inouter.com` | CNAME | `k3s.inouter.com` | off | | `vl.inouter.com` | CNAME | `k3s.inouter.com` | off | [[victorialogs|VictoriaLogs]] | | `emulator.api.inouter.com` | CNAME | `k3s.inouter.com` | off | | `linode.api.inouter.com` | CNAME | `k3s.inouter.com` | off | | `namecheap.api.inouter.com` | CNAME | `k3s.inouter.com` | off | | `vultr.api.inouter.com` | CNAME | `k3s.inouter.com` | off | | `email.inouter.com` | CNAME | `mailgun.org` | off | | MX×2 Mailgun, TXT (SPF/DMARC/DKIM/google verification) | | | | > **이전 메모(updated 2026-04-04)는 폐기**: jarvis/telegram-webhook/vault/n8n 이 `actions.b-cdn.net` 가리킨다는 기록은 dead 풀존을 가리키는 구식 정보. 실제 정본은 위 표와 같이 모두 `iron-kr.b-cdn.net`. ### ironclad.it.com (14) | Name | Type | Value | Proxied | |---|---|---|---| | `ironclad.it.com` | A | `172.233.93.180` | ✅ | | `*.ironclad.it.com` | A | `172.233.93.180` | ✅ | | MX×2 Mailgun, AWS SES DKIM CNAME×3, TXT (SPF/DMARC/google) | | | | > ironclad.it.com 은 **BunnyCDN 풀존을 거치지 않음**. CF proxied A 로 osaka 172.233.93.180 직통. 보호는 CF Worker (`ironclad-site` apex + bouncer wildcard) 단독. ### keepanker.cv (3) | Name | Type | Value | Proxied | |---|---|---|---| | `keepanker.cv` | CNAME | `f1aa79f2-….cfargotunnel.com` | ✅ | | `*.keepanker.cv` | CNAME | `f1aa79f2-….cfargotunnel.com` | ✅ | | `juiceshop.keepanker.cv` | CNAME | `iron-kr-waf.b-cdn.net` | off | apex/wildcard 는 Cloudflare Tunnel (cfargotunnel). juiceshop 은 BunnyCDN iron-kr-waf 로 override. ### servidor.it.com (0) DNS 레코드 **없음**. zone 만 등록. 워커 라우트 + Turnstile 위젯은 살아있음 → 트래픽 자체가 불가능한데 보안 자원만 회전 중. zone 정리 또는 DNS 레코드 추가 결정 필요. ## Workers (9개) | Worker | 라우트 부착 zones | 비고 | |---|---|---| | **crowdsec-cloudflare-worker-bouncer** | actions, anvil, inouter, ironclad, keepanker, servidor (전 6 zone) | CrowdSec CF bouncer 본체. cs-cf-worker-bouncer (jp1) 가 168h 마다 secret rotate. 정본 [[crowdsec-safeline]] | | **ironclad-site** | ironclad.it.com (apex) | 정적 사이트, has_assets | | **cf-multisite** | `*.actions.it.com/*` | 라우팅 워커 | | chat-worker | (없음) | workers.dev only | | cloud-instances-api | (없음) | 〃 | | cloud-orchestrator | (없음) | 〃 | | telegram-ai-support | (없음) | 〃 | | telegram-cli-web | (없음) | 〃 | | telegram-summary-bot | (없음) | 〃 | ### Worker 라우트 (zone 별) | 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 | | anvil.it.com | `*anvil.it.com/*` | crowdsec-cloudflare-worker-bouncer | | inouter.com | `*inouter.com/*` | crowdsec-cloudflare-worker-bouncer | | 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 | > Worker Custom Domains (계정 레벨): **0건**. ## Turnstile 위젯 (8개) | Sitekey | 이름 | mode | 도메인 | 역할 | |---|---|---|---|---| | `0x4AAAAAABvmO8BKc1ss5d-S` | `crowdsec-captcha` | managed | actions / anvil / charon.my / ironclad / keepanker / n8n.my / servidor / subin.my | multi-domain 운영용 (8 도메인). 2025-08-29 생성 | | `0x4AAAAAACbmaudAjITah7y7` | `inouter` | managed | anvil.it.com **만** | 2026-02-13 생성. **이름과 도메인 불일치 → legacy/orphan 후보** | | `0x4AAAAAAC2cnEA797HwesRX` | `crowdsec-cloudflare-worker-bouncer-widget` | managed | anvil.it.com | bouncer 자동 (168h rotation) | | `0x4AAAAAAC2cnZzIyNRayTcG` | 〃 | managed | servidor.it.com | bouncer 자동 | | `0x4AAAAAAC2cntUlRC3KKMKG` | 〃 | managed | inouter.com | bouncer 자동. **현재 BunnyCDN 미들웨어 64811 이 사용 중** | | `0x4AAAAAAC2cn8bzKBex_ihU` | 〃 | managed | actions.it.com | bouncer 자동 | | `0x4AAAAAAC2coNrK9rRq7S_b` | 〃 | managed | keepanker.cv | bouncer 자동 | | `0x4AAAAAAC2coU0PB8O8oJqY` | 〃 | managed | ironclad.it.com | bouncer 자동 | bouncer 자동 위젯 6개는 `cs-cf-worker-bouncer` 가 rotate. **수동 편집 금지** — 다음 rotate 때 덮어써짐. ## 특이사항 ### Orphan / dead 자원 | 항목 | 내용 | |---|---| | **servidor.it.com zone** | DNS 레코드 0건. 워커 라우트 + Turnstile 위젯만 살아있음. 2026-04-10 kappa 판정 "죽은 도메인 아님" → **유지**. | | ~~`nas.inouter.com → actions.b-cdn.net`~~ | **2026-04-10 삭제 완료** (cf-audit-cleanup-1). dead 풀존 참조였고 Synology 는 LAN 전용. | | **`*.actions.it.com → actions.b-cdn.net`** | 와일드카드 자체가 dead 풀존 가리킴. proxied=on 이라 CF 가 어디로 보내는지 의문. 일부 서브가 5xx 가능. **미정리** (영향 평가 후 별건). | | **Worker route `vultr.actions.it.com/*`, `linode.actions.it.com/*`** | `script: null`. 등록만 되고 워커 미연결. (linode.actions.it.com 자체는 BunnyCDN iron-jp 호스트네임으로도 있음 — 중복 의도?) **미정리**. | | **Turnstile `inouter` (sitekey `…CbmaudAjITah7y7`)** | 이름은 inouter 인데 허용 도메인은 anvil.it.com 단일. legacy 후보. **미정리** (CF 토큰 read-only 라 대시보드 수동 필요). | ### 사설 IP 공개 DNS 노출 — 2026-04-10 정리 완료 | 레코드 | 값 | 상태 | |---|---|---| | ~~`ironclad.jp.inouter.com`~~ | ~~A `10.19.228.193`~~ | **2026-04-10 삭제** (cf-audit-cleanup-1) | | ~~`k8s.jp.inouter.com`~~ | ~~A `10.253.103.124`~~ | **2026-04-10 삭제** (cf-audit-cleanup-1) | 향후 사설 IP 가 필요하면 Tailscale Magic DNS 또는 split-horizon (예: jp.inouter.com 내부 zone) 으로 처리. ### CF proxy on/off 패턴 (중요) - **inouter.com / anvil.it.com**: 거의 전부 `proxied: false` — CF 는 DNS 만, 트래픽은 BunnyCDN 또는 LAN 직통. CF Worker bouncer 라우트는 등록되었으나 **DNS 가 proxied=false 면 CF 엣지를 거치지 않음** → bouncer 무효. - **actions.it.com / ironclad.it.com**: apex/wildcard 모두 `proxied: true` — CF Worker 효과적으로 enforce. - **keepanker.cv**: CF Tunnel. > **함의**: `inouter.com` / `anvil.it.com` 의 보호는 **BunnyCDN 미들웨어 64811 이 단독 책임**. CF Worker bouncer 는 라우트 등록 + Turnstile 위젯 회전만 하고 실제 enforcement 는 안 함. 의도된 design 인지 (BunnyCDN 우선) 또는 누락인지 결정 필요. design 이라면 inouter / anvil 의 CF Worker 라우트는 제거 가능. ### 정책 일관성 - iron-kr `IgnoreQueryStrings: true` vs iron-jp `IgnoreQueryStrings: false` — 같은 미들웨어 64811 공유인데 캐시 키 정책이 다름. iron-jp 트래픽이 미미해 영향 작지만 통일이 운영 단순화. ## cfb-manager (CrowdSec CF Worker bouncer 관리 API) | 항목 | 값 | |---|---| | 위치 | K3s `default/cfb-manager` (10.43.68.76:8000) | | 구현 | Python FastAPI | | 기능 | bouncer 보호 도메인 추가/삭제, decision 조회, CF zone 동기화, bouncer 재시작 트리거 | | SSH 키 | K8s `default/cfb-ssh-key` 시크릿 (ed25519, 2026-04-09 재생성) | ```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/sync?auto_apply=true # CF 의 모든 zone 을 보호 목록 동기화 ``` > **BunnyCDN 미들웨어와는 무관**. BunnyCDN 미들웨어 64811 의 bloom filter 동기화는 jp1 `infra-tool` 컨테이너 `/opt/crowdsec-bouncer/bouncer.py` (3분 delta + 매시 full sync) 가 담당. ## 참조 - 전수 감사 정본 (대화 로그): Outline `agent-qna` doc `51b963c3-b251-48b5-a57a-a2305959c470` (2026-04-10) - 워크스페이스 런북: `~/syn/cloudflare/README.md` - BunnyCDN 매핑: [[bunnycdn-security]] - CrowdSec/Worker bouncer: [[crowdsec-safeline]] - 별도 계정: [[netbis]] (Netbis 계정 6 zone, 별도 cs-cf-worker-bouncer) - DNS 프리셋: cloudflare, aws, google, github, bunnycdn ## 관련 문서 - [[netbis]] — Netbis 계정 Cloudflare (별도) - [[cf-multisite]] — `*.actions.it.com` 라우팅 워커 - [[crowdsec-safeline]] — CrowdSec CF Worker Bouncer 연동 - [[bunnycdn-security]] — BunnyCDN 엣지 보안