How to install xrdp on CentOS7

xrdp is an Open Source Remote desktop Protocol server, which allows you to RDP to your Linux server from Windows machine; it is capable of accepting connections from  rdesktop, freerdp, and remote desktop clients. This how to will help you to setup xrdp server on CentOS 7.

Prerequisits

1. This was written when xrdp is available neither on CentOS repositories nor on EPEL repository, after a lot of Google search; i found desktop repository (http://li.nux.ro/) which was having xrdp for CentOS 7. We need to manually setup the repository on CentOS 7.

# yum install epel-release

2. Create repository file

# vi /etc/yum.repos.d/xrdp.repo

Place the following content. Once added, save and close the file.

[xrdp]
name=xrdp
baseurl=http://li.nux.ro/download/nux/dextop/el7/x86_64/
enabled=1
gpgcheck=0

Installation

# yum -y install xrdp tigervnc-server

You will get the following output, make sure you are getting package from the newly created repository.

---> Running transaction check ---> Package xrdp.x86_64 0:0.6.1-2.el7.nux will be installed ---> Finished Dependency ResolutionDependencies Resolved================================================================================ Package Arch Version Repository Size ================================================================================ Installing: xrdp x86_64 0.6.1-2.el7.nux xrdp 271 kTransaction Summary ================================================================================ Install 1 PackageTotal download size: 271 k Installed size: 1.5 M Is this ok [y/d/N]: y Downloading packages: xrdp-0.6.1-2.el7.nux.x86_64.rpm | 271 kB 00:05 Running transaction check Running transaction test Transaction test succeeded Running transaction Installing : xrdp-0.6.1-2.el7.nux.x86_64 1/1 Verifying : xrdp-0.6.1-2.el7.nux.x86_64 1/1Installed: xrdp.x86_64 0:0.6.1-2.el7.nux

Once it is installed, lets start the xrdp service.

# systemctl start xrdp.service

xrdp will listen on 3389, lets confirm this by issuing following command.

# netstat -antup | grep xrdp tcp 0 0 0.0.0.0:3389 0.0.0.0:* LISTEN 1508/xrdp tcp 0 0 127.0.0.1:3350 0.0.0.0:* LISTEN 1507/xrdp-sesman

By default, services wont auto start after system reboot. Issue the following command to enable the service at system start up.

# systemctl enable xrdp.service

Next is to create iptables rule to allow rdp connection from the external machines, following command will add the exception for rdp port (3389).

# firewall-cmd --permanent --zone=public --add-port=3389/tcp # firewall-cmd --reload

Configure SELinux

# chcon --type=bin_t /usr/sbin/xrdp # chcon --type=bin_t /usr/sbin/xrdp-sesman

Test

Now take rdp from any windows machine using Remote Desktop Connection, enter ip address of Linux server in computer field and click on connect.

You would be asked to enter the user name and password, you can either use root or any user that you have it on system. Make sure you use module “sesman-Xvnc”.

If you click ok, you will see the processing. In less than a half min, you will get a desktop.

Hint: In case of issues related to color depth, make sure you select ‘High Color (16bit) in your RDP client.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.