Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How To install a Full Remote Desktop (GUI) on Escape-Pod #41

Open
purplesmurfette opened this issue Oct 20, 2021 · 1 comment
Open

How To install a Full Remote Desktop (GUI) on Escape-Pod #41

purplesmurfette opened this issue Oct 20, 2021 · 1 comment
Labels
documentation Improvements or additions to documentation Low Priority Vector

Comments

@purplesmurfette
Copy link

How To install a Full Remote Desktop (GUI) on Escape-Pod

sudo apt update
sudo apt upgrade

sudo apt install tasksel

sudo tasksel

choose which desktop you would prefer (eg. ubuntu desktop) and then select ok.

The following command will disable GUI on boot hence upon the reboot the system will boot into multi user target:
sudo systemctl set-default multi-user

Installing Xrdp

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

sudo apt install xrdp

Once the installation is complete, the Xrdp service will automatically start.

By default Xrdp uses the /etc/ssl/private/ssl-cert-snakeoil.key file that is readable only by members of the “ssl-cert” group. Run the following command to add the xrdp user to the group :

sudo adduser xrdp ssl-cert

Restart the Xrdp service for changes to take effect:

sudo systemctl restart xrdp

That’s it. Xrdp has been installed on your Ubuntu server, and you can start using it.

Xrdp Configuration

The Xrdp configuration files are located in the /etc/xrdp directory. For basic Xrdp connections, you do not need to make any changes to the configuration files.
Xrdp uses the default X Window desktop environment (Gnome or XFCE).

The main configuration file is named xrdp.ini . This file is divided into sections and allows you to set global configuration settings such as security and listening addresses and create different xrdp login sessions.

Whenever you make any changes to the configuration file, you need to restart the Xrdp service.

Xrdp uses startwm.sh file to launch the X session. If you want to use another X Window desktop, edit this file.

Configuring Firewall

The Xrdp daemon listens on port 3389 on all interfaces. If you run a firewall on your Ubuntu server , you’ll need to open the Xrdp port.

To allow access to the Xrdp server from a specific IP address or IP range, for example, 192.168.33.0/24, you would run the following command:
sudo ufw allow from 192.168.33.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 securely forwards traffic from your local machine on port 3389 to the server on the same port.

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 have a Windows PC, 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”.

RDP Client

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

RDP Login
Once logged in, you should see the default Gnome or Xfce desktop.

Xrdp Gnome Desktop

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

If you are running macOS, you can install the Microsoft Remote Desktop application from the Mac App Store.

Linux users can use an RDP client such as Remmina or Vinagre.

@bussardrobbie
Copy link
Contributor

Hi @purplesmurfette, thanks for this write-up.

While DDL doesn't officially support installing a GUI on the Escape Pod, it's also not necessarily a bad idea for people who may want a friendly way to do remote development on the Pod itself- so this probably won't go onto our knowledge base as it is yet, but maybe if I can whip up a "User Suggestion" section for Escape Pod with the official support disclaimer. Let me think on it a bit, and for now I'm going to leave this issue open. Thanks!

@bussardrobbie bussardrobbie self-assigned this Jan 13, 2022
@bussardrobbie bussardrobbie added documentation Improvements or additions to documentation Vector Low Priority labels Jan 13, 2022
@bussardrobbie bussardrobbie removed their assignment Jul 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation Low Priority Vector
Projects
None yet
Development

No branches or pull requests

2 participants