Commit Graph

203 Commits

Author SHA1 Message Date
kaffa
e68977a9d3 infra: 도메인 경계 정본 신규 (netbis vs ironclad cross-domain)
- infra/domain-boundaries.md 신규 — 두 영역 자산/계정/책임 분리 + cyclic 데이터 흐름 + 자산 매핑 + 추적 시 주의사항
- infra/_index.md에 도메인 경계 절 추가
- 기존 정본들(services/netbis, infra/security/crowdsec-safeline, services/bunnycdn-security 등)이 흩어져 갖던 cross-domain 정보의 단일 진입점

핵심 사실:
- netbis CF account != kappa CF account (별개)
- NPM 6대 origin은 netbis 자산, vl/CrowdSec/netbis-cf-firewall은 ironclad 인프라
- zlambda는 양 영역 다리 (Tailscale + Linode public IP 보유)
- netbis-cf-firewall은 ironclad 컨테이너 동거하지만 netbis CF API token으로 push
2026-04-27 07:38:47 +09:00
kaffa
d25dc3e52f 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
2026-04-26 10:33:48 +09:00
kaffa
560dde3f88 cloudflare: Turnstile 위젯 6개 + Edge Script 64811 정리 추기
- Turnstile 4개 (cs-cf-worker-bouncer-widget): 삭제
- Turnstile inouter (legacy orphan): 삭제
- Turnstile inouter-bunny-middleware: 삭제 (BunnyCDN 미들웨어 64811과 함께)
- Edge Script 64811: DELETE /compute/script/64811 HTTP 204
  - 4개 풀존 (iron-jp/iron-kr/iron-kr-waf/iron-git) MiddlewareScriptId null 자동 정리 확인
- 보류: Turnstile crowdsec-captcha (8 도메인 사용처 추적 미완)
- bouncer 단일화 history에 Syn 회신 + Turnstile/Edge Script 추가 정리 결과 추기
2026-04-26 10:27:02 +09:00
heimdall
53172c06e8 bouncer 단일화: netbis-cf-firewall만 유지, 나머지 3종(cs-cf-worker/apisix-waf/bunny-cdn) 폐기 2026-04-26 09:55:55 +09:00
heimdall
f733dd574a netbis: NPM Vector _msg 재합성 (proxy_v2 → nginx combined) — child-nginx-logs unparsed 84% 해결 2026-04-25 15:17:01 +09:00
kaffa
46cb3236d3 deprecate anomaly-detect (오탐 다수로 인스턴스까지 제거)
원인: Grok-4-fast agentic 분석기가 더미 IP(1.1.1.1, 1.2.3.4 시퀀스),
Cloudflare 엣지 IP(172.70.x), 자체 Linode IDC 대역(45.79.x)을
path-enumeration으로 오탐 ban. 같은 기간 hub 시나리오는 진짜 스캐너
1건(India SoloRDP)을 정확히 잡음.

작업:
- infra/platform/anomaly-detect.md → deprecated stub
- history/2026-04-25-anomaly-detect-removal.md 신규 (폐기 사유, 재가동 조건 정리)
- crowdsec-safeline.md acquisition 다이어그램에서 anomaly-detect 분기 제거
- infra/compute/infra-hosts.md hp2 default 5→4 갱신
- infra/platform/_index.md, history/_index.md 인덱스 갱신
- infra/security/vault.md apps 목록에서 항목 제거 (apps/anomaly-detect 경로는 비어있음, 유지)

