피드로 돌아가기
SafeLine WAF running on Rootless Docker
Dev.toDev.to
Security

Rootless Docker 환경에서 SafeLine WAF의 네트워크 제약 해결 전략

SafeLine WAF running on Rootless Docker

Carrie2026년 4월 9일6intermediate

Context

Rootless Docker 사용 시 컨테이너가 Rootlesskit 네트워크 네임스페이스에 격리되는 구조. 호스트의 80, 443 포트 바인딩 불가 및 소스 IP 유실로 인한 WAF 기능 마비 발생.

Technical Solution

  • Rootlesskit 포트 드라이버를 slirp4netns로 교체하여 원본 클라이언트 IP 보존 및 저수준 포트 포워딩 구현
  • 호스트 시스템의 net.ipv4.ip_unprivileged_port_start 설정을 80으로 하향 조정하여 비특권 사용자의 특권 포트 바인딩 허용
  • compose.yaml에서 tengine 서비스의 network_mode: host 설정을 제거하고 명시적 포트 매핑(80:80, 443:443) 방식으로 변경
  • tengine 컨테이너에 고정 IPv4 주소를 할당하여 내부 네트워크 통신 안정성 확보
  • 외부 애플리케이션 네트워크를 tengine 서비스에 추가 연결하여 서비스 간 통신 경로 최적화
  • 호스트 OS 방화벽(UFW) 설정을 통한 관리 콘솔 포트(TCP:9443) 접근 제어로 보안 강화

Key Takeaway

컨테이너 런타임의 격리 수준과 네트워크 드라이버 선택이 애플리케이션의 기능적 무결성(IP 기반 필터링 등)에 결정적인 영향을 미치는 설계 구조.


Rootless Docker에서 WAF 운영 시, Client IP 보존을 위해 반드시 slirp4netns 드라이버를 설정하고 sysctl로 포트 제한을 해제할 것

원문 읽기