RDP into CentOS 7 with XRDP

From the man page, xrdp is a remote desktop protocol (RDP) server. Unlike Windows, xrdp will not display a Windows desktop but an X window desktop to the user. To install on a CentOS 7 Linux box with a GUI installed, turns out to be quite simple.

A prerequisite will be the EPEL repository.

yum install http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm

Now that EPEL is ready, install and configure xrdp.

yum install xrdp tigervnc-server
xrdp

You’ll note that the tigervnc-server was already installed for this box, however, is left in the instructions for completeness.

systemctl start xrdp.service
firewall-cmd --permanent --zone=public --add-port=3389/tcp
firewall-cmd --reload
chcon --type=bin_t /usr/sbin/xrdp
chcon --type=bin_t /usr/sbin/xrdp-sesman
systemctl enable xrdp.service

From your Windows box, you may use Remote Desktop Connection (“RDP”) to connect to your Linux box.  Make a change to the Colors located under the Display tab.  Change it from the likely default of Highest Quality (32 bit) color to something else.  For this exercise, the True Color (24 bit) worked.

xrdp2

If the change to colors is made, then the next window should look something like this.

xrdp3

If the change was not made, then a Connection Log box will appear that in part reads VNC error – only supporting 8, 15, 16 and 24 bpp rdp connections.  Press OK.  Make the change.  Repeat the RDP connection.

connectionlog

Type in your credentials and all should be good to go.  However, if your account is a domain account, add to the /etc/sssd/sssd_config file to include the ad_gpo_map_remote_interactive line … The following configuration was tested as working in a CentOS 8 install.

[sssd]
domains = mydomain.corp
config_file_version = 2
services = nss, pam

[domain/mydomain.corp]

ad_domain = mydomain.corp … a bunch of config not related … access_provider = ad ad_gpo_access_control = enforcing ad_gpo_map_remote_interactive = +xrdp-sesman

Source(s)

  • https://www.itzgeek.com/how-tos/linux/centos-how-tos/install-xrdp-on-centos-7-rhel-7.html
  • https://github.com/neutrinolabs/xrdp/issues/906