보존:
- Vault secret/ai/openrouter (다른 서비스 공용 가능성)
- Gitea kaffa/anomaly-detect repo (재구축 reference)
2026-04-25 15:00:13 +09:00
kaffa
ffdabc994b crowdsec: profile current state, distributed DDoS scenario notes, bouncer action mapping
- profile.yaml is ban-only — captcha/throttle decision은 emit 안 됨
- Hub 분산 DDoS 시나리오 (http-ddos-by-ASN/cn) 도입 시 profile 분기 필수
- cs-cf-worker-bouncer: default_action captcha (Turnstile)
- netbis-cf-firewall: default_action managed_challenge (6 zone)
- 두 bouncer 모두 LAPI decision type 무관하게 캡챠 페이지로 응답
2026-04-25 12:59:49 +09:00
kaffa
e5c6b4deab 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로 회피 불가 (트래픽 비례 비용)
이라 재구축 안 함.
2026-04-25 12:43:47 +09:00
kaffa
102da9c2fe cloudflare: Pseudo IPv4 (Class E 240/4) 정리 — Netbis 관찰 기반
- infra/security/cloudflare.md: Pseudo IPv4 섹션 신규 (동작 원리·모드·함의·오해 주의)
- services/netbis.md: client_ip 의미에서 부정확한 '254.x 범위' → '240.0.0.0/4' 정정, CF docs 링크
- history: 2026-04-24 CF Pseudo IPv4 정체 규명 (CGNAT 오진 교훈 포함)
2026-04-24 08:11:44 +09:00
heimdall
461ee81839 netbis: NPM 6대 Vector→zlambda→VL 로그 수집 파이프라인 구축 2026-04-23 15:23:37 +09:00
heimdall
bf33c043f9 netbis: CF 바운서 전량 제거 (netbis-cf + netbis-cf-firewall) 2026-04-23 13:52:59 +09:00
heimdall
29c17065b2 netbis: crowdsec-cloudflare-bouncer (firewall rule) 추가 — worker bouncer와 병행 2026-04-23 13:27:23 +09:00
heimdall
738a60b093 longhorn: 1.8.2 -> 1.11.1 업그레이드 (2026-04-23) 2026-04-23 09:06:21 +09:00
kaffa
08313cd4d4 infra/platform/ollama: add GPU and VRAM details
GTX 1080 Ti(11GB VRAM, CUDA 12.4) GPU 가속 확인. gemma4:e4b 로드 시
10GB 점유(89%), 동시 로드 한계·GPU 공유 제약·36 tok/s 실측치 추가.
infra-hosts.md §GPU 링크.
2026-04-21 12:29:11 +09:00
kaffa
6a54e8bbc3 add infra/platform/ollama.md
kr1 호스트의 Ollama 런타임 정본 기록. Tailscale 11434 엔드포인트,
qwen3:4b / gemma4:e4b 모델, 2026-04-21 tool-calling 검증 내역 포함.
2026-04-21 11:48:37 +09:00
kaffa
0fbce86cfc outline: route via APISIX (port 9443, ApisixRoute CRD), not Traefik
Switched Bunny iron-kr-nowaf origin from :443 (Traefik) to :9443 (APISIX,
no SafeLine plugin) since APISIX plugins are per-route. Used existing
:9443 path (juiceshop already there) instead of opening a new OpenWrt
port. Outline route managed via ApisixTls + ApisixRoute CRDs because
admin-API direct PUTs get swept by apisix-ingress-controller as orphans.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 10:08:16 +09:00
kaffa
a20c68e3a1 outline: split to iron-kr-nowaf pull zone, restore iron-kr WAF rules
Created new Bunny pull zone iron-kr-nowaf (ID 5720695) without Shield to
host outline.inouter.com exclusively. Uploaded *.inouter.com wildcard cert
from cert-manager since Bunny LE auto-provision kept returning invalid.
Restored 7 CRS rules (942100,932230/235/260/370/380,933160) on iron-kr
Shield so vault/n8n/telegram-webhook/jarvis regain protection.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 09:32:11 +09:00
kaffa
782fff8fe9 k3s: document kr2 kubelet memory reserve as intentional OOM mitigation
Ties the existing /etc/rancher/k3s/config.yaml kubelet-arg (system-reserved=8Gi,
eviction-hard<2Gi) to the 2026-04-19 OOM freeze incident so it won't be
flagged as mystery asymmetry in future audits. Closes item 6 of 2026-04-20
K3s improvements.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-21 07:44:09 +09:00
kaffa
5d0632cb68 backup: install Velero v1.18 (chart 12.0.0) + daily-full schedule to R2 velero-backup 2026-04-20 10:12:21 +09:00
kaffa
a2884a60d8 backup: add k8s VolumeSnapshot API (snapshot-controller v8.5.0) as Velero prereq; fix democratic-csi restart loop 2026-04-20 09:06:48 +09:00
kaffa
7d58e159af metallb: raise controller mem limit 64Mi→256Mi (OOM fix) 2026-04-20 08:20:39 +09:00
kaffa
dc18ec8bac infra-hosts: Longhorn 자동 복구 설정 (node-down auto-delete + replica-auto-balance) 2026-04-19 15:05:00 +09:00
kaffa
620abeae79 infra-hosts: Descheduler 설치 기록 (kr2 OOM freeze 대응) 2026-04-19 14:36:03 +09:00
kaffa
afd2935ea4 infra/network: add multus.md (Multus CNI + storage-205 NAD)
Document Multus CNI + Whereabouts IPAM deployment on k3s, including:
- k3s path peculiarities (symlink-based multicall binary vs thick daemonset chroot)
- /opt/cni/bin real-directory workaround with all plugin binaries
- multus-shim/passthru symlinks to k3s CNI dir
- storage-205 NAD for Longhorn 2.5G storage network (ens2, MTU 9000, whereabouts .240-.254)
2026-04-19 13:39:34 +09:00
kappa
c1a9e84127 crowdsec: Vector _msg 표준 nginx combined 통일, 커스텀 파서 제거
- Vector transform에서 Traefik JSON → 표준 nginx combined _msg 변환
- APISIX 서울도 _msg 재구성 (비표준 → 표준 nginx combined)
- custom/apisix-logs 파서 제거, nginx-logs 하나로 통일
- CrowdSec VictoriaLogs Traefik acquisition type: nginx로 변경
2026-04-17 07:30:22 +09:00
kappa
e9ca6c7917 crowdsec: Discord 알림 설정 추가 (2026-04-17) 2026-04-17 07:12:17 +09:00
kappa
ba8b4b160e crowdsec: 화이트리스트/파서 설정 변경사항 반영 (2026-04-17)
- crowdsecurity/whitelists 파서 설치 (192.168.9.1 false positive 해결)
- custom/tailscale-whitelist 추가 (100.64.0.0/10)
- custom/apisix-logs 파서 추가 (서울 APISIX 비표준 nginx 포맷)
- crowdsecurity/traefik collection 설치
- 버전 v1.7.7 확인
2026-04-17 00:51:45 +09:00
heimdall
7395446478 docs: add _index.md MOC to all directories 2026-04-16 13:46:06 +09:00
heimdall
f0e51daafd refactor: organize infra/ into compute/network/security/data/platform 2026-04-16 13:43:36 +09:00
heimdall
66d2f51743 refactor: normalize infra wikilinks to bare names 2026-04-16 13:43:18 +09:00
heimdall
226b377387 kine pgx multi-host 직결: HAProxy 의존 제거, API 다운타임 <1s 2026-04-16 12:34:53 +09:00
heimdall
33ce94a75a pgpool 전면 전환 + pgcat 퇴역: postgresql-ha.md 전면 갱신 2026-04-16 12:24:39 +09:00
kaffa
5f9a153d96 add incus-hp1 to infra docs (K3s worker, 192.168.9.227)
Incus 6.0.4 + K3s v1.34.5+k3s1 agent joined 2026-04-16.
btrfs on nvme0n1 954G, incusbr0 10.100.4.1/24, 1GbE only.
2026-04-16 10:51:54 +09:00
heimdall
0d59adb95f pgpool-II PoC (n8n 전용 전환) + postgresql-ha.md 섹션 추가 2026-04-16 08:25:02 +09:00
heimdall
125413d083 pgcat+Patroni TCP keepalive 적용: 좀비 소켓 방지 (Step 1 옵션 B) 2026-04-16 07:26:37 +09:00
heimdall
a7ecd4b982 pgcat HA 승격 (Step 0): replicas=2 + podAntiAffinity + PDB 2026-04-15 17:21:13 +09:00
syn
ad230522be infra/crowdsec-safeline: remove APISIX → CrowdSec (:8085) legacy section
Verified removed across all 3 sites:
- K3s APISIX: no http-logger plugin in global_rules/routes/services/plugin_configs
- CrowdSec: no apisix-logs HTTP acquisition file, :8085 not listening
- Osaka APISIX: http-logger exists but targets VictoriaLogs (vector.inouter.com), not legacy

