Ubuntu 22.04에서 xrdp를 사용하여 원격 데스크톱 프로토콜 활성화하는 방법

저자는 COVID-19 구호 기금을(를) 기부를 위한 글쓰기 프로그램의 일환으로 선정했습니다.

소개

원격 데스크톱 프로토콜 (RDP)은 Microsoft가 개발한 네트워크 프로토콜로, 사용자가 원격 Windows 서버의 그래픽 사용자 인터페이스에 원격으로 접근하고 상호 작용할 수 있게 합니다. RDP는 클라이언트-서버 모델에서 작동하며, 로컬 머신에 RDP 클라이언트가 설치되고 원격 서버에 RDP 서버가 설치됩니다.

RDP는 Windows 원격 연결에 널리 사용되지만, xrdp와 같은 도구를 사용하여 원격 Linux 서버의 그래픽 사용자 인터페이스에도 액세스하고 상호 작용할 수 있습니다. 이는 RDP 서버의 오픈 소스 구현입니다.

이 튜토리얼에서는 Ubuntu 22.04 서버에 xrdp를 사용하여 RDP 서버를 설치하고 구성하고, 로컬 머신에서 RDP 클라이언트를 사용하여 액세스하는 방법에 대해 이해하게 될 것입니다. RDP 연결을 구성하고 사용하여 원격 Linux 서버에 액세스하는 방법을 파악하게 됩니다.

GitHub에서 프론트엔드 애플리케이션을 DigitalOcean 앱 플랫폼을 사용하여 배포하세요. DigitalOcean이 앱의 확장에 집중하도록 하세요.

전제 조건

이 튜토리얼을 완료하려면 다음이 필요합니다:

  • 최소 1GB의 RAM, 방화벽 및 최소 1GB의 RAM이있는 sudo 권한이있는 비 루트 사용자가있는 Ubuntu 22.04 서버가 필요합니다. 이것은 Ubuntu 22.04 초기 서버 설정 가이드를 따라 설정할 수 있습니다.

  • RDP 클라이언트가 설치된 로컬 컴퓨터가 필요합니다. 다양한 운영 체제에 대한 사용 가능한 RDP 클라이언트 목록은 아래에 제공됩니다:

단계 1 – 우분투에 데스크톱 환경 설치하기

이 단계에서는 우분투 서버에 데스크톱 환경을 설치하고 구성합니다. 기본적으로 우분투 서버는 터미널 환경만 제공합니다. 사용자 인터페이스에 액세스하려면 데스크톱 환경을 설치해야 합니다.

우분투에 대한 사용 가능한 옵션 중에서 Xfce 데스크톱 환경을 설치합니다. Xfce는 Linux 기반 시스템에 대한 가벼운 사용자 친화적 데스크톱 환경을 제공합니다.

먼저 SSH를 사용하여 서버에 연결하고 다음 명령을 사용하여 사용 가능한 패키지 목록을 업데이트합니다.

  1. sudo apt update

다음으로 서버에 xfcexfce-goodies 패키지를 설치합니다.

  1. sudo apt install xfce4 xfce4-goodies -y

그런 다음 표시 관리자를 선택하라는 메시지가 표시됩니다. 표시 관리자는 그래픽 로그인 메커니즘과 사용자 세션을 관리하는 프로그램입니다. 사용 가능한 표시 관리자 목록에서 아무 옵션을 선택할 수 있지만 이 튜토리얼에서는 gdm3을 사용합니다.

데스크톱 환경을 설치한 후, 이제 서버에 xrdp를 설치합니다.

2단계 – Ubuntu에 xrdp 설치

xrdp는 리눅스 기반 서버에 RDP 연결을 허용하는 RDP 서버의 오픈 소스 구현입니다. 이 단계에서는 Ubuntu 서버에 xrdp를 설치합니다.

xrdp를 설치하려면 터미널에서 다음 명령을 실행하세요:

  1. sudo apt install xrdp -y

xrdp를 설치한 후, systemctl을 사용하여 xrdp의 상태를 확인하세요:

  1. sudo systemctl status xrdp

이 명령은 상태를 active (running)으로 표시합니다:

Output
● xrdp.service - xrdp daemon Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled) Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago Docs: man:xrdp(8) man:xrdp.ini(5) Main PID: 17904 (xrdp) Tasks: 1 (limit: 1131) Memory: 1016.0K CGroup: /system.slice/xrdp.service └─17904 /usr/sbin/xrdp

xrdp의 상태가 running이 아닌 경우, 다음 명령을 사용하여 서비스를 수동으로 시작해야 할 수도 있습니다:

  1. sudo systemctl start xrdp

위 명령을 실행한 후, 상태를 다시 확인하여 xrdp가 running 상태인지 확인하세요.

