RDP로 원격 접속하기

bluehope·2023년 1월 8일
1

개발환경설정

목록 보기
5/5

지난 글에서 dynamic DNS를 활용하여 외부에서도 domain name을 통해 접속을 할 수 있는 방법을 정리했었다. 이제 외부에서 단순히 접속하는 것이 아니라 Gnome desktop 환경으로도 접속할 수 있도록 RDP 를 구성해 보고자 한다. 물론 Linux는 terminal 로 접속하여 모든 것을 할 수 있으나, Gnome의 GUI를 활용하면 보다 쉽게 할 수 있는 일들도 있고, 또한 Chrome 등을 설치하여 사용할 수 있어 일반 PC 형태로도 사용이 가능하다.
MS Windows를 사용하다 보면 원격접속 기능을 볼 수 있다. 해당 원격접속 기능은 MS에서 개발한 RDP(Remote Desktop Protocol)을 활용하여 local PC에서 다른 PC/서버에 접속할 수 있게 해 주는 방식으로, 서버에서의 GUI환경을 실시간으로 받아와 보여주면서, 사용자의 입력을 서버에 보내 서버를 local PC에서 사용하는 것 처럼 해 주는 기술이다. X-windows에서도 유사 기능을 제공하고 있었으나, XRDP가 Linux에 구현되어 있어 MS Windows PC에서 간편하게 접속이 가능하다. XRDP는 Linux 서버에서 RDP를 오픈소스로 구현한 것으로, MS Windows이외의 운영체제에서 RDP 호환 원격 데스크톱을 제공할 수 있게 해 주고 있다. 즉, X-Windows 시스템의 GUI를 클라이언트에 전송하고 클라이언트로부터 컨트롤을 X-Windows 서버로 릴레이하는 방식으로 동작하며, MS Windows에 설치된 RDP Client를 통해서 서버에 접속이 가능하게 할 수 있어 해당 내용을 구성할 것이다.

EPEL Repository 등록


XRDP는 Rocky Linux 설치에 포함된 기본 repository에 포함되어 있지 않아, EPEL(Extra Packages for Enterprise Linux)을 사용하도록 설정해야 한다. EPEL은 기본 repository에 포함되지 않은 추가 소프트웨어 패키지를 제공하고 있다.

[bluehope@bluehope ~]$ sudo yum -y install epel-release
[sudo] bluehope의 암호: 
마지막 메타자료 만료확인 2:59:03 이전인: 2023년 01월 08일 (일) 오전 10시 52분 56초.
종속성이 해결되었습니다.
=============================================================================================
 꾸러미                                            구조                                      
=============================================================================================
설치 중:
 epel-release                                      noarch                                    

연결 요약
=============================================================================================
설치  1 꾸러미

총계 내려받기 크기: 24 k
설치된 크기 : 35 k
꾸러미 내려받기 중:
epel-release-8-18.el8.noarch.rpm                                                             
---------------------------------------------------------------------------------------------
합계                                                                                         
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중           :                                                                        
  설치 중           : epel-release-8-18.el8.noarch                                           
  스크립트릿 실행 중: epel-release-8-18.el8.noarch                                           
Many EPEL packages require the CodeReady Builder (CRB) repository.
It is recommended that you run /usr/bin/crb enable to enable the CRB repository.

  확인 중           : epel-release-8-18.el8.noarch                                           

설치되었습니다:
  epel-release-8-18.el8.noarch                                                               

완료되었습니다!
[bluehope@bluehope ~]$ 

XRDP 설치하기

xrdp는 MS의 RDP(Remote Desktop Protocol) 서버를 오픈소스로 구현한 것으로 앞서 등록한 EPEL repository에서 가져와서 설치한다.

[bluehope@bluehope ~]$ sudo yum -y install xrdp
[sudo] bluehope의 암호: 
Extra Packages for Enterprise Linux 8 - x86_64              421 kB/s |  13 MB     00:32    
마지막 메타자료 만료확인 0:00:30 이전인: 2023년 01월 08일 (일) 오후 02시 00분 29초.
종속성이 해결되었습니다.
============================================================================================
 꾸러미                  구조              버전                       레포지터리       크기
============================================================================================
설치 중:
 xrdp                    x86_64            1:0.9.21-1.el8             epel            472 k
종속 꾸러미 설치 중:
 imlib2                  x86_64            1.4.9-8.el8                epel            222 k
취약한 종속 꾸러미 설치 중:
 xrdp-selinux            x86_64            1:0.9.21-1.el8             epel             24 k

연결 요약
============================================================================================
설치  3 꾸러미

