How To Install xrdp and enable remote desktop on CentOS 8 / Red Hat Enterprise Linux 8

xrdp is a free and open-source Remote desktop Protocol server which allows you to take remote desktop sessions of Linux server from Windows machine / Linux Machine. It is capable of accepting remote connections from rdesktop, freerdp, and remote desktop clients.
This post will help you to install xrdp on CentOS 8 / RHEL 8.

Prerequisites

Setup EPEL Repository

xrdp package is available on EPEL repository. So, we need to enable the EPEL repository on CentOS 8 / RHEL 8 to install xrdp.

CentOS 8

yum install -y epel-release

RHEL 8

yum install -y

Install Gnome Desktop

Before installing the xrdp server, you would need to install the Gnome desktop using YUM command.

Install xrdp on CentOS 8 / RHEL 8

Install xrdp with TigerVNC package.

yum install -y tigervnc-server xrdp

Output:

Last metadata expiration check: 1 day, 5:23:26 ago on Wed 25 Sep 2019 06:04:22 AM EDT.
Dependencies resolved.
===============================================================================================================
Package Arch Version Repository Size
===============================================================================================================
Installing:
tigervnc-server x86_64 1.9.0-9.el8 AppStream 252 k
xrdp x86_64 1:0.9.11-1.el8 epel 440 k
Installing dependencies:
xorgxrdp x86_64 0.2.11-1.el8 epel 70 k
xrdp-selinux x86_64 1:0.9.11-1.el8 epel 20 k

Transaction Summary
===============================================================================================================
Install 4 Packages

Total download size: 782 k
Installed size: 3.0 M
Downloading Packages:
(1/4): xorgxrdp-0.2.11-1.el8.x86_64.rpm 59 kB/s | 70 kB 00:01
(2/4): xrdp-selinux-0.9.11-1.el8.x86_64.rpm 256 kB/s | 20 kB 00:00
(3/4): xrdp-0.9.11-1.el8.x86_64.rpm 329 kB/s | 440 kB 00:01
(4/4): tigervnc-server-1.9.0-9.el8.x86_64.rpm 179 kB/s | 252 kB 00:01
---------------------------------------------------------------------------------------------------------------
Total 126 kB/s | 782 kB 00:06
warning: /var/cache/dnf/epel-6519ee669354a484/packages/xorgxrdp-0.2.11-1.el8.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID 2f86d6a1: NOKEY
Extra Packages for Enterprise Linux 8 - x86_64 87 kB/s | 1.6 kB 00:00
Importing GPG key 0x2F86D6A1:
Userid : "Fedora EPEL (8) <[email protected]>"
Fingerprint: 94E2 79EB 8D8F 25B2 1810 ADF1 21EA 45AB 2F86 D6A1
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-8
Key imported successfully
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : xorgxrdp-0.2.11-1.el8.x86_64 1/4
Installing : xrdp-selinux-1:0.9.11-1.el8.x86_64 2/4
Running scriptlet: xrdp-selinux-1:0.9.11-1.el8.x86_64 2/4
Installing : xrdp-1:0.9.11-1.el8.x86_64 3/4
Running scriptlet: xrdp-1:0.9.11-1.el8.x86_64 3/4
Installing : tigervnc-server-1.9.0-9.el8.x86_64 4/4
Running scriptlet: tigervnc-server-1.9.0-9.el8.x86_64 4/4
Running scriptlet: xrdp-1:0.9.11-1.el8.x86_64 4/4
Running scriptlet: tigervnc-server-1.9.0-9.el8.x86_64 4/4
Verifying : tigervnc-server-1.9.0-9.el8.x86_64 1/4
Verifying : xorgxrdp-0.2.11-1.el8.x86_64 2/4
Verifying : xrdp-1:0.9.11-1.el8.x86_64 3/4
Verifying : xrdp-selinux-1:0.9.11-1.el8.x86_64 4/4

Installed:
tigervnc-server-1.9.0-9.el8.x86_64 xrdp-1:0.9.11-1.el8.x86_64 xorgxrdp-0.2.11-1.el8.x86_64
xrdp-selinux-1:0.9.11-1.el8.x86_64

Complete!
 

Once xrdp is installed, start the xrdp server service using the systemctl command.

systemctl start xrdp

 

xrdp should now be listening on 3389. You can confirm this by using the netstat command.

netstat -antup | grep xrdp

Output:

tcp        0      0 127.0.0.1:3350          0.0.0.0:*               LISTEN      8067/xrdp-sesman
tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 8068/xrdp

By default, xrdp server service won’t start automatically after a system reboot. Execute the below command to enable the service at system startup.

 systemctl enable xrdp

Firewall

Configure the firewall to allow RDP connections from external machines. The below command will add the exception for RDP port (3389).

firewall-cmd –permanent –add-port=3389/tcp 

 firewall-cmd –reload

Access CentOS 8 / RHEL 8 Machine via xrdp

Now, take an RDP session from any windows machine using Remote Desktop Connection program.