How to Install Xrdp Server (Remote Desktop) on Ubuntu 18.04

Posted 

3 min read

Xrdp is an open-source implementation of the Microsoft Remote Desktop Protocol (RDP) allowing you to graphically control a remote system. With RDP you can log in to the remote machine and create a real desktop session same as if you had logged in to a local machine.

This tutorial explains how to install and configure Xrdp server on Ubuntu 18.04.

If you want an open-source solution for remote desktop access go with VNC.

Installing Desktop Environment

Generally, Linux servers don’t have a desktop environment installed. Our first step is to install X11 and a lightweight desktop environment that will act as a backend for Xrdp.

There are several desktop environments (DE) available in Ubuntu repositories. We’ll be installing Xfce. It is a fast, stable and lightweight desktop environment, which makes it ideal for usage on a remote server.

Type the following commands as a user with sudo privileges to install Xfce on your server:

sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Depending on your system, downloading and installing Xfce packages will take some time.

Installing Xrdp

Xrdp package is available in the default Ubuntu repositories. To install it, run:

sudo apt install xrdp 

When the installation process is complete the Xrdp service will automatically start. You can verify that Xrdp is running by typing:

sudo systemctl status xrdp

The output will look something like this:

● xrdp.service - xrdp daemon
   Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-07-28 22:40:53 UTC; 4min 21s ago
     Docs: man:xrdp(8)
           man:xrdp.ini(5)
  ...

Configuring Xrdp

Xrdp configuration files are located in the /etc/xrdp directory. For basic Xrdp connections, we only need to configure Xrdp to use Xfce. To do so open the following file in your text editor:

/etc/xrdp/xrdp.ini
sudo nano /etc/xrdp/xrdp.ini

Add the following line at the end of the file:

exec startxfce4 

Save the file and restart the Xrdp service:

sudo systemctl restart xrdp

Configuring Firewall

By default, Xrdp listens on port 3389 on all interfaces. If you run a firewall on your Ubuntu server (which you should always do), you’ll need to add a rule that will enable traffic on the Xrdp port.

To allow access to the Xrdp server from a specific IP address or IP range, in this example 192.168.1.0/24, run the following command:

sudo ufw allow from 192.168.1.0/24 to any port 3389

If you want to allow access from anywhere (which is highly discouraged for security reasons) run:

sudo ufw allow 3389

For increased security, you may consider setting up Xrdp to listen only on localhost and creating an SSH tunnel that will securely forwards traffic from your local machine on port 3389 to the server on the same port. Another secure option is to install OpenVPN and connect to the Xrdp server trough the private network.

Connecting to the Xrdp Server

Now that you have set up your Xrdp server it is time to open your Xrdp client and connect to the server.

If you are a Windows user you can use the default RDP client. Type “remote” in the Windows search bar and click on “Remote Desktop Connection”. This will open up the RDP client. In the computer Field enter the remote server IP address and click “Connect”.

In the login screen enter your username and password and click “OK”.

Once logged in you should see the default Xfce desktop. It should look something like this:

You can now start interacting with the remote XFCE desktop from your local machine using your keyboard and mouse.

Conclusion

Installing an Xrdp server allows you to manage your Ubuntu 18.04 server from your local desktop machine using an easy to use graphic interface.

If you have questions feel free to leave a comment below.