Runtime verification via cs_parser_hits metrics: only source is
https://vl.inouter.com/ (victorialogs type).

Split detailed findings to history/2026-04-15-apisix-http-logger-removal.md.
2026-04-15 16:31:18 +09:00
kappa
b24d10d156 vault-mcp-server 실 아키텍처 정정 (중복 아님, jp1 단일 인스턴스)
- infra/vault.md MCP 서버 섹션 전체 재작성: K3s Deployment 아니라 Pod 없는 리버스 프록시 파사드, 세 접근 경로 모두 jp1 Incus vault 컨테이너(10.253.101.58)로 수렴
- 과거 오류 정정 callout 추가: vault-active.vault.svc.cluster.local 경로 실존 안 함, hcv/mcp URL은 Vault UI로 307 (올바른 MCP 경로는 vault-mcp.inouter.com/mcp)
- history/2026-04-15-vault-mcp-duplicate-investigation.md 인시던트 기록

근거: Heimdall 조사 (Outline 5b6ddffa) + kappa 로컬 확인 (jp1 systemd active + 활성 트래픽)
2026-04-15 13:29:18 +09:00
heimdall
a9d37aa37a Longhorn standard RecurringJob cron KST 새벽으로 보정
standard-snapshot 0 3 * * * → 0 18 * * * (UTC, = KST 03:00)
standard-backup  0 4 * * * → 0 19 * * * (UTC, = KST 04:00)
critical 6h 간격에 KST 03시 포함되어 변경 없음.
2026-04-15 12:25:57 +09:00
kappa
b206348dd7 k3s-backup.md: history 파일명 참조 수정 2026-04-15 11:27:04 +09:00
heimdall
f55e1cffb4 Longhorn recurring job 라벨 오타 수정 + history 기록
critical/standard 18 볼륨이 recurringjob-group (대시 누락) 으로 라벨
붙어 3주간 백업 전무. recurring-job-group 으로 재라벨 + backup.md 에
라벨 키 규약 명시.
2026-04-15 10:52:06 +09:00
heimdall
5bf9f5f563 auto: vault secret tree sync (2026-04-15, 104 paths) 2026-04-15 10:43:07 +09:00
heimdall
0b8d9435d9 auto: vault secret tree sync (2026-04-14, 103 paths) 2026-04-15 10:43:07 +09:00
kappa
703d5609ec Longhorn recurring-job 라벨 키 오타 정정 + 인시던트 기록
- infra/k3s-backup.md: recurringjob-group → recurring-job-group (대시 포함). silent failure 주의 callout 추가
- history/2026-04-15-longhorn-label-typo.md: 18볼륨 백업 미동작 인시던트 기록
2026-04-15 08:32:13 +09:00
kappa
cfe4cbafae infra/infra-hosts: hp1-ilo .213 → .140 renew 반영 2026-04-14 17:00:54 +09:00
kappa
6364d71ec9 infra/infra-hosts: hp1/hp2 iLO 정적 DHCP 리스 등록
- hp1-ilo: 192.168.9.140 (MAC 6c:3b:e5:b7:0e:4e, 시리얼 JPT3169F2E)
- hp2-ilo: 192.168.9.141 (MAC 6c:3b:e5:b4:57:3e, 시리얼 JPT3169F6C)
- OpenWrt uci dhcp.@host 등록, 자동 renew로 6~12h 내 이전
- 로컬 DNS hp1-ilo.lan / hp2-ilo.lan 자동 생성
2026-04-14 16:20:49 +09:00
kappa
b45a3e05b1 infra/infra-hosts: OpenWrt DHCP 범위 .150-.249로 이전, .100-.149 해방
- DHCP 시작점 100 → 150
- 장래 MetalLB 풀 확장 대비
- 기존 리스 6개(.110/.128/.149/.159/.176/.213) 최대 12h 내 renew 시 자연 이전
2026-04-14 16:15:24 +09:00
kappa
544f2026e8 infra/infra-hosts: MetalLB pool 섹션 추가 및 .50-.99로 확장 반영
- 기존: 192.168.9.50-59 (10개, 6/10 할당)
- 확장: 192.168.9.50-99 (50개, .56-.99 여유)
- DHCP 범위(.100-249) 충돌 없음, .50-.99 ARP 스캔 clean
- 확장 절차 및 현재 할당 테이블 문서화
2026-04-14 16:01:00 +09:00
kappa
175a7236df infra/infra-hosts: hp2 DMI(HP ProLiant DL360p Gen8) + 커널 버전 명시
- 베어메탈 HW 식별자 추가 (이전 RCA의 'Incus 컨테이너 오해' 재발 방지)
- 2026-04-14 커널 업데이트 반영 (6.12.73 → 6.12.74)
2026-04-14 14:06:19 +09:00
kappa
4e57bb1015 infra/k3s-backup: R2 lifecycle rule 7일 만료 등록 완료 2026-04-14 13:42:54 +09:00