업데이트됨 1개월 전
원격 데스크톱 프로토콜(RDP)은 Microsoft가 간단한 문제를 해결하기 위해 만든 프로토콜입니다: Windows 컴퓨터를 사용해야 하는데, 그 앞에 앉아 있지 않은 상황입니다.
명령줄만 제공하는 SSH와 달리, RDP는 모든 것을 제공합니다—데스크톱, 시작 메뉴, 마우스 커서까지. 원격으로 컴퓨터를 제어하는 것이 아닙니다. 그 앞에 직접 앉아 있는 것입니다. 이 차이는 중요합니다.
RDP가 현실처럼 느껴지는 이유
RDP로 연결하면, 원격 Windows 컴퓨터는 화면을 캡처하여 사용자에게 스트리밍합니다. RDP 클라이언트는 이 스트림을 표시하는 동시에, 사용자의 키보드와 마우스 동작을 서버로 전송합니다. 서버는 사용자가 물리적으로 그 자리에 있는 것처럼 입력을 처리하고, 화면을 업데이트한 후 변경 사항을 스트리밍합니다.
이것은 단순한 화면 공유가 아닙니다. RDP는 전송 내용을 정교하게 관리합니다. 전체 화면 캡처를 보내는 대신, 화면에서 변경된 부분만 추적하여 해당 영역만 강하게 압축해서 전송합니다. 정적인 데스크톱은 대역폭을 거의 사용하지 않습니다. 창을 이동하면, 그 사각형 영역만 전송됩니다.
연결은 기본적으로 3389번 포트를 사용하며, TLS로 암호화됩니다. 암호화된 터널이 설정된 후 인증을 진행합니다—보통 사용자 이름과 비밀번호로 하지만, 필요한 환경에서는 인증서 기반 인증도 사용할 수 있습니다.
RDP가 전달하는 것들
RDP는 화면과 입력만 전송하는 것이 아닙니다. 이 프로토콜은 로컬 컴퓨터와 원격 컴퓨터 사이에 다리를 만들어줍니다:
- 로컬 드라이브가 원격 세션의 파일 탐색기에 나타납니다. 폴더 간에 파일을 이동하듯이 로컬과 원격 사이에서 파일을 드래그할 수 있습니다.
- 프린터는 로컬 컴퓨터에 있는 것이 원격 애플리케이션에서 사용 가능해집니다. 서버에서 문서를 인쇄하면, 내 책상 프린터에서 출력됩니다.
- 클립보드가 연결 전반에서 작동합니다. 로컬에서 텍스트를 복사하고, 원격에서 붙여넣을 수 있습니다.
- 오디오는 양방향으로 전달될 수 있습니다—원격 시스템의 소리를 듣거나, 마이크를 원격 애플리케이션으로 연결할 수 있습니다.
이것이 RDP를 단순한 원격 제어가 아닌 실제 현장에 있는 것처럼 느끼게 만드는 이유입니다. 로컬과 원격의 경계가 흐려집니다.
RDP와 SSH 비교
둘 다 원격 접속을 제공합니다. 차이는 무엇에 접속하느냐에 있습니다.
SSH는 터미널을 제공합니다—명령을 입력하고 텍스트 출력을 받는 명령줄입니다. 가볍고, 느린 연결에서도 작동하며, Linux 서버의 표준입니다. 대부분의 서버 관리에는 그래픽이 필요하지 않습니다.
RDP는 그래픽 데스크톱을 제공합니다. 화면 전송에 대역폭이 필요하기 때문에 더 무겁지만, 클릭이 필요한 경우에는 필수입니다—그래픽 관리 도구 실행, GUI를 통한 Windows 설정 구성, 또는 명령줄 대안이 없는 애플리케이션 사용 시 필요합니다.
Windows Server에는 이제 OpenSSH가 포함되어 있어서 두 가지를 모두 사용할 수 있습니다. 빠른 명령과 자동화에는 SSH, 화면을 봐야 할 때는 RDP를 사용합니다.
보안 문제
RDP는 악명이 자자합니다—그리고 그 이유는 충분합니다. 프로토콜 자체는 문제없습니다—암호화되어 있고, 인증을 거치며, 기술적으로도 탄탄합니다. 문제는 사람에게 있습니다.
3389번 포트는 잠기지 않은 문처럼 그 자리에 있습니다. 공격자들은 끊임없이 인터넷 전체에서 이 포트를 스캔합니다. 노출된 RDP 서버를 찾으면, 하나가 맞을 때까지 비밀번호를 시도합니다. 많은 경우 성공합니다. 취약한 비밀번호, 기본 계정, 인터넷에 연결되어서는 안 될 시스템들—매일 침해됩니다.
절대로 RDP를 인터넷에 직접 노출하지 마세요. 이것은 선택적인 보안 조언이 아닙니다. 최소한의 기준입니다. VPN, SSH 터널, 또는 RDP 게이트웨이를 통해 RDP에 접근하세요. 인터넷과 해당 포트 사이에 장벽을 만드세요.
그 외에도:
- **네트워크 수준 인증(NLA)**은 전체 세션이 설정되기 전에 자격 증명을 요구하여, 일부 공격을 방지하고 잘못된 시도로 인한 부하를 줄입니다.
- 강력한 비밀번호 또는 인증서 인증을 사용하세요. 비밀번호 추측 공격이 통하는 이유는 비밀번호를 추측할 수 있기 때문입니다.
- 계정 잠금 정책을 실패한 시도 이후에 적용하세요. 무차별 대입 공격을 느리게 만드세요.
- 정기적인 패치. BlueKeep(CVE-2019-0708)은 인증 없이 원격 코드 실행을 허용했습니다. 취약점은 발생합니다. 업데이트가 이를 수정합니다.
- 중요 시스템에는 **다중 인증(MFA)**을 사용하세요. 비밀번호 하나를 도둑맞더라도 그걸로 끝나면 안 됩니다.
기본 포트를 변경하면 최소한의 보호는 되지만—결정적인 공격자들은 모든 포트를 스캔합니다—자동화된 스캐너의 공격은 줄여줍니다.
원격 데스크톱과 원격 데스크톱 서비스
Microsoft는 "원격 데스크톱"이라는 표현을 두 가지 다른 의미로 사용합니다.
원격 데스크톱은 Windows Pro 및 Enterprise에 있는 기능으로, 한 사람이 컴퓨터에 연결할 수 있습니다. 연결하면 로컬 세션이 잠깁니다. 독점적인 접근 권한을 갖게 됩니다. 이것은 원격 관리나 다른 곳에서 자신의 컴퓨터에 접속하기 위한 것입니다.
**원격 데스크톱 서비스(RDS)**는 Windows Server 역할로, 여러 사용자가 동시에 연결하여 각자 독립적인 세션을 사용할 수 있습니다. 이것은 애플리케이션을 중앙에서 호스팅하기 위한 것입니다—사용자들은 로컬에 설치하는 대신 서버에서 소프트웨어를 실행합니다. 추가 라이선스(RDS CAL)가 필요하며, 가상 데스크톱 인프라에 일반적으로 사용됩니다.
같은 프로토콜, 다른 사용 사례입니다.
RDP가 존재하는 곳
RDP 서버 기능은 Windows에 내장되어 있지만, 모든 에디션에 있는 것은 아닙니다:
- Windows Server 에디션은 기본적으로 활성화되어 있습니다(방화벽 적용)
- Windows Pro 및 Enterprise에 포함되어 있으며, 설정에서 활성화합니다
- Windows Home은 다른 시스템에 연결할 수 있지만 들어오는 연결을 받을 수 없습니다
클라이언트 측에서는 모든 플랫폼에 옵션이 있습니다:
- Windows에는 원격 데스크톱 연결(
mstsc)이 포함되어 있습니다 - macOS에는 App Store의 Microsoft 원격 데스크톱이 있습니다
- iOS와 Android에는 Microsoft 원격 데스크톱 앱이 있습니다
- Linux는 Remmina, rdesktop, 또는 FreeRDP를 사용합니다
Linux는 xrdp를 통해 RDP 연결을 받을 수도 있지만, SSH가 Linux 시스템의 주요 원격 접속 방법으로 남아 있습니다.
성능 이야기
대역폭이 품질을 결정합니다. RDP는 환경에 맞게 적응합니다—빠른 네트워크는 풀 컬러와 부드러운 화면 업데이트를 제공하고, 느린 네트워크는 압축 아티팩트와 낮은 색 심도로 전환됩니다. 이 프로토콜은 품질을 우아하게 낮추는 데 놀랍도록 능숙합니다.
지연 시간이 체감을 결정합니다. 충분한 대역폭이 있더라도, 높은 핑 시간은 모든 것을 느리게 만듭니다. 클릭이 서버에 도달하는 데 시간이 걸리고, 화면 업데이트가 돌아오는 데 시간이 걸립니다. 이 지연은 모든 상호작용마다 누적됩니다.
경험을 조정할 수 있습니다:
- 색 심도를 32비트에서 16비트로 낮추기(눈에 띄지만 사용 가능)
- 바탕화면 배경 비활성화(정적 이미지를 반복해서 전송하는 것은 대역폭 낭비)
- 창 애니메이션 및 시각 효과 끄기
- 글꼴 스무딩 비활성화(텍스트가 거칠어 보이지만 더 빠르게 전송)
현대적인 RDP(8.0 이상)에는 하드웨어 가속 그래픽을 위한 RemoteFX가 포함되어 있어, 원격 세션에서 비디오 재생 및 3D 애플리케이션 성능을 향상시킵니다.
기본 원격 데스크톱 너머
RemoteApp은 전체 데스크톱 대신 개별 애플리케이션을 게시합니다. 애플리케이션 창이 로컬 데스크톱에 나타나며, 로컬 앱처럼 보이지만 실제로는 서버에서 실행됩니다. 사용자는 원격 데스크톱을 보거나 상호작용하지 않고, 필요한 애플리케이션만 사용합니다.
다중 모니터 지원으로 RDP 세션을 여러 디스플레이에 걸쳐 확장할 수 있습니다. 원격 데스크톱이 로컬 환경과 동일한 작업 공간에 걸쳐 있을 수 있습니다.
스마트 카드 리디렉션을 통해 하드웨어 인증 토큰이 원격 세션을 통해 작동할 수 있습니다.
대안
VNC는 플랫폼 독립적이고 더 간단하지만 덜 효율적입니다. 어디서나 작동하지만 RDP의 최적화와 고급 기능이 부족합니다.
TeamViewer, AnyDesk, Chrome Remote Desktop은 제3자 서비스를 통해 라우팅하여, 외부 인프라에 의존하는 대가로 방화벽 통과를 더 쉽게 만듭니다.
Apache Guacamole은 웹 브라우저를 통한 RDP 접근을 제공합니다—클라이언트 소프트웨어가 필요 없습니다.
Windows 원격 지원은 RDP의 독점적 접근 모델과 달리, 두 사용자가 동시에 같은 세션을 보는 지원 시나리오를 위해 설계되었습니다.
RDP에 대해 자주 묻는 질문
Windows Home에서 원격 데스크톱을 활성화할 수 없는 이유는 무엇인가요?
Microsoft는 RDP 서버 기능을 Pro, Enterprise 및 Server 에디션에만 제공합니다. Windows Home은 클라이언트로 다른 시스템에 연결할 수 있지만 들어오는 RDP 연결을 받을 수 없습니다. 이것은 기술적 제한이 아닌 라이선스 결정입니다. Chrome Remote Desktop과 같은 타사 솔루션은 Home 에디션에서도 작동합니다.
RDP는 암호화되나요?
네. 현대적인 RDP는 기본적으로 TLS 암호화를 사용합니다. 연결은 인증이 이루어지기 전에 암호화되어, 자격 증명과 세션 내용을 도청으로부터 보호합니다. 그러나 암호화는 공격자가 비밀번호를 추측하는 경우에는 도움이 되지 않습니다—이것이 노출된 RDP 서버가 암호화와 무관하게 위험한 이유입니다.
인터넷을 통해 RDP를 사용할 수 있나요?
기술적으로는 가능하지만, 실제로는 권장하지 않습니다—직접 노출은 안 됩니다. 3389번 포트를 인터넷에 노출하면 끊임없는 공격을 초래합니다. 대신, VPN(RDP를 인증 뒤에 두는), SSH 터널, 또는 Microsoft의 RDP 게이트웨이를 통해 연결하세요. 이것들은 인터넷과 RDP 서버 사이에 안전한 장벽을 만들어줍니다.
RDP와 VNC의 차이점은 무엇인가요?
RDP는 Microsoft의 프로토콜로, Windows에 최적화되어 있으며 드라이브 리디렉션, RemoteApp, 정교한 압축과 같은 고급 기능을 갖추고 있습니다. VNC는 플랫폼 독립적이고 더 간단합니다—어디서나 작동하지만 전송 효율이 낮고 많은 RDP 기능이 부족합니다. Windows 시스템에서는 RDP가 거의 항상 더 나은 선택입니다.
RDP 세션이 느린 이유는 무엇인가요?
보통 대역폭이나 지연 시간 문제입니다. 원격 시스템에 대한 연결 속도와 핑 시간을 확인하세요. 대역폭이 제한된 경우, RDP 클라이언트 설정에서 색 심도를 낮추고 시각 효과를 비활성화하세요. 지연 시간이 높은 경우(먼 서버나 위성 연결에서 흔함), 해결책이 없습니다—왕복 시간이라는 물리적 한계는 어떻게도 극복할 수 없습니다.
이 페이지가 도움이 되었나요?