피드로 돌아가기
sslh: Run HTTPS and SSH on Port 443 at the Same Time
Dev.toDev.to
Infrastructure

Port 443 단일 포트 기반 Multi-Protocol Multiplexing 구현

sslh: Run HTTPS and SSH on Port 443 at the Same Time

Recca Tsai2026년 4월 20일4intermediate

Context

기업 및 교육 기관의 엄격한 Firewall 정책으로 인한 Port 22 차단 상황 분석. VPN 및 Web Terminal 도입의 운영 오버헤드를 해결하기 위한 단일 포트 기반의 서비스 통합 필요성 대두.

Technical Solution

  • Port 443을 점유하는 Protocol Multiplexer 구조의 sslh 도입을 통한 트래픽 분기 설계
  • Connection 초기 단계에서 First Packet을 분석하여 SSH, TLS, OpenVPN 등 프로토콜을 식별하는 패킷 검사 로직 적용
  • 식별된 프로토콜에 따라 내부 Backend 서비스(Port 22, 8443, 1194 등)로 트래픽을 전달하는 Routing 메커니즘 구축
  • Nginx의 리스닝 포트를 443에서 8443으로 변경하여 sslh가 외부 접점(Entry Point)을 단독 소유하는 구조로 전환
  • Docker Compose 환경에서 NET_RAW 및 NET_BIND_SERVICE 권한 부여를 통한 컨테이너 기반의 네트워크 패킷 제어 구현
  • 실클라이언트 IP 보존을 위한 Transparent Proxy 모드와 iptables 규칙 결합으로 Backend 로그 무결성 확보

1. Firewall에서 허용된 포트(443)를 확인하고 해당 포트를 점유하던 기존 서비스의 포트 변경 필요

2. Backend 서비스에서 클라이언트 실 IP가 필요한 경우 Transparent Proxy 설정 및 iptables 룰 검토

3. 보안 취약점 대응을 위한 sslh 최신 버전 유지 및 정기적인 업데이트 프로세스 수립

4. Docker 환경 배포 시 특권 권한(Capabilities) 설정의 적절성 확인

원문 읽기