서버에 xrdp를 설치했습니다. 다음으로, 리모트 클라이언트에서의 연결을 허용하기 위해 xrdp 구성을 검토합니다.

3단계 – xrdp 구성 및 방화벽 업데이트

이 단계에서는 /etc/xrdp/xrdp.ini에 저장된 xrdp의 기본 구성을 검토하고 RDP 연결을 위한 구성을 추가할 것입니다. 또한 방화벽 설정을 업데이트할 것입니다.

xrdp.ini는 xrdp 서버로의 RDP 연결을 설정하기 위한 기본 구성 파일입니다. 구성 파일은 RDP 연결 요구 사항을 충족시키기 위해 수정하고 사용자 정의할 수 있습니다.

원하는 텍스트 편집기(예: nano)에서 파일을 엽니다:

  1. sudo nano /etc/xrdp/xrdp.ini

구성 파일에는 다양한 섹션이 포함되어 있습니다:

  • Globals는 xrdp에 대한 몇 가지 전역 구성 설정을 정의합니다.
  • Logging은 로그에 대한 로깅 하위 시스템 매개변수를 정의합니다.
  • Channels은 RDP가 지원하는 여러 채널 매개변수를 정의합니다.
  • Session types은 xrdp에 의해 지원되는 여러 세션 유형을 정의합니다. 각 세션 유형 구성은 해당 세션 유형 이름을 대괄호로 묶은 별도의 섹션으로 정의됩니다. 예: [Xorg][XVnc]. 파일에는 [Sessions types] 머릿글이 없습니다. 대신 주석으로 작성됩니다.

구성 파일에서 Session types 섹션으로 이동합니다. 여러 지원되는 세션 유형 및 해당 매개변수가 나열됩니다:

Output
... ; ; Session types ; ; Some session types such as Xorg, X11rdp, and Xvnc start a display server. ; Startup command-line parameters for the display server are configured ; in sesman.ini. See and configure also sesman.ini. [Xorg] name=Xorg lib=libxup.so username=ask password=ask ip=127.0.0.1 port=-1 code=20 [Xvnc] name=Xvnc lib=libvnc.so username=ask password=ask ip=127.0.0.1 port=-1 #xserverbpp=24 #delay_ms=2000 [vnc-any] ... [neutrinordp-any] ... ...

기본적으로 usernamepassword 매개변수는 ask로 설정되어 있으며, 이는 사용자가 RDP를 통해 연결하려면 사용자 이름과 암호를 입력하도록 프롬프트됨을 의미합니다. 필요한 경우 name, username, 및 password와 같은 매개변수를 수정할 수 있습니다. 서버로의 초기 RDP 연결에 대해 기본 구성이 적절합니다.

완료되면 파일을 저장하고 닫으십시오.

이제 사용자 홈 디렉토리로 이동하십시오(이미 그곳에 있는 경우):

  1. cd ~

다음으로, /home/sammy 아래에 .xsession 파일을 생성하고 로그인시 사용할 세션 관리자로 xfce4-session을 추가하십시오:

  1. echo "xfce4-session" | tee .xsession

tee는 문자열 "xfce4-session"을 파일 .xsession에 씁니다. 위 구성은 그래픽 로그인 요청시 xfce4-session을 세션 관리자로 사용합니다. 데스크탑 환경으로 xfce를 설치했기 때문에 xfce4-session이 해당 세션 관리자로 작동합니다. 이 정보를 .xsession 파일에 포함하지 않으면 세션 관리자가 선택되지 않고 RDP 세션이 그래픽 디스플레이에 연결되지 않습니다.

xrdp 서버를 다시 시작하십시오:

  1. sudo systemctl restart xrdp

다음으로 방화벽을 구성하여 공용 IP에서 포트 3389로 원격 연결을 허용하십시오. RDP 연결은 TCP/IP 포트 3389에서 제공됩니다. RDP를 통해 원격 서버에 액세스하려면 방화벽에서 포트 3389를 허용해야 합니다.

먼저 로컬 머신의 공용 IP를 찾으십시오:

  1. curl ifconfig.me

On Windows, Windows Command Prompt를 사용하여이 명령을 실행하십시오.

curlifconfig.me에 요청을 보내 공용 IP를 출력으로 반환합니다:

Output
... your_local_ip

다음으로 원격 서버에서 3389 RDP 포트에 대한 액세스를 허용하려면 마지막 명령의 출력으로 your_local_ip을(를) 대체하십시오:

  1. sudo ufw allow from your_local_ip/32 to any port 3389

UFW 방화벽의 상태를 확인하십시오:

  1. sudo ufw status

출력은 다음과 같아야 합니다:

Output
Status: Active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3389 ALLOW your_local_ip OpenSSH (v6) ALLOW Anywhere (v6) ...

