De auteur heeft het COVID-19-hulpfonds geselecteerd om een donatie te ontvangen als onderdeel van het Write for Donations-programma.
Inleiding
Remote Desktop Protocol (RDP) is een netwerkprotocol ontwikkeld door Microsoft waarmee gebruikers op afstand toegang kunnen krijgen tot en kunnen communiceren met de grafische gebruikersinterface van een externe Windows-server. RDP werkt op het client-servermodel, waarbij een RDP-client is geïnstalleerd op een lokaal apparaat en een RDP-server is geïnstalleerd op de externe server.
RDP wordt veel gebruikt voor Windows-verbindingen op afstand, maar u kunt ook toegang krijgen tot en communiceren met de grafische gebruikersinterface van een externe Linux-server door een tool zoals xrdp te gebruiken, een open-source implementatie van de RDP-server.
In deze handleiding installeert en configureert u een RDP-server met behulp van xrdp op een Ubuntu 22.04-server en krijgt u er toegang toe met een RDP-client vanaf uw lokale apparaat. U zult begrijpen hoe u toegang kunt krijgen tot een externe Linux-server door een RDP-verbinding te configureren en te gebruiken.
Breng uw frontend-applicaties in GitHub in de lucht met behulp van het DigitalOcean App Platform. Laat DigitalOcean zich richten op het schalen van uw app.
Vereisten
Om deze tutorial te voltooien, heb je nodig:
-
Eén Ubuntu 22.04-server met een niet-rootgebruiker met
sudo
-rechten, een firewall en minstens 1 GB RAM, die je kunt instellen door de handleiding voor het initiële serverconfiguratie van Ubuntu 22.04 te volgen. -
Een lokale computer met een RDP-client geïnstalleerd. Hieronder volgt een lijst met beschikbare RDP-clients voor verschillende besturingssystemen:
- Op Windows kun je de standaardapplicatie voor Externe bureaubladverbinding gebruiken.
- Op macOS kun je de Microsoft Remote Desktop-applicatie gebruiken.
- Op Linux kun je FreeRDP of Remmina gebruiken.
Stap 1 – Een bureaubladomgeving installeren op Ubuntu
In deze stap ga je een bureaubladomgeving installeren en configureren op je Ubuntu-server. Standaard wordt een Ubuntu-server alleen geleverd met een terminalomgeving. Om toegang te krijgen tot een gebruikersinterface moet een bureaubladomgeving worden geïnstalleerd.
Uit de beschikbare opties voor Ubuntu installeer je de Xfce bureaubladomgeving. Xfce biedt een lichtgewicht, gebruiksvriendelijke bureaubladomgeving voor op Linux gebaseerde systemen.
Om te beginnen, maak verbinding met je server via SSH en werk de lijst met beschikbare pakketten bij met het volgende commando:
- sudo apt update
Vervolgens installeer je de xfce
en xfce-goodies
pakketten op je server:
- sudo apt install xfce4 xfce4-goodies -y
Je wordt gevraagd om een display-manager te kiezen, dit is een programma dat grafische aanmeldingsmechanismen en gebruikerssessies beheert. Je kunt elke optie uit de lijst met beschikbare display-managers selecteren, maar deze handleiding zal gdm3
gebruiken.
Na het installeren van de desktopomgeving, zult u nu xrdp op uw server installeren.
Stap 2 – xrdp installeren op Ubuntu
xrdp is een open-source implementatie van de RDP-server die RDP-verbindingen mogelijk maakt voor op Linux gebaseerde servers. In deze stap zult u xrdp installeren op uw Ubuntu-server.
Om xrdp te installeren, voert u het volgende commando uit in de terminal:
- sudo apt install xrdp -y
Na het installeren van xrdp, controleer de status van xrdp met systemctl
:
- sudo systemctl status xrdp
Dit commando toont de status als actief (draaiend)
:
Output● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: **active (running)** since Sun 2022-08-07 13:00:44 UTC; 26s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 17904 (xrdp)
Tasks: 1 (limit: 1131)
Memory: 1016.0K
CGroup: /system.slice/xrdp.service
└─17904 /usr/sbin/xrdp
Als de status van xrdp niet draaiend
is, moet u mogelijk de service handmatig starten met dit commando:
- sudo systemctl start xrdp
Nadat u het bovenstaande commando hebt uitgevoerd, controleert u de status opnieuw om ervoor te zorgen dat xrdp zich in een draaiende
toestand bevindt.
U hebt nu xrdp geïnstalleerd op uw server. Vervolgens zult u de configuratie van xrdp controleren om verbindingen van externe clients te accepteren.
Stap 3 – xrdp configureren en uw firewall bijwerken
In deze stap ga je de standaardconfiguratie van xrdp bekijken, die is opgeslagen onder /etc/xrdp/xrdp.ini
, en een configuratie toevoegen voor een RDP-verbinding. Je zult ook de firewallinstellingen bijwerken.
xrdp.ini
is het standaardconfiguratiebestand om RDP-verbindingen met de xrdp-server in te stellen. Het configuratiebestand kan worden aangepast om te voldoen aan de vereisten voor RDP-verbindingen.
Open het bestand in de nano
teksteditor of een andere editor naar keuze:
- sudo nano /etc/xrdp/xrdp.ini
Het configuratiebestand bevat verschillende secties:
- Globals definieert enkele algemene configuratie-instellingen voor xrdp.
- Logging definieert parameters voor het loggingsubsysteem voor logs.
- Channels definieert meerdere kanaalparameters die RDP ondersteunt.
-
Soorten sessies definieert meerdere ondersteunde sessietypen door xrdp. Elke sessietypeconfiguratie is gedefinieerd als een aparte sectie onder zijn sessietypenaam ingesloten in vierkante haken, zoals
[Xorg]
en[XVnc]
. Er is geen kopje[Sessietypen]
in het bestand; in plaats daarvan wordt het als een opmerking geschreven.
In het configuratiebestand navigeer je naar de sectie Sessietypes
. Daar vind je meerdere ondersteunde sessietypen en hun parameters vermeld:
Output...
;
; Session types
;
; Some session types such as Xorg, X11rdp, and Xvnc start a display server.
; Startup command-line parameters for the display server are configured
; in sesman.ini. See and configure also sesman.ini.
[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20
[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000
[vnc-any]
...
[neutrinordp-any]
...
...
Standaard zijn de parameters gebruikersnaam
en wachtwoord
ingesteld op vragen
, wat betekent dat de gebruiker zal worden gevraagd om hun gebruikersnaam en wachtwoord in te voeren om verbinding te maken via RDP. Parameters zoals naam
, gebruikersnaam
en wachtwoord
kunnen indien nodig worden aangepast. Voor de initiële RDP-verbinding met de server is de standaardconfiguratie voldoende.
Sla het bestand op en sluit het af wanneer je klaar bent.
Ga nu naar de thuismap van je gebruiker als je daar nog niet bent:
- cd ~
Vervolgens maak je een .xsession
-bestand aan onder /home/sammy
en voeg je xfce4-session
toe als de sessiemanager om te gebruiken bij het inloggen:
- echo "xfce4-session" | tee .xsession
tee
schrijft de echo van de string "xfce4-session"
naar het bestand .xsession
. De bovenstaande configuratie zorgt ervoor dat xfce4-session
wordt gebruikt als sessiemanager bij een verzoek om grafisch in te loggen. Als gevolg van het installeren van xfce
als je desktopomgeving, fungeert xfce4-session
als zijn sessiemanager. Als je deze informatie niet opneemt in het .xsession
-bestand, wordt er geen sessiemanager gekozen en zal de RDP-sessie geen verbinding kunnen maken met de grafische weergave.
Herstart de xrdp-server:
- sudo systemctl restart xrdp
Vervolgens configureer je je firewall om externe verbindingen vanaf je openbare IP op poort 3389
toe te staan. Een RDP-verbinding verloopt via TCP/IP-poort 3389
. Om toegang te krijgen tot de externe server via RDP, moet je poort 3389
toestaan in je firewall.
Vind eerst het openbare IP-adres voor je lokale machine:
- curl ifconfig.me
Op Windows kun je de Windows Command Prompt gebruiken om deze opdracht uit te voeren.
curl
plaatst een verzoek op ifconfig.me
dat je openbare IP als output retourneert:
Output...
your_local_ip
Vervolgens, sta toegang toe tot de RDP-poort 3389
op je externe server, waarbij je je_lokale_ip
vervangt door de uitvoer van de laatste opdracht:
- sudo ufw allow from your_local_ip/32 to any port 3389
Controleer de status van je UFW
-firewall:
- sudo ufw status
De output zou er als volgt uit moeten zien:
OutputStatus: Active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
3389 ALLOW your_local_ip
OpenSSH (v6) ALLOW Anywhere (v6)
...
Je hebt nu poort 3389
ingeschakeld om verbindingen vanaf je openbare IP te accepteren. Daarna ga je de RDP-verbinding van je lokale machine naar je externe server testen.
Stap 4 — Testen van de RDP-verbinding
In deze stap test je de RDP-verbinding vanaf je lokale machine. De onderstaande secties bevatten acties voor het testen van de verbinding op Windows-, macOS- en Linux-machines.
Testen van de RDP-verbinding op Windows
Om de verbinding te testen met de Remote Desktop Connection-client op Windows, start je eerst de Remote Desktop Connection-app.
Voer het openbare IP-adres van uw externe server en de gebruikersnaam in de invulvakken voor Computer en Gebruikersnaam in. U moet mogelijk op de pijl naar beneden drukken voor Opties weergeven om de gebruikersnaam in te voeren:
Druk op de knop Verbinden. Als u een waarschuwing krijgt dat de Extern bureaublad geen verbinding kan maken met de externe computer
, controleer dan of u de optie Extern bureaublad heeft ingeschakeld in uw systeeminstellingen.
Druk op Ja als u het pop-upvenster voor identiteitsverificatie ontvangt:
Vervolgens voert u de gebruikersnaam van uw externe server in (sammy
) en het wachtwoord dat u heeft aangemaakt voor gebruiker sammy
tijdens de initiële serverconfiguratie. Druk op Ok.
Zodra u bent ingelogd, zou u toegang moeten hebben tot uw Ubuntu-desktopomgeving:
Met RDP hebt u succesvol verbinding gemaakt met uw externe Ubuntu-server vanaf uw lokale machine. U kunt het sluiten met de knop Afsluiten wanneer u klaar bent met het gebruik van uw grafische desktop.
Testen van de RDP-verbinding op macOS
Om de verbinding te testen met de Remote Desktop Connection-client op macOS, start u eerst de Microsoft Remote Desktop Connection-app.
Druk op PC toevoegen, voer vervolgens het openbare IP-adres van uw externe server in het invulbare vak in:
U kunt een gebruikersaccount Toevoegen bij het instellen van de verbinding:
Als je tijdens de installatie geen gebruiker toevoegt, wordt je gevraagd om je gebruikersaanmeldingsgegevens in te voeren:
Druk op Ja om het pop-upvenster voor identiteitsverificatie over te slaan:
Zodra je bent ingelogd, kun je toegang krijgen tot je Ubuntu-extern bureaublad. Sluit het af met de knop ‘Afsluiten’ wanneer je klaar bent met het gebruik van je grafische desktop.
Testen van de RDP-verbinding op Linux
Je hebt een RDP-client nodig om de RDP-verbinding op een lokale Linux-machine te testen. Installeer eerst de RDP-client remmina
voor Ubuntu:
- sudo apt install remmina
Selecteer y
als je wordt gevraagd om de installatie te voltooien. Met dit commando wordt Remmina, een open-source externe desktopclient, geïnstalleerd op je Ubuntu-systeem met behulp van apt
. Voor andere Linux-distributies kun je de Remmina-documentatie voor installatie raadplegen.
Nadat het is geïnstalleerd, start je de applicatie remmina
op je lokale Linux-machine en voer het openbare IP-adres van je externe server in het invulbare vak in. Druk op Enter op je toetsenbord om verbinding te maken met je externe desktop.
Vervolgens voer je de gebruikersnaam van je externe server in (in deze handleiding is de gebruikersnaam sammy
) en het wachtwoord dat je hebt aangemaakt voor de gebruiker tijdens de initiële serverconfiguratie. Druk op Ok.
Mogelijk moet je opnieuw het wachtwoord van je gebruiker invoeren om het bureaublad op afstand te ontgrendelen.
Zodra je bent ingelogd, zou je toegang moeten hebben tot je Ubuntu-bureaubladomgeving.
Door gebruik te maken van RDP, ben je succesvol verbonden met je externe Ubuntu-server vanaf je lokale machine. Je kunt het afsluiten met de afsluitknop wanneer je klaar bent met het gebruik van je grafische bureaublad.
Zodra je hebt gecontroleerd dat de externe verbinding werkt, kun je deze volgorde gebruiken wanneer je de grafische interface voor je externe Linux-server moet gebruiken.
Conclusie
In dit artikel heb je xrdp geconfigureerd om verbinding te maken met een grafisch bureaublad voor je externe Ubuntu-server via een RDP-verbinding vanaf een lokale machine.
Nu kun je proberen een VNC-verbinding te configureren voor je Linux-server met Hoe VNC te installeren en configureren op Ubuntu 20.04. VNC is een andere optie voor externe verbinding met een Linux-desktop.