Come utente abbonato puoi utilizzare lo script per il completamento di questo tutorial con un solo semplice comando. Visita la seguente pagina: Script per Debian 10
Introduzione
Xrdp è un'implementazione open source di Microsoft Remote Desktop Protocol (RDP) che consente di controllare graficamente un sistema remoto. Con RDP, è possibile accedere al computer remoto e creare una sessione desktop reale come se si effettuasse l'accesso a un computer locale.
Questo tutorial descrive come installare e configurare il server Xrdp su Debian 10 Linux.
Se stai cercando una soluzione open source per l'accesso al desktop remoto, allora dovresti controllare VNC.
Installare un Desktop Environment
Normalmente, i server Linux non hanno un ambiente desktop installato per impostazione predefinita. Il primo passo è installare X11 e un ambiente desktop che fungerà da backend per Xrdp.
Esistono diversi ambienti desktop (DE) disponibili nei repository Debian. Installeremo Xfce. È un ambiente desktop veloce, stabile e leggero, che lo rende ideale per l'utilizzo su un server remoto. Se preferisci un altro ambiente desktop come Gnome, puoi installarlo invece di Xfce.
Immettere i seguenti comandi come utente root o utente con privilegi sudo per installare Xfce sul server:
sudo apt update
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
A seconda del sistema e della connessione, il download e l'installazione dei pacchetti Xfce richiederà del tempo.
Installare Xrdp
Il pacchetto Xrdp è disponibile nei repository Debian standard. Per installarlo, esegui:
sudo apt install xrdp
Il servizio verrà avviato automaticamente al termine del processo di installazione. Puoi verificare che il servizio Xrdp sia in esecuzione digitando:
sudo systemctl status xrdp
L'output sarà simile al seguente:
● xrdp.service - xrdp daemon
Loaded: loaded (/lib/systemd/system/xrdp.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2020-04-02 00:39:12 CEST; 1min 5s ago
Docs: man:xrdp(8)
man:xrdp.ini(5)
Main PID: 21221 (xrdp)
Tasks: 1 (limit: 2300)
CGroup: /system.slice/xrdp.service
└─21221 /usr/sbin/xrdp
Apr 02 00:39:11 TEST-SERVER-1 systemd[1]: Starting xrdp daemon...
Apr 02 00:39:11 TEST-SERVER-1 xrdp[21220]: (21220)(140593578424128)[DEBUG] Testing if xrdp can listen on 0.0.0.0 port 3389.
Apr 02 00:39:11 TEST-SERVER-1 xrdp[21220]: (21220)(140593578424128)[DEBUG] Closed socket 7 (AF_INET6 :: port 3389)
Apr 02 00:39:11 TEST-SERVER-1 systemd[1]: xrdp.service: Can't open PID file /var/run/xrdp/xrdp.pid (yet?) after start: No such file or directory
Apr 02 00:39:12 TEST-SERVER-1 systemd[1]: Started xrdp daemon.
Apr 02 00:39:13 TEST-SERVER-1 xrdp[21221]: (21221)(140593578424128)[INFO ] starting xrdp with pid 21221
Apr 02 00:39:13 TEST-SERVER-1 xrdp[21221]: (21221)(140593578424128)[INFO ] listening to port 3389 on 0.0.0.0
Per impostazione predefinita, Xrdp utilizza il file /etc/ssl/private/ssl-cert-snakeoil.key
che è leggibile solo dagli utenti membri del gruppo ssl-cert
. Eseguire il comando seguente per aggiungere l'utente xrdp
al gruppo:
sudo adduser xrdp ssl-cert
Questo è tutto. Xrdp è stato installato sul tuo sistema Debian.
Configurare Xrdp
I file di configurazione di Xrdp sono memorizzati nella directory /etc/xrdp
. Per le connessioni Xrdp di base, non è necessario apportare modifiche ai file di configurazione. Xrdp utilizzerà il desktop X Window predefinito, che in questo caso è XFCE.
Il file di configurazione principale è denominato xrdp.ini
. Questo file è diviso in sezioni e consente di impostare impostazioni di configurazione globali come indirizzi di sicurezza e di ascolto e creare diverse sessioni di accesso xrdp.
Ogni volta che si apportano modifiche al file di configurazione, è necessario riavviare il servizio Xrdp:
sudo systemctl restart xrdp
Xrdp utilizza il file startwm.sh
per avviare la sessione X. Per usare un altro desktop X Window, modifica questo file.
Configurare il firewall
Per impostazione predefinita, Xrdp è in ascolto sulla porta 3389
su tutte le interfacce. Se il firewall sul tuo server Debian è attivo, cosa che dovresti sempre fare, dovrai aggiungere una regola che abiliterà il traffico sulla porta Xrdp.
Supponendo che tu usi ufw per gestire il firewall, esegui il comando seguente per consentire l'accesso al server Xrdp da un indirizzo IP o intervallo IP specifico, in questo esempio 192.168.1.0/24
:
sudo ufw allow from 192.168.1.0/24 to any port 3389
Se si desidera consentire l'accesso da qualsiasi luogo (che è altamente sconsigliato per motivi di sicurezza) eseguire:
sudo ufw allow 3389
Se si utilizza nftables per filtrare le connessioni al proprio sistema, aprire la porta necessaria eseguendo il comando seguente:
sudo nft add rule inet filter input tcp dport 3389 ct state new,established counter accept
Per una maggiore sicurezza, potresti prendere in considerazione la configurazione di Xrdp per l'ascolto solo su localhost e la creazione di un tunnel SSH che inoltri in modo sicuro il traffico dal tuo computer locale sulla porta 3389
al server sulla stessa porta. Un'altra opzione sicura è installare OpenVPN e connettersi al server Xrdp attraverso la rete privata.
Connessione al server Xrdp
Ora che hai configurato il tuo server Xrdp, è tempo di aprire il tuo client Xrdp e collegarti al server.
Se si dispone di un PC Windows, è possibile utilizzare il client RDP predefinito. Digitare remoto
nella barra di ricerca di Windows e fare clic su Connessione desktop remoto
. Questo aprirà il client RDP
. Nel campo Computer
, inserisci l'indirizzo IP del server remoto e fai clic su Connetti
.
Nella schermata di accesso, inserisci il tuo nome utente e password e fai clic su OK
.
Una volta effettuato l'accesso, dovresti vedere il desktop Xfce predefinito.
Ora puoi iniziare a interagire con il desktop XFCE remoto dal tuo computer locale usando la tastiera e il mouse.
Se stai usando macOS, puoi installare l'applicazione Microsoft Remote Desktop
dal Mac App Store. Gli utenti Linux possono utilizzare un client RDP come Remmina
o Vinagre
.
Conclusione
L'installazione di un server Xrdp consente di gestire il server Debian 10 dal computer desktop locale tramite un'interfaccia grafica di facile utilizzo.