총계 내려받기 크기: 718 k
설치된 크기 : 2.9 M
꾸러미 내려받기 중:
(1/3): xrdp-selinux-0.9.21-1.el8.x86_64.rpm                 8.5 kB/s |  24 kB     00:02    
[MIRROR] imlib2-1.4.9-8.el8.x86_64.rpm: Curl error (28): Timeout was reached for https://mirror.nevacloud.com/fedora/fedora-epel/8/Everything/x86_64/Packages/i/imlib2-1.4.9-8.el8.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
(2/3): imlib2-1.4.9-8.el8.x86_64.rpm                        3.2 kB/s | 222 kB     01:09    
[MIRROR] xrdp-0.9.21-1.el8.x86_64.rpm: Curl error (28): Timeout was reached for https://mirror.nevacloud.com/fedora/fedora-epel/8/Everything/x86_64/Packages/x/xrdp-0.9.21-1.el8.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] xrdp-0.9.21-1.el8.x86_64.rpm: Curl error (28): Timeout was reached for http://mirror.nevacloud.com/fedora/fedora-epel/8/Everything/x86_64/Packages/x/xrdp-0.9.21-1.el8.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
[MIRROR] xrdp-0.9.21-1.el8.x86_64.rpm: Curl error (28): Timeout was reached for https://mirror.nevacloud.com/fedora/fedora-epel/8/Everything/x86_64/Packages/x/xrdp-0.9.21-1.el8.x86_64.rpm [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
(3/3): xrdp-0.9.21-1.el8.x86_64.rpm                         2.6 kB/s | 472 kB     03:03    
--------------------------------------------------------------------------------------------
합계                                                        3.9 kB/s | 718 kB     03:04     
Extra Packages for Enterprise Linux 8 - x86_64              1.6 MB/s | 1.6 kB     00:00    
GPG키 0x2F86D6A1 가져오는 중:
사용자 ID : "Fedora EPEL (8) <epel@fedoraproject.org>"
지문: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
출처 : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
키 가져오기에 성공했습니다
연결 확인 실행 중
연결 확인에 성공했습니다.
연결 시험 실행 중
연결 시험에 성공했습니다.
연결 실행 중
  준비 중           :                                                                   1/1 
  설치 중           : imlib2-1.4.9-8.el8.x86_64                                         1/3 
  설치 중           : xrdp-selinux-1:0.9.21-1.el8.x86_64                                2/3 
  스크립트릿 실행 중: xrdp-selinux-1:0.9.21-1.el8.x86_64                                2/3 
  설치 중           : xrdp-1:0.9.21-1.el8.x86_64                                        3/3 
  스크립트릿 실행 중: xrdp-1:0.9.21-1.el8.x86_64                                        3/3 
  확인 중           : imlib2-1.4.9-8.el8.x86_64                                         1/3 
  확인 중           : xrdp-1:0.9.21-1.el8.x86_64                                        2/3 
  확인 중           : xrdp-selinux-1:0.9.21-1.el8.x86_64                                3/3 

설치되었습니다:
  imlib2-1.4.9-8.el8.x86_64  xrdp-1:0.9.21-1.el8.x86_64  xrdp-selinux-1:0.9.21-1.el8.x86_64 

완료되었습니다!
[bluehope@bluehope ~]$ 

XRDP 서비스 등록하기

설치가 정상적으로 되었다면 서비스를 등록하고, 기동시킨 프로세스가 정상적인지 확인해 본다.

[bluehope@bluehope ~]$ sudo systemctl start xrdp.service
[sudo] bluehope의 암호: 
[bluehope@bluehope ~]$ sudo systemctl status xrdp.service
● xrdp.service - xrdp daemon
   Loaded: loaded (/usr/lib/systemd/system/xrdp.service; disabled; vendor preset: disabled)
   Active: active (running) since Sun 2023-01-08 15:52:59 KST; 16s ago
     Docs: man:xrdp(8)
           man:xrdp.ini(5)
 Main PID: 131751 (xrdp)
    Tasks: 1 (limit: 48581)
   Memory: 1016.0K
   CGroup: /system.slice/xrdp.service
           └─131751 /usr/sbin/xrdp --nodaemon

 1월 08 15:52:59 bluehope systemd[1]: Started xrdp daemon.
 1월 08 15:52:59 bluehope xrdp[131751]: [INFO ] starting xrdp with pid 131751
 1월 08 15:52:59 bluehope xrdp[131751]: [INFO ] address [0.0.0.0] port [3389] mode 1
 1월 08 15:52:59 bluehope xrdp[131751]: [INFO ] listening to port 3389 on 0.0.0.0
 1월 08 15:52:59 bluehope xrdp[131751]: [INFO ] xrdp_listen_pp done
[bluehope@bluehope ~]$ sudo systemctl enable xrdp.service
[bluehope@bluehope ~]$ 

방화벽 등록하기

위의 서비스포트 목록을보면 1월 08 15:52:59 bluehope xrdp[131751]: [INFO ] address [0.0.0.0] port [3389] mode 1 이라고 되어 있어 3389 포트를 사용함을 알 수 있다. 따라서 해당 포트에 대해서 방화벽 등록을 해야 한다. 보안을 고려한다면 내부 네트워크 등으로 제한하는 것도 고려해야 한다. 우선은 public 전체에서 TCP로 들어오는 트래픽을 허용하는 것으로 등록한다.

[bluehope@bluehope ~]$ sudo firewall-cmd --add-port=3389/tcp --permanent
[sudo] bluehope의 암호: 
success
[bluehope@bluehope ~]$ sudo firewall-cmd --reload
success
[bluehope@bluehope ~]$ 

Client로 접속하기

MS Windows에서 제공하는 원격 데스크탑을 이용하여 접속한다. Windows10 에는 '원격 데스크톱 연결'이 기본으로 설치되어 있어 바로 사용이 가능하다.

컴퓨터 라고 되어 있는 항목에 방금 설치한 host의 IP를 입력하면 접속이 가능하다. 그러나 공식 인증서를 사용하지 않았기 때문에 아래와 같은 인증서 오류가 발생한다. 다시 묻지 않음을 표시하여 넘어갈 수 있다.

인증서 질의 창에 '예(Y)'를 선택하여 다음으로 넘어가면 성공적으로 XRPD의 화면을 볼 수 있으나, 이 화면은 익숙하지 않은 화면이다.

해당 화면에서 ID/PW를 입력하고 들어가면 정상적으로 Gnome UI를 사용할 수 있게 된다.

profile
다시 시작해보자!

0개의 댓글