APISIX WAF 연동 완료: plugin_metadata, Juice Shop 테스트, waf-kr zone, DNAT 규칙

This commit is contained in:
kappa
2026-03-25 18:19:26 +09:00
parent 4f75b9dffb
commit bc147e3f91
3 changed files with 57 additions and 0 deletions

View File

@@ -54,6 +54,24 @@ BunnyCDN(inouter, ID 5316471) → apisix-osaka(172.233.93.180) → 백엔드
- 2026-03-25 메인 라우팅 역할을 Traefik으로 이전, APISIX는 SafeLine WAF 전용으로 축소
- Ingress Controller + Gateway API CRD 제거됨 (GatewayProxy 모드에서 ApisixRoute CRD 미지원, HTTPRoute에 플러그인 개별 적용 불가 문제)
#### plugin_metadata (etcd 직접 등록)
chaitin-waf 플러그인은 `plugin_attr`(config.yaml)이 아닌 **`plugin_metadata`(etcd)**에서 detector 노드를 읽음. 반드시 etcd에 등록해야 함.
```
etcdctl put /apisix/plugin_metadata/chaitin-waf '{"id":"chaitin-waf","nodes":[{"host":"10.43.253.244","port":8000}],"config":{"connect_timeout":1000,"send_timeout":1000,"read_timeout":1000,"req_body_size":1024,"real_client_ip":true}}'
```
#### 등록된 라우트 (etcd 직접 등록)
| Route ID | 호스트 | upstream | chaitin-waf | 비고 |
|----------|--------|----------|-------------|------|
| juiceshop | juiceshop.keepanker.cv | juiceshop:3000 (juiceshop ns) | block | WAF 테스트용 OWASP Juice Shop |
#### real_ip 설정 (ConfigMap 직접 수정)
`real_ip_header: X-Forwarded-For`, `real_ip_from: 0.0.0.0/0` (BunnyCDN 경유이므로 전체 허용). Helm values로는 반영 안 되어 ConfigMap 직접 패치.
#### 이전 사유 (2026-03-25)
- Ingress Controller 2.0 GatewayProxy 모드가 ApisixRoute CRD를 sync하지 않음
- Gateway API HTTPRoute에 플러그인 개별 적용 방법이 없음