add netbis DR server docs and update related infra docs
- services/netbis.md: sandbox-tokyo APISIX 예비서버, Netbis CF 계정, 라우트/SSL/CrowdSec 연동 전체 문서화 - infra-hosts.md: sandbox-tokyo 역할 업데이트 (netbis 예비 APISIX Gateway) - crowdsec-safeline.md: netbis-cf 바운서 (별도 컨테이너) 항목 추가
This commit is contained in:
132
services/netbis.md
Normal file
132
services/netbis.md
Normal file
@@ -0,0 +1,132 @@
|
||||
---
|
||||
title: Netbis 예비서버 (sandbox-tokyo)
|
||||
updated: 2026-04-03
|
||||
tags: [netbis, apisix, dr, cloudflare]
|
||||
---
|
||||
|
||||
## 개요
|
||||
|
||||
Netbis 팀 도메인의 예비(DR) 리버스 프록시 서버. 평소에는 트래픽을 받지 않으며, 유사시 Cloudflare DNS를 수동 전환하여 활성화.
|
||||
|
||||
기존 Ironclad 인프라([[apisix]], [[crowdsec-safeline]])와는 별도 구성.
|
||||
|
||||
## 서버 정보
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 호스트명 | sandbox-tokyo |
|
||||
| 공인 IP | 139.162.71.52 |
|
||||
| Tailscale IP | 100.79.87.48 |
|
||||
| 위치 | Linode Tokyo |
|
||||
| OS | Debian 12 (커널 6.1.0-23) |
|
||||
| SSH | `ssh root@139.162.71.52` |
|
||||
|
||||
## APISIX 구성
|
||||
|
||||
Docker Compose (/opt/apisix/)로 배포.
|
||||
|
||||
| 컨테이너 | 이미지 | 포트 |
|
||||
|----------|--------|------|
|
||||
| apisix | apache/apisix:3.15.0-debian | 80(→9080), 443(→9443), 9180 |
|
||||
| apisix-etcd | gcr.io/etcd-development/etcd:v3.5.11 | 2379 (내부) |
|
||||
|
||||
- Admin API: `http://127.0.0.1:9180` (0.0.0.0/0 허용)
|
||||
- Admin Key: `edd1c9f034335f136f87ad84b625c8f1`
|
||||
|
||||
### global_rules
|
||||
|
||||
- `real-ip` — source: `http_cf_connecting_ip`, trusted: Cloudflare IP 대역
|
||||
- `http-logger` → CrowdSec `http://10.253.100.240:8085/apisix-logs` (auth: `apisix-crowdsec-log-2024`)
|
||||
|
||||
## Cloudflare 계정 (Netbis)
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 이메일 | netbis@netbis.io |
|
||||
| Account ID | 8fcf3c7876332aba33e974cbbfdad951 |
|
||||
| Global API Key | sandbox-tokyo `/root/.config/cloudflare/cf-global-api-key` |
|
||||
| API Token (바운서용) | `crowdsec-cf-bouncer-netbis` (Workers, Turnstile, WAF, Zone 권한) |
|
||||
|
||||
### Zone 목록
|
||||
|
||||
| Zone | Zone ID | 현재 오리진 |
|
||||
|------|---------|------------|
|
||||
| fall-vip.com | 662312b0ca619d1d5c8f4c112150d749 | 42.125.196.86 |
|
||||
| fall-mvp.com | 6c171579912a271c0fc89c8187493b0f | 139.162.73.240 |
|
||||
| fall-vip7.com | a8832b9d3b546f96505abeadea4750d1 | 139.162.73.240 |
|
||||
| psd777.com | a14533c2937b19e5b7ed19cbecd58679 | 139.162.114.197 |
|
||||
| rss-555.com | 6d4b084940520c1f820927e5d8ade2c6 | 139.162.73.17 |
|
||||
| rss-7790.com | d9db9e50e202339326498baa340a9d16 | 139.162.73.17 |
|
||||
|
||||
모든 zone은 Cloudflare Flexible SSL, 프록시(오렌지 구름) 사용.
|
||||
|
||||
## 라우트 및 업스트림
|
||||
|
||||
| 라우트 ID | 호스트 | 업스트림 (오리진 IP) |
|
||||
|-----------|--------|---------------------|
|
||||
| fall-vip-com | fall-vip.com | 42.125.196.86 |
|
||||
| fall-mvp-com | fall-mvp.com | 139.162.73.240 |
|
||||
| fall-vip7-com | fall-vip7.com | 139.162.73.240 |
|
||||
| psd777-com | psd777.com | 139.162.114.197 |
|
||||
| rss-555-com | rss-555.com | 139.162.73.17 |
|
||||
| rss-7790-com | rss-7790.com | 139.162.73.17 |
|
||||
| ev-fall-vip-com | ev.fall-vip.com | 42.125.196.115 |
|
||||
| ev-fall-vip7-com | ev.fall-vip7.com | 42.125.196.115 |
|
||||
| ev-psd777-com | ev.psd777.com | 42.125.196.115 |
|
||||
| vi-rss-555-com | vi.rss-555.com | 42.125.196.115 |
|
||||
| vi-rss-7790-com | vi.rss-7790.com | 42.125.196.115 |
|
||||
|
||||
모든 라우트에 `proxy-rewrite` (Host 전달) 적용.
|
||||
|
||||
## SSL 인증서
|
||||
|
||||
acme.sh + Cloudflare DNS-01 챌린지로 발급. 크론 자동 갱신.
|
||||
|
||||
| 도메인 | SAN | 발급기관 | 만료 |
|
||||
|--------|-----|---------|------|
|
||||
| fall-vip.com | *.fall-vip.com | ZeroSSL | 2026-07-02 |
|
||||
| fall-mvp.com | *.fall-mvp.com | ZeroSSL | 2026-07-02 |
|
||||
| fall-vip7.com | *.fall-vip7.com | ZeroSSL | 2026-07-02 |
|
||||
| psd777.com | *.psd777.com | ZeroSSL | 2026-07-02 |
|
||||
| rss-555.com | *.rss-555.com | ZeroSSL | 2026-07-02 |
|
||||
| rss-7790.com | *.rss-7790.com | ZeroSSL | 2026-07-02 |
|
||||
|
||||
인증서 경로: `/root/.acme.sh/{domain}_ecc/`
|
||||
|
||||
## CrowdSec 연동
|
||||
|
||||
### http-logger
|
||||
|
||||
APISIX global_rule로 모든 요청 로그를 CrowdSec(jp1)로 전송.
|
||||
- 엔드포인트: `http://10.253.100.240:8085/apisix-logs`
|
||||
- 인증: `auth_header: apisix-crowdsec-log-2024`
|
||||
- 파서: `custom/apisix-json-logs` (기존 파서 공유)
|
||||
|
||||
### Cloudflare Worker Bouncer (netbis-cf)
|
||||
|
||||
| 항목 | 값 |
|
||||
|------|-----|
|
||||
| 컨테이너 | jp1 incus `netbis-cf-bouncer` (10.253.103.33) |
|
||||
| 바운서 이름 | netbis-cf (CrowdSec LAPI 등록) |
|
||||
| LAPI 키 | `FR/PbHA110b6+m/gkByp9itNOaQMdbM8BwKR3DerCTI` |
|
||||
| 설정 파일 | `/etc/crowdsec/bouncers/crowdsec-cloudflare-worker-bouncer.yaml` |
|
||||
| 동작 | CrowdSec ban → Cloudflare Worker + Turnstile captcha |
|
||||
| 적용 범위 | Netbis 계정 전체 6개 zone |
|
||||
|
||||
기존 `cs-cf-worker-bouncer` (Kappa 계정용)와 별도 컨테이너로 분리 운영.
|
||||
|
||||
## 유사시 전환 절차
|
||||
|
||||
1. Cloudflare DNS에서 각 도메인 A 레코드를 `139.162.71.52`로 변경 (수동)
|
||||
2. APISIX 라우트/SSL 사전 등록 완료 상태이므로 즉시 서비스 가능
|
||||
3. 전환 후 CrowdSec 로그 수신 및 바운서 차단 자동 동작 확인
|
||||
|
||||
## 이전에 운영했던 서비스 (중지됨)
|
||||
|
||||
sandbox-tokyo에서 기존 운영하던 아래 서비스는 2026-04-03 중지:
|
||||
- vault-prod (HashiCorp Vault)
|
||||
- wg-easy (WireGuard VPN)
|
||||
- nginx-tcp-proxy
|
||||
- socks5-v4 (microsocks)
|
||||
- tlsproxy
|
||||
- Caddy (systemd, disabled)
|
||||
Reference in New Issue
Block a user