피드로 돌아가기
Dev.toInfrastructure
원문 읽기
보안과 안정성을 극대화한 Hardened *arr 스택 설계 전략
Why I Open-Sourced My Hardened *arr Stack (and What Most Compose Files Get Wrong)
AI 요약
Context
대부분의 Docker Compose 설정이 단일 네트워크 구조로 설계되어 서비스 간 격리가 전무한 상태. VPN 킬스위치를 단순 소프트웨어 방화벽 규칙에 의존하여 실제 IP 유출 위험 상존. 헬스체크 부재로 인한 서비스 장애 인지 지연 및 복구 프로세스 미비.
Technical Solution
- Traefik(외부 인입), arr_internal(내부 통신), vpn_network(외부 유출) 3중 네트워크 분리 설계
- Gluetun 네트워크 네임스페이스를 활용하여 qBittorrent의 네트워크 인터페이스를 완전히 제거한 하드웨어 수준의 격리 구현
- qBittorrent 내 BIND_TO_INTERFACE 설정을 tun0로 강제하여 VPN 터널 단절 시 물리적 통신 경로를 원천 차단하는 구조
- Tailscale Mesh Network 기반의 전용 IP 바인딩과 Cloudflare DNS 챌린지를 통한 외부 노출 제로화 및 HTTPS 자동화
- API 응답 기반의 엔드포인트 헬스체크와 Autoheal 컨테이너를 결합한 자가 치유 및 서비스 의존성 체인(depends_on) 구축
- 4K 리먹스 파일의 고대역폭 전송을 위해 Jellyfin만 제한적으로 호스트 LAN 포트를 개방하는 최적화 경로 설계
Key Takeaway
보안 설계 시 방화벽 규칙과 같은 소프트웨어적 제어보다 네트워크 네임스페이스 분리와 같이 물리적으로 경로가 존재하지 않게 만드는 구조적 격리가 더 강력한 신뢰성을 제공함.
실천 포인트
VPN 기반 서비스 구축 시 iptables 규칙 대신 네트워크 네임스페이스 공유(network_mode: service) 방식을 도입하여 IP 유출 경로를 원천 차단할 것