이제 포트 3389를 공용 IP에서의 연결을 수락하도록 설정했습니다. 다음으로 로컬 머신의 RDP 연결을 원격 서버로 테스트하겠습니다.

단계 4 — RDP 연결 테스트

이 단계에서 로컬 머신에서 RDP 연결을 테스트하게 됩니다. 아래 섹션에는 Windows, macOS 및 Linux 기계에서 연결을 테스트하기 위한 작업이 포함되어 있습니다.

Windows에서 RDP 연결 테스트

Windows의 원격 데스크톱 연결 앱을 먼저 실행하여 연결을 테스트하십시오.

컴퓨터사용자 이름의 입력란에 원격 서버의 공용 IP와 사용자 이름을 입력하십시오. 옵션 표시를 위해 아래쪽 화살표를 눌러 사용자 이름을 입력할 수도 있습니다.

연결 버튼을 누르세요. 원격 데스크톱이 원격 컴퓨터에 연결할 수 없다는 경고가 표시되면 시스템 설정에서 원격 데스크톱 옵션이 켜져 있는지 확인하세요.

를 누르세요. 신원 확인 팝업이 나타나면

, 그런 다음 원격 서버의 사용자 이름(sammy) 및 초기 서버 설정 중에 사용자 sammy에 대해 생성한 암호를 입력하세요. 확인을 누르세요.

로그인한 후에는 Ubuntu 데스크톱 환경에 액세스할 수 있어야 합니다.

RDP를 사용하여 로컬 머신에서 원격 Ubuntu 서버에 성공적으로 연결했습니다. 그래픽 데스크톱을 사용한 작업을 마쳤다면 종료 버튼으로 창을 닫을 수 있습니다.

macOS에서 RDP 연결 테스트

macOS의 원격 데스크톱 연결 클라이언트를 사용하여 연결을 테스트하려면 먼저 Microsoft 원격 데스크톱 연결 앱을 시작하세요.

PC 추가를 누르고, 채워 넣을 상자에 원격 서버의 공용 IP를 입력하세요.

연결 설정 중에 사용자 계정 추가할 수 있습니다.

만약 설정 중에 사용자를 추가하지 않으면 사용자 로그인 자격 증명을 입력하라는 메시지가 표시됩니다:

를 눌러 신원 확인 팝업을 우회하세요:

로그인하면 Ubuntu 원격 데스크톱에 액세스할 수 있습니다. 그래픽 데스크톱 사용을 마쳤으면 종료 버튼으로 닫을 수 있습니다.

Linux에서 RDP 연결 테스트

로컬 Linux 기계에서 RDP 연결을 테스트하려면 RDP 클라이언트가 필요합니다. 먼저 Ubuntu용 remmina RDP 클라이언트를 설치하세요:

  1. sudo apt install remmina

설치를 완료하라는 메시지가 표시되면 y를 선택하세요. 이 명령은 Remmina을 설치합니다. Ubuntu 시스템에서 오픈 소스 원격 데스크톱 클라이언트입니다. 다른 Linux 배포판의 경우 Remmina 설명서를 확인할 수 있습니다.

설치 후 로컬 Linux 기계에서 remmina 애플리케이션을 실행하고 원격 서버의 공용 IP를 입력하세요. 키보드에서 Enter를 눌러 원격 데스크톱에 연결합니다.

그런 다음 원격 서버의 사용자 이름을 입력하세요 (이 튜토리얼에서 사용자 이름은 sammy입니다) 및 초기 서버 설정 중에 사용자에 대한 암호를 입력하세요. Ok를 누릅니다.

사용자의 원격 데스크톱 잠금 해제를 위해 다시 암호를 입력해야 할 수 있습니다.

한번 로그인하면 우분투 데스크톱 환경에 접근할 수 있어야 합니다.

RDP를 사용하여 로컬 머신에서 원격 우분투 서버에 성공적으로 연결되었습니다. 그래픽 데스크톱을 사용한 후 종료 버튼으로 닫을 수 있습니다.

원격 연결이 작동하는지 확인한 후에는 원격 Linux 서버의 그래픽 인터페이스를 사용해야 할 때마다 이 시퀀스를 사용할 수 있습니다.

결론

이 문서에서는 로컬 머신에서 RDP 연결을 통해 원격 우분투 서버의 그래픽 데스크톱에 연결하도록 xrdp를 구성했습니다.

이제 리눅스 서버에 대한 VNC 연결을 구성해 볼 수 있습니다. 우분투 20.04에 VNC를 설치하고 구성하는 방법을 참조하십시오. VNC는 리눅스 데스크톱에 대한 원격 연결에 대한 다른 옵션입니다.

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-remote-desktop-protocol-using-xrdp-on-ubuntu-22-04