Files
obsidian/infra/cloudflare.md
heimdall 9d71167772 infra: nas.inouter.com Traefik 리버스 프록시 (LAN-only) 복원
- lan-proxies ns 신설, selector-less Service + EndpointSlice → 192.168.9.100:5000
- IngressRoute web→websecure redirect + websecure tls (wildcard-inouter-tls)
- 2026-04-10 cf-audit-cleanup-1 의 nas.inouter.com 삭제 후 LAN-only 복원
- ExternalName 은 IP 미지원이라 동등 K8s-native 패턴(EndpointSlice) 사용

검증: curl --resolve nas.inouter.com:443:192.168.9.53 → 200 DSM 로그인
2026-04-10 09:11:22 +09:00

12 KiB
Raw Blame History

title, updated, tags
title updated tags
Cloudflare 서비스 2026-04-10
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
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 전용. → 같은 날 Heimdall 이 K3s lan-proxies/nas (Traefik IngressRoute) 로 LAN-only 복원, *.inouter.com → k3s.inouter.com (192.168.9.53) 폴백 활용. 상세 [[nas-storage#DSM Reverse Proxy — nas.inouter.com (2026-04-10)]]
*.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 재생성)
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

관련 문서