피드로 돌아가기
Dev.toInfrastructure
원문 읽기
VPN Sidecar 패턴을 통한 무포트 노출 기반의 보안 모니터링 망 구축
Remote Server Monitoring over VPN: A Docker Approach (Part 1)
AI 요약
Context
분산 인프라의 Metrics 수집 시 Prometheus의 Pull 방식이 요구하는 포트 개방으로 인한 보안 취약점 발생. Host OS 레벨의 VPN 설치는 트래픽 혼재 및 iptables 설정 복잡도 증가와 Docker 격리 원칙 훼손이라는 한계 존재.
Technical Solution
- VPN Sidecar 패턴 도입을 통한 네트워크 계층의 완전 격리 및 보안 강화
- Docker Network Namespace sharing(
network_mode: service:xxx)을 활용한 서비스 간 네트워크 스택 공유 - Prometheus 컨테이너를 VPN 컨테이너의 네트워크 스택에 바인딩하여 내부 VPN IP(10.10.0.x) 기반의 직접 통신 구현
- Remote Node의 Exporter 또한 VPN Client 컨테이너와 Namespace를 공유하여 Public Internet 포트 노출을 원천 차단
- NET_ADMIN 권한 및 sysctls 설정을 통한 컨테이너 내부 wg0 인터페이스 생성 및 L3 브리지 형성
- Infrastructure as Code 기반의 Docker Compose 설정을 통한 Host OS 오염 방지 및 이식성 확보
실천 포인트
1. 외부 노출 없이 내부 서비스 간 통신이 필요할 때 `network_mode: service` 옵션 검토
2. Host OS의 네트워크 설정을 변경하는 대신 Sidecar 컨테이너를 통한 네트워크 제어 적용
3. VPN 컨테이너 구축 시 `NET_ADMIN` 및 `SYS_MODULE` 권한 부여 필요성 확인
4. 분산 환경의 Metrics 수집 시 Port Scanning 공격 방지를 위한 VPN Tunneling 구조 설계