Ga naar inhoud

XRDP

Achtergrondinformatie

  • XRDP (X Remote Desktop Protocol): een open-source implementatie van het Microsoft Remote Desktop Protocol (RDP).
    Hiermee kun je grafisch inloggen op een Linux-server via een Remote Desktop client, vergelijkbaar met Windows RDP.

  • Functionaliteit: XRDP fungeert als brug tussen RDP-clients en Linux desktopomgevingen
    (zoals XFCE, GNOME of MATE).
    Gebruikers krijgen een volledige grafische sessie over het netwerk.

  • Gebruiksscenarioโ€™s:

  • Serverbeheer waarvoor een GUI vereist is
  • Beheer op afstand zonder fysieke toegang
  • Test- of ontwikkelomgevingen

  • Let op: XRDP is geen vervanging voor SSH.
    Voor productie-servers wordt het alleen aanbevolen achter VPN of via SSH-tunneling.

Alternatieven

  • VNC (TigerVNC, TightVNC): eenvoudiger, maar vaak minder veilig en minder efficiรซnt
  • NoMachine (NX): hoge performance en goede compressie
  • Apache Guacamole: web-based remote desktop (RDP/VNC/SSH via browser)
  • X2Go: gebaseerd op SSH, zeer geschikt voor Linux-to-Linux GUI-sessies

1. Controleren of XRDP al aanwezig is

xrdp --version
๐Ÿ“„ Voorbeeld output
xrdp 0.9.23
A Remote Desktop Protocol server.
Copyright (C) 2004-2024
See http://www.xrdp.org for more information.

Handleiding

man xrdp
man xrdp.ini
man sesman.ini

2. Installatie

sudo apt update
sudo apt install -y xrdp
Voorbeeld output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
  xrdp
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 1,200 kB of archives.
After this operation, 3,500 kB of additional disk space will be used.
Selecting previously unselected package xrdp.
(Reading database ... 105000 files and directories currently installed.)
Preparing to unpack .../archives/xrdp_0.9.23-1_amd64.deb ...
Unpacking xrdp (0.9.23-1) ...
Setting up xrdp (0.9.23-1) ...
Processing triggers for man-db (2.10.2-1) ...

3. XRDP beheren

In tegenstelling tot tools zoals RKHunter draait XRDP wรฉl als een permanente service. Het wordt continu actief gehouden om externe RDP-verbindingen mogelijk te maken. Beheer verloopt via systemctl en richt zich vooral op het starten, stoppen, herstarten van de dienst, en het permanent inschakelen zodat de service automatisch start bij systeemboot. Hieronder de belangrijkste commandoโ€™s:

  • Commandoโ€™s

    sudo systemctl status xrdp
    
    - Toont de huidige status van de XRDP-service (actief, gestopt of foutmelding).

    sudo systemctl restart xrdp
    
    - Herstart XRDP, noodzakelijk na wijzigingen in configuratiebestanden zoals /etc/xrdp/xrdp.ini.

    sudo systemctl stop xrdp
    
    - Stopt de XRDP-service, waardoor nieuwe RDP-verbindingen niet meer mogelijk zijn.

    sudo systemctl enable xrdp
    
    - Zet XRDP permanent aan, zodat de service automatisch start bij systeemboot.

  • Voorbeeld output

    systemctl status xrdp (Actief)
    โ— xrdp.service - xrdp daemon
       Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; ...)
       Active: active (running) since Fri 2025-12-12 10:00:00 CET; 2 days ago
       Main PID: 1234 (xrdp)
    
    systemctl stop xrdp (Gestopt)
    โ— xrdp.service - xrdp daemon
       Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; ...)
       Active: inactive (dead) since Fri 2025-12-12 12:50:00 CET; 1 minute ago
    

4. XRDP gebruiken

Met XRDP kun je vanaf een externe machine een grafische desktop op je Linux-server gebruiken. Het is een permanente service die je kunt benaderen via een RDP-client zoals Windows Remote Desktop, Remmina of FreeRDP.

Open de RDP-client (Remote Desktop Connection) en voer het IP-adres van je Linux-server in. Log in met je Linux-gebruikersnaam en wachtwoord.

Gebruik een RDP-client zoals Remmina:

remmina

Kies RDP, voer het IP-adres van de server in, selecteer de gewenste resolutie en log in.

Installeer Microsoft Remote Desktop vanuit de App Store en voer het IP-adres van je server in. Gebruik je Linux-gebruikersgegevens om in te loggen.

Bekijk logbestanden om problemen met verbindingen te diagnosticeren:

sudo cat /var/log/xrdp.log
sudo cat /var/log/xrdp-sesman.log

Volg live updates terwijl gebruikers verbinden:

tail -f /var/log/xrdp.log /var/log/xrdp-sesman.log

Extra nuttige commandoโ€™s (XRDP)

Controleer de huidige status van de XRDP-service:

sudo systemctl status xrdp

Start de XRDP-service handmatig:

sudo systemctl start xrdp

Stop de XRDP-service handmatig:

sudo systemctl stop xrdp

Herstart de XRDP-service, nodig na wijzigingen in configuratiebestanden zoals /etc/xrdp/xrdp.ini:

sudo systemctl restart xrdp

Zorg dat XRDP automatisch start bij systeemboot:

sudo systemctl enable xrdp

Voorkom dat XRDP automatisch start bij systeemboot:

sudo systemctl disable xrdp

Bekijk het XRDP-logbestand:

sudo cat /var/log/xrdp.log

Volg live de log terwijl XRDP actief is:

tail -f /var/log/xrdp.log

Logging en Debugging (XRDP)

Wanneer je problemen hebt met XRDP, zoals niet-werkende verbindingen of foutmeldingen bij het inloggen, kan logging en debugmodus veel inzicht geven.

Bekijk de status van XRDP inclusief recente logs:

sudo systemctl status xrdp -l

Dit toont de laatste logregels en fouten in het overzicht.

Bekijk het volledige XRDP-logbestand:

sudo less /var/log/xrdp.log

Volg live de log terwijl XRDP actief is:

tail -f /var/log/xrdp.log

Om alleen foutmeldingen te zien, gebruik grep:

sudo grep "ERROR" /var/log/xrdp.log

Tip

Zo zie je snel welke issues XRDP tegenkomt zonder door alle normale meldingen te hoeven scrollen.

Voor uitgebreide foutopsporing kun je XRDP in debugmodus draaien:

sudo xrdp -nodaemon

Waarom debugmodus?

In debugmodus zie je live alle verbindingen, sessies en foutmeldingen.
Handig bij het analyseren van problemen met remote desktop verbindingen.

Controleer of configuratiebestanden correct zijn:

sudo cat /etc/xrdp/xrdp.ini
sudo cat /etc/xrdp/sesman.ini

Tip

Fouten in deze bestanden kunnen leiden tot mislukte RDP-sessies.
Na aanpassingen altijd de service herstarten:

sudo systemctl restart xrdp

Configuratiebestanden (XRDP)

Het hoofdconfiguratiebestand van XRDP.
Hierin stel je opties in zoals: - port โ†’ de poort waarop XRDP luistert (standaard 3389) - max_bpp โ†’ maximale kleurendiepte voor RDP-sessies - allow_channels โ†’ welke RDP-channels toegestaan zijn - bitmap_cache โ†’ caching-opties voor prestatieverbetering - security_layer โ†’ beveiligingslaag (bijv. tls, rdp)

Aanpassingen doorvoeren

Na wijzigingen altijd de XRDP-service herstarten:

sudo systemctl restart xrdp

Configuratiebestand voor sesman, de sessiebeheerder van XRDP.
Belangrijke instellingen: - MaxSessions โ†’ maximaal aantal gelijktijdige sessies - KillDisconnected โ†’ automatische beรซindiging van verbroken sessies - ReconnectScript โ†’ script voor het opnieuw verbinden van sessies

Het hoofdlogbestand van XRDP.
Hierin zie je o.a.: - Verbindingen (connected) - Foutmeldingen (ERROR) - Verbonden gebruikers en sessies

Voorbeeld output
[2025-12-13 10:00:00] [INFO ] starting xrdp with pid 1234
[2025-12-13 10:01:05] [INFO ] address [0.0.0.0] port [3389] mode [listen]
[2025-12-13 10:05:12] [ERROR] Failed to start session for user 'gedeon'
  • Pas alleen de .ini bestanden aan; andere log- en databasebestanden worden automatisch beheerd.
  • Gebruik grep om snel foutmeldingen te vinden:

    sudo grep "ERROR" /var/log/xrdp.log
    

XRDP volledig verwijderen (Debian/Ubuntu)

Ja, het is technisch mogelijk om XRDP volledig te verwijderen, maar dit wordt alleen aangeraden als je geen remote desktop functionaliteit meer nodig hebt of een alternatief gebruikt.

Verwijder je XRDP zonder alternatief, dan verlies je de mogelijkheid om op afstand in te loggen op je desktop via RDP.

Verwijder het pakket

sudo apt purge --auto-remove xrdp

Verwijder configuratiebestanden

sudo rm -f /etc/xrdp/xrdp.ini
sudo rm -f /etc/xrdp/sesman.ini
sudo rm -rf /etc/xrdp/startwm.sh

Verwijder logbestanden

sudo rm -f /var/log/xrdp.log*
sudo rm -f /var/log/xrdp-sesman.log*

Let op

Het verwijderen van XRDP verwijdert de mogelijkheid voor remote desktop toegang. Overweeg dit alleen als je zeker weet dat je dit niet meer nodig hebt of een ander alternatief hebt ingesteld.


XRDP volledig verwijderen (Debian/Ubuntu)

Ja, het is technisch mogelijk om XRDP volledig te verwijderen, maar dit wordt alleen aangeraden als je geen remote desktop functionaliteit meer nodig hebt of een alternatief gebruikt.

Verwijder je XRDP zonder alternatief, dan verlies je de mogelijkheid om op afstand in te loggen op je desktop via RDP.

Verwijder het pakket

sudo apt purge --auto-remove xrdp

Verwijder configuratiebestanden

sudo rm -f /etc/xrdp/xrdp.ini
sudo rm -f /etc/xrdp/sesman.ini
sudo rm -rf /etc/xrdp/startwm.sh

Verwijder logbestanden

sudo rm -f /var/log/xrdp.log*
sudo rm -f /var/log/xrdp-sesman.log*

Let op

Het verwijderen van XRDP verwijdert de mogelijkheid voor remote desktop toegang. Overweeg dit alleen als je zeker weet dat je dit niet meer nodig hebt of een ander alternatief hebt ingesteld.

Hardening Tips (RKHunter)

Aanbevelingen voor extra veiligheid

  • Houd rkhunter.conf netjes up-to-date
    Pas alleen het configuratiebestand /etc/rkhunter.conf aan en laat de databasebestanden automatisch beheren.

  • Voer regelmatig scans uit
    Plan scans via cronjobs, bijvoorbeeld dagelijks of wekelijks:

    0 3 * * * /usr/bin/rkhunter --check --quiet
    

  • Controleer logs op waarschuwingen
    Gebruik grep om snel alleen waarschuwingen te zien:

    sudo grep "Warning" /var/log/rkhunter.log
    

  • Gebruik verbose of debugmodus indien nodig
    Voor diepere analyse bij verdachte meldingen:

    sudo rkhunter --check --verbose
    sudo rkhunter --check --debug
    

  • E-mail notificaties inschakelen
    Ontvang waarschuwingen per mail door MAIL-ON-WARNING in rkhunter.conf in te stellen:

    MAIL-ON-WARNING=root@localhost
    

  • Houd de referentiedatabase up-to-date
    Na systeemupdates of wijzigingen:

    sudo rkhunter --propupd
    

  • Controleer regelmatig de logbestandsgrootte
    Voorkom dat logbestanden onnodig groot worden:

    sudo logrotate /etc/logrotate.d/rkhunter
    


โœ… Met deze maatregelen is je RKHunter-configuratie strakker beveiligd en zie je sneller verdachte activiteiten.
Scan regelmatig en bekijk altijd de waarschuwingen in /var/log/rkhunter.log.