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


저자는 Write for DOnations 프로그램을 선택했습니다.

소개

RDP(원격 데스크톱 프로토콜)는 사용자가 원격 Windows 서버의 그래픽 사용자 인터페이스에 원격으로 액세스하고 상호 작용할 수 있도록 Microsoft에서 개발한 네트워크 프로토콜입니다. RDP는 RDP 클라이언트가 로컬 시스템에 설치되고 RDP 서버가 원격 서버에 설치되는 클라이언트-서버 모델에서 작동합니다.

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

이 자습서에서는 Ubuntu 22.04 서버에서 xrdp를 사용하여 RDP 서버를 설치 및 구성하고 로컬 컴퓨터에서 RDP 클라이언트를 사용하여 액세스합니다. RDP 연결을 구성하고 사용하여 원격 Linux 서버에 대한 액세스를 설정하는 방법을 이해하게 됩니다.

전제 조건

이 자습서를 완료하려면 다음이 필요합니다.

  • Ubuntu 22.04 초기 서버 설정 가이드에 따라 설정할 수 있는 sudo 권한, 방화벽 및 최소 1GB RAM이 있는 루트가 아닌 사용자가 있는 Ubuntu 22.04 서버 1대.\n
  • RDP 클라이언트가 설치된 로컬 컴퓨터. 다양한 운영 체제에서 사용 가능한 RDP 클라이언트 목록은 다음과 같습니다.\n
    • Windows에서는 기본 원격 데스크톱 연결 애플리케이션을 사용할 수 있습니다.
    • macOS에서는 Microsoft 원격 데스크톱 애플리케이션을 사용할 수 있습니다.
    • Linux에서는 Remmina를 사용할 수 있습니다.

    1단계 — Ubuntu에 데스크탑 환경 설치

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

    Ubuntu에 사용 가능한 옵션에서 Xfce 데스크탑 환경을 설치합니다. Xfce는 Linux 기반 시스템을 위한 가볍고 사용자 친화적인 데스크톱 환경을 제공합니다.

    시작하려면 SSH를 사용하여 서버에 연결하고 다음 명령을 사용하여 사용 가능한 패키지 목록을 업데이트하십시오.

    1. sudo apt update

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

    1. sudo apt install xfce4 xfce4-goodies -y

    그래픽 로그인 메커니즘과 사용자 세션을 관리하는 프로그램인 디스플레이 관리자를 선택하라는 메시지가 표시됩니다. 사용 가능한 디스플레이 관리자 목록에서 옵션을 선택할 수 있지만 이 자습서에서는 gdm3을 사용합니다.

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

    2단계 — Ubuntu에 xrdp 설치

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

    xrdp를 설치하려면 터미널에서 다음 명령을 실행하십시오.

    1. sudo apt install xrdp -y

    xrdp를 설치한 후 systemctl을 사용하여 xrdp의 상태를 확인합니다.

    1. sudo systemctl status xrdp

    이 명령은 상태를 활성(실행 중)으로 표시합니다.

    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의 상태가 실행 중이 아닌 경우 다음 명령을 사용하여 서비스를 수동으로 시작해야 할 수 있습니다.

    1. sudo systemctl start xrdp

    위 명령을 실행한 후 상태를 다시 확인하여 xrdp가 실행 중 상태인지 확인합니다.

    이제 서버에 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가 지원하는 여러 채널 매개변수를 정의합니다.
    • 세션 유형은 xrdp가 지원하는 여러 세션 유형을 정의합니다. 모든 세션 유형 구성은 [Xorg][XVnc]와 같이 대괄호로 묶인 세션 유형 이름 아래의 별도 섹션으로 정의됩니다. 파일에 [Sessions 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. 필요한 경우 이름, 사용자 이름비밀번호와 같은 매개변수를 수정할 수 있습니다. 서버에 대한 초기 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

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

    먼저 로컬 컴퓨터의 공용 IP를 찾습니다.

    1. curl ifconfig.me

    Windows에서는 Windows 명령 프롬프트를 사용하여 이 명령을 실행합니다.

    curl은 공용 IP를 출력으로 반환하는 ifconfig.me에 대한 요청을 배치합니다.

    Output
    ... your_local_ip

    다음으로 원격 서버의 RDP 포트 3389에 대한 액세스를 허용하고 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) ...

    이제 공용 IP에서 연결을 허용하도록 포트 3389를 활성화했습니다. 다음으로 원격 서버에 대한 로컬 시스템의 RDP 연결을 테스트합니다.

    4단계 - RDP 연결 테스트

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

    Windows에서 RDP 연결 테스트

    Windows에서 원격 데스크톱 연결 클라이언트를 사용하여 연결을 테스트하려면 먼저 원격 데스크톱 연결 앱을 시작합니다.

    컴퓨터 및 사용자 이름에 대해 채울 수 있는 텍스트 상자에 원격 서버의 공용 IP 및 사용자 이름을 입력합니다. 옵션 표시에 대한 아래쪽 화살표를 눌러 사용자 이름을 입력해야 할 수도 있습니다.

    연결 버튼을 누릅니다. 원격 데스크톱이 원격 컴퓨터에 연결할 수 없습니다라는 경고를 받으면 시스템 설정에서 원격 데스크톱 옵션을 켰는지 확인하세요.

    신원 확인 팝업이 나타나면 예를 누릅니다.

    그런 다음 원격 서버의 사용자 이름(sammy)과 초기 서버 설정 중에 사용자 sammy에 대해 생성한 암호를 입력합니다. 확인을 누릅니다.

    로그인하면 Ubuntu Desktop 환경에 액세스할 수 있습니다.

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

    macOS에서 RDP 연결 테스트

    macOS에서 원격 데스크톱 연결 클라이언트를 사용하여 연결을 테스트하려면 먼저 Microsoft 원격 데스크톱 연결 앱을 시작합니다.

    PC 추가를 누른 다음 채울 수 있는 상자에 원격 서버의 공용 IP를 입력합니다.

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

    설정 중에 사용자를 추가하지 않으면 사용자 로그인 자격 증명을 묻는 메시지가 표시됩니다.

    신원 확인 팝업을 무시하려면 예를 누르십시오.

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

    Linux에서 RDP 연결 테스트

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

    1. sudo apt install remmina

    설치를 완료하라는 메시지가 표시되면 y를 선택합니다. 이 명령은 설치를 위해 Remmina 설명서를 설치합니다.

    설치가 완료되면 로컬 Linux 시스템에서 remmina 애플리케이션을 실행하고 채울 수 있는 상자에 원격 서버의 공용 IP를 입력합니다. 키보드에서 Enter 키를 눌러 원격 데스크톱에 연결합니다.

    그런 다음 원격 서버의 사용자 이름(이 자습서의 경우 사용자 이름은 sammy임)과 초기 서버 설정 중에 사용자에 대해 생성한 암호를 입력합니다. 확인을 누릅니다.

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

    로그인하면 Ubuntu Desktop 환경에 액세스할 수 있습니다.

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

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

    결론

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

    이제 Ubuntu 20.04에서 VNC를 설치하고 구성하는 방법을 사용하여 Linux 서버에 대한 VNC 연결 구성을 시도할 수 있습니다. VNC는 Linux 데스크톱에 대한 원격 연결을 위한 또 다른 옵션입니다.