자체 호스팅 회전 (NAT 주변의 릴레이를 사용한 트래버스) 서버는 실제로 직접 피어 투 피어 연결이 방화벽 또는 NAT에 의해, 특히 WEBRTC와 같은 실시간 통신 애플리케이션에서 방화벽 또는 NAT에 의해 차단되거나 제한 될 때 발생하는 방화벽 및 NAT 트래버스 문제를 해결하는 데 실제로 사용될 수 있습니다.
턴 서버 란 무엇이며 왜 사용합니까?
턴 서버는 제한적인 방화벽 또는 NAT 정책으로 인해 직접 피어 투 피어 통신이 실패 할 때 네트워크를 통해 통신하려는 두 피어 사이의 릴레이 역할을합니다. 주로 공개 IP 주소 및 포트 매핑을 결정하는 데 도움이되지만 트래픽을 릴레이하지는 않으면 서사를 통해 미디어 및 데이터 트래픽이 릴레이를 통해 전송 될 수 있으므로 통신이 매우 제한적인 네트워크 환경에서도 진행될 수 있습니다.
방화벽과 NAT가 연결에 미치는 영향
방화벽 및 네트워크 주소 번역기 (NAT)는 보안상의 이유로 직접 들어오는 연결을 방지 할 수 있습니다. NAT는 패킷 헤더에서 IP 주소 정보를 수정하여 일반적으로 인바운드 트래픽에 대한 과제를 생성하는 반면 방화벽은 포트 및 트래픽 유형을 선택적으로 차단합니다. 이러한 제한 사항은 종종 직접 피어 투 피어 연결을 방지하여 많은 실시간 통신 애플리케이션에 필수적입니다. 턴 서버는 중개 릴레이 역할을함으로써이를 완화시킵니다.
방화벽 우회 용 자체 호스팅 턴 서버 사용
자체 호스팅 턴 서버는 공개 또는 타사 턴 서비스를 사용하는 것과 비교하여 방화벽 제한을 우회 할 때 제어 및 개인 정보 이점을 제공합니다. 조직이나 개인이 릴레이 인프라의 소유권을 유지하여 제 3자가 트래픽을 처리하지 않도록 할 수 있습니다.
턴 서버를 배포함으로써 직접 통신이 차단되면 클라이언트 및 서버 역할은 턴 릴레이를 통해 통신 할 수 있습니다. 이 접근법은 사용자가 방화벽 규칙을 수정하거나 포트를 열거 나 보안 조치를 비활성화하지 않고도 작동합니다.
턴 서버에 대한 기술 설정 고려 사항
턴 서버 자체 호스팅에는 일반적으로 가장 인기있는 오픈 소스 턴 및 스턴 서버 구현 중 하나 인 Coturn과 같은 소프트웨어를 실행하는 것이 포함됩니다. 서버는 일반적으로 UDP 및 TCP 포트 모두에서 장려됩니다. TCP 및 TLS를 뒤집어 (일반적으로 포트 443에서) 트래픽이 일반적인 HTTPS 트래픽처럼 보이도록하여 제한적인 방화벽과의 호환성을 향상시킵니다.
주요 구성 노트는 다음과 같습니다.
- 포트 : UDP 3478과 같은 기본 턴/스턴 포트는 일반적으로 회사 또는 엄격한 방화벽에 의해 차단되므로 TCP 443 (HTTPS 포트)과 같은 공통 포트에서의 청취를 구성하는 것이 권장됩니다.
-TLS : TLS를 사용하면 데이터를 암호화하고 위장 트래픽을 HTTPS로 암호화하여 대부분의 방화벽 컨텐츠 검사를 우회하는 데 도움이됩니다.
- 인증 : 턴 서버는 남용을 방지하기 위해 인증이 필요합니다. 장기 자격 증명 메커니즘 또는 단기 자격 증명이 사용됩니다.
- IP 주소 구성 : NAT 뒤에 서버가 공개 IP 주소로 올바르게 구성되어야합니다.
보안 측면
자체 호스팅 턴 서버를 실행할 때는 릴레이 서비스가 인터넷에 노출되므로 적절한 보안 조치를 취해야합니다.
- 공유 비밀을 사용한 장기 인증 또는 만료와의 동적 자격 증명과 같은 보안 인증 방법을 사용하십시오.
-남용 또는 서비스 거부 공격을 방지하기 위해 요금 제한 및 모니터링을 구현합니다.
- 데이터 무결성과 기밀성을 보호하기 위해 TLS 암호화를 사용하십시오.
- 보안 패치에 대해 서버와 소프트웨어를 정기적으로 업데이트하십시오.
배포 문제 및 방화벽 우회
- 일부 방화벽은 UDP 트래픽 또는 비표준 포트를 차단하여 UDP 만 사용할 때 턴 서버의 릴레이 기능을 비활성화 할 수 있습니다. 포트 443을 통해 TCP 및 TLS를 사용하면 대부분의 방화벽이 아웃 바운드 HTTPS 트래픽을 허용하기 때문에 이러한 제한을 우회하는 데 도움이됩니다.
- 턴 서버를 통한 음성/비디오/데이터 트래픽 재 경공은 릴레이로 인한 추가 대기 시간 및 대역폭 비용을 도입하지만 종종 제한적인 환경에서 연결을 유지해야합니다.
- 매우 제한적인 방화벽 정책이있는 일부 네트워크 환경에서는 Turn 서버조차도 추가 네트워크 구성 또는 VPN 사용법없이 우회를 완전히 보장하지 않을 수 있습니다.
- 방화벽을 우회하는 대체 방법에는 VPN을 사용하거나 포트를보다 자유롭게 열 수있는 클라우드 환경에서 애플리케이션 서버를 배포하는 것이 포함됩니다.
턴 서버가 실제로 작동하는 방법
WEBRTC 시나리오에서 클라이언트는 먼저 공개 주소 검색을 위해 STUN 서버를 활용하여 ICE (대화식 연결 설정)를 사용하여 직접 연결을 설정하려고 시도합니다. NAT 또는 방화벽 제한으로 인해 실패하면 Turn 서버가 트래픽을 전달합니다. 브라우저 또는 클라이언트는 미디어/데이터를 Turn 서버로 전송하여 다른 피어에게 전달하여 네트워크 제한에도 불구하고 연결을 보장합니다.
구성 예제 Coturn을 사용합니다
일반적인 Coturn 설정에는 다음이 포함됩니다.
-Ports 3478 (UDP/TCP)에서 기절/회전을 듣습니다.
- HTTP를 모방하도록 구성된 TLS를 사용하여 포트 443의 대체 청취.
- 인증을 위해 공유 비밀을 사용합니다.
- 릴레이 할당을위한 IP 범위 정의.
-이 포트에서 들어오는 TCP/UDP를 허용하는 적절한 방화벽 규칙.
- 로깅 및 모니터링을 통해 연결 및 사용을 추적 할 수 있습니다.
대안 및 추가 조치
-클라우드에서 회전을 실행하거나 클라우드 호스팅 턴 서비스를 사용하여 자조 주최 오버 헤드를 줄입니다.
-VPN을 사용하여 방화벽 제한을 완전히 우회하고 때로는 개인 정보 보호상의 이유로 선호됩니다.
- 클라이언트 시스템을 완전히 노출시키기 위해 DMZ 또는 포트 전달 설정과 같은 네트워크 수준 조정.
- 제한적인 환경의 경우 턴 서버 사용을 VPN 또는 프록시 서비스와 결합하는 것이 필요할 수 있습니다.
요약
자체 호스팅 된 턴 서버는 직접 연결이 차단 될 때 트래픽을 릴레이하여 방화벽을 우회하고 실시간 통신에서 NAT 제한을 우회하는 효과적인 도구입니다. 트래픽을 허용 된 HTTPS 트래픽으로 혼합하기 위해 TCP/TLS 지원을 포함하여 신중한 구성 및 보안 관행이 필요합니다. 대기 시간 및 대역폭 오버 헤드를 추가하지만 위험한 네트워크 구성을 통해 클라이언트 머신을 노출시켜 보안을 손상시키지 않고 제한적인 네트워크 환경에서 연결을 보장하는 것이 가장 실용적인 솔루션입니다. VPN 또는 클라우드 호스팅과 같은 대안은 사용 사례 및 인프라 제약 조건에 따라 턴 서버를 보완하거나 대체 할 수 있습니다. 이 접근법은 사용자에게 타사 서비스에 의존하지 않고 커뮤니케이션 릴레이를 제어 할 수 있도록하여 방화벽의 안전하고 안정적인 횡단을 가능하게합니다.
이 설명은 네트워크 통신에서 방화벽 문제를 우회하기 위해 자체 주최 턴 서버를 사용하는 기술적 근거, 구성, 보안 및 운영 측면을 다룹니다.