피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Caddy와 GeoIP-ASN 필터링을 통한 macOS 기반 고보안 Reverse Proxy 설계
Setting Up a Custom Caddy Reverse Proxy for OpenClaw on macOS
AI 요약
Context
OpenClaw 서비스 운영을 위해 외부 트래픽의 정밀한 제어와 보안 계층 강화가 필요한 상황. 단순한 포트 포워딩만으로는 특정 네트워크 사업자(ISP) 기반의 접근 제한과 사용자 인증을 동시에 처리하는 데 한계가 존재.
Technical Solution
- xcaddy를 통한 custom-build 방식으로 MaxMind GeoIP 모듈을 바이너리에 직접 내장하여 요청 단계의 위치 기반 필터링 구현
- GeoLite2-ASN 데이터베이스를 활용한 ASN 기반 화이트리스트 설계를 통해 허용된 특정 ISP 네트워크 트래픽만 통과시키는 구조 채택
- bcrypt 해시 기반의 Basic Auth 계층을 GeoIP 매처 하위에 배치하여 네트워크 검증 후 인증을 수행하는 2단계 보안 파이프라인 구성
- 특정 API 엔드포인트(/googlechat)에 대해 별도의 handle 블록을 지정하여 인증 절차를 우회하는 Webhook 예외 처리 로직 적용
- macOS launchd plist 설정을 통한 서비스 상주화 및 KeepAlive 옵션을 활용한 프로세스 가용성 확보
- caddy reload 명령어를 통한 무중단 설정 반영 구조 설계
실천 포인트
- 특정 ISP 기반의 트래픽 제어가 필요할 경우 Caddy의 maxmind_geolocation 모듈 검토 - 보안 강화가 필요한 Reverse Proxy 설계 시 [GeoIP 필터링 -> 사용자 인증 -> 백엔드 포워딩] 순의 계층적 필터 체인 구성 - Webhook 등 외부 콜백 수신 경로와 일반 사용자 경로의 Auth 정책을 분리하는 handle 전략 적용