기반 가이드 7단계로 실험대를 철거하고 다시 세운 뒤 virtualization setup 9편과 keycloak-session-store 26편을 순서대로 밟았다. 24편은 끝까지, 11편은 되는 데까지 밟았고 밟은 범위를 편마다 적었다. 명령이 못 도는 것을 고쳤다. - kubectl 을 `kc-lab-1` 에서 치라고 적었는데 그 기계에 kubeconfig 가 없다. 라벨 639개와 각 편의 「어디서 치는가」를 `[lab host]` 로 옮겼다 - `-o custom-columns=…[0]…` 이 zsh 에서 글로브로 읽혀 안 돈다. 28곳에 따옴표 - busybox `sed` 가 끝 개행을 안 붙여 A-3 의 측정이 언제나 0 이었다 - `--token-file ~/node-token` 뒤에 그 파일을 지우면 k3s agent 가 재부팅을 못 견딘다. `/etc/rancher/node-token` 으로 옮기는 처방을 재서 넣었다 - 게스트에 없는 도구를 전제로 한 명령 넷 — `conntrack`·`dig`·`strings`·`nginx -v` - `echo` 와 JWT 헤더가 `"이름" : [ 값 ]` 으로 찍는데 문서는 공백 없이 옮겨 적어 그 실측으로 만든 grep·sed 가 한 줄도 못 잡는다 - B-0 이 `directAccessGrantsEnabled` 와 계정 완성을 빠뜨려 B-3 이 못 돈다 - D-4·D-4a 가 `test-server` 와 `certbot-renew.*` 를 가리키는데 실제로는 `kc-lab-edge` 의 `certbot.service` 다 - `virsh setmaxmem --config` 를 `dominfo` 로 판정하면 틀린다. `--inactive` 로 - `LIBVIRT_DEFAULT_URI` 를 rc 에만 넣으면 `ssh host '명령'` 에서 안 먹는다 결과가 조건부인 것을 갈랐다. - readiness 는 즉시 안 뒤집힌다. A-1·A-2 의 60초 창을 적었다 - 03 의 층 ②③ `301` 은 04 이후의 값이고 그 단계에서는 `404` 다 - A-0 의 로그 필터를 요청 직후에 치면 정반대 결론이 나온다 - A-5 의 한 방향 차단은 잠깐 `1` 이었다 `2` 로 돌아온다 증거는 두 프로젝트의 `evidence/raw/` 에 99벌을 README 와 함께 남겼다. 비밀은 길이만 적었고 화면에 찍힌 토큰은 가렸다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
33 lines
1.2 KiB
Plaintext
33 lines
1.2 KiB
Plaintext
=== b4 1. app1 이 경로에 따라 어디로 가는가 ===
|
|
NS NAME HOST PATH SVC
|
|
header-lab echo app1.hyeonworks.com /api echo
|
|
keycloak-lab bff app1.hyeonworks.com / bff
|
|
keycloak-lab keycloak auth.hyeonworks.com / keycloak
|
|
observability grafana app2.hyeonworks.com / grafana
|
|
=== 2. echo 응답을 통째로 (TLS 대신 Host 헤더) ===
|
|
{
|
|
"headers" : {
|
|
"host" : [ "app1.hyeonworks.com" ],
|
|
"user-agent" : [ "curl/8.21.0" ],
|
|
"accept" : [ "*/*" ],
|
|
"x-forwarded-host" : [ "app1.hyeonworks.com" ],
|
|
"x-forwarded-port" : [ "80" ],
|
|
"x-forwarded-proto" : [ "http" ],
|
|
"x-forwarded-server" : [ "traefik-59b7647586-t8fc7" ],
|
|
"x-real-ip" : [ "10.42.0.1" ],
|
|
"accept-encoding" : [ "gzip" ]
|
|
},
|
|
"remoteAddr" : "10.42.0.1",
|
|
"localAddr" : "10.42.1.58",
|
|
"scheme" : "http",
|
|
"secure" : false,
|
|
"serverName" : "app1.hyeonworks.com",
|
|
"serverPort" : 80,
|
|
"requestUrl" : "http://app1.hyeonworks.com/api/echo"
|
|
}
|
|
=== 3. 대조군 — 아무것도 안 붙였을 때 ===
|
|
(위가 비면 대조군에는 그 헤더가 없다)
|
|
=== 주입 1. 동명 헤더 두 개 ===
|
|
=== 주입 2. 값 안의 쉼표 ===
|
|
=== 주입 4. 신원 자체를 위조 ===
|