Come abilitare il protocollo desktop remoto utilizzando xrdp su Ubuntu 22.04

L’autore ha selezionato il Fondo di Soccorso COVID-19 per ricevere una donazione come parte del programma Write for DOnations.

Introduzione

Remote Desktop Protocol (RDP) è un protocollo di rete sviluppato da Microsoft che consente agli utenti di accedere e interagire in remoto con l’interfaccia utente grafica di un server remoto Windows. RDP funziona sul modello client-server, dove un client RDP è installato su una macchina locale e un server RDP è installato sul server remoto.

RDP è ampiamente utilizzato per le connessioni remote a Windows, ma è possibile accedere e interagire anche con l’interfaccia utente grafica di un server Linux remoto utilizzando uno strumento come xrdp, un’implementazione open source del server RDP.

In questo tutorial, installerai e configurerai un server RDP utilizzando xrdp su un server Ubuntu 22.04 e vi accederai utilizzando un client RDP dalla tua macchina locale. Comprenderai come stabilire l’accesso a un server Linux remoto configurando e utilizzando una connessione RDP.

Dispiega le tue applicazioni frontend da GitHub utilizzando DigitalOcean App Platform. Lascia che DigitalOcean si concentri sulla scalabilità della tua app.

Prerequisiti

Per completare questo tutorial, avrai bisogno di:

  • Un server Ubuntu 22.04 con un utente non-root con privilegi sudo, un firewall e almeno 1 GB di RAM, che puoi configurare seguendo la guida alla configurazione iniziale del server Ubuntu 22.04.

  • Un computer locale con un client RDP installato. Di seguito è fornito un elenco dei client RDP disponibili per diversi sistemi operativi:

    • Su Windows, puoi utilizzare l’applicazione predefinita Connessione Desktop Remoto.
    • Su macOS, puoi utilizzare l’applicazione Microsoft Remote Desktop.
    • Su Linux, puoi utilizzare FreeRDP, o Remmina.

Passaggio 1 — Installare un Ambiente Desktop su Ubuntu

In questo passaggio, installerai e configurerai un ambiente desktop sul tuo server Ubuntu. Di default, un server Ubuntu viene fornito solo con un ambiente terminale. Sarà necessario installare un ambiente desktop per accedere a un’interfaccia utente.

Dalle opzioni disponibili per Ubuntu, installerai l’ambiente desktop Xfce. Xfce offre un ambiente desktop leggero e facile da usare per i sistemi basati su Linux.

Per iniziare, connettiti al tuo server usando SSH e aggiorna l’elenco dei pacchetti disponibili usando il seguente comando:

  1. sudo apt update

Successivamente, installa i pacchetti xfce e xfce-goodies sul tuo server:

  1. sudo apt install xfce4 xfce4-goodies -y

Ti verrà chiesto di scegliere un display manager, che è un programma che gestisce i meccanismi di accesso grafico e le sessioni utente. Puoi selezionare qualsiasi opzione dalla lista dei display manager disponibili, ma questo tutorial utilizzerà gdm3.

Dopo aver installato l’ambiente desktop, installerai ora xrdp sul tuo server.

Passaggio 2 — Installazione di xrdp su Ubuntu

xrdp è un’implementazione open-source del server RDP che consente connessioni RDP per server basati su Linux. In questo passaggio, installerai xrdp sul tuo server Ubuntu.

Per installare xrdp, esegui il seguente comando nel terminale:

  1. sudo apt install xrdp -y

Dopo aver installato xrdp, verifica lo stato di xrdp utilizzando systemctl:

  1. sudo systemctl status xrdp

Questo comando mostrerà lo stato come active (running):

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

Se lo stato di xrdp non è running, potresti dover avviare il servizio manualmente con questo comando:

  1. sudo systemctl start xrdp

Dopo aver eseguito il comando sopra, verifica nuovamente lo stato per assicurarti che xrdp sia in uno stato running.

Hai ora installato xrdp sul tuo server. Successivamente, esaminerai la configurazione di xrdp per accettare connessioni da client remoti.

Passaggio 3 — Configurazione di xrdp e aggiornamento del firewall

In questo passaggio, esaminerai la configurazione predefinita di xrdp, che è memorizzata in /etc/xrdp/xrdp.ini, e aggiungerai una configurazione per una connessione RDP. Aggiornerai anche le impostazioni del firewall.

xrdp.ini è il file di configurazione predefinito per impostare connessioni RDP al server xrdp. Il file di configurazione può essere modificato e personalizzato per soddisfare i requisiti di connessione RDP.

Apri il file nell’editor di testo nano o in qualsiasi altro editor di tua scelta:

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

Il file di configurazione contiene diverse sezioni:

  • Globals definisce alcune impostazioni di configurazione globali per xrdp.
  • Logging definisce i parametri del sottosistema di registrazione per i log.
  • Channels definisce i parametri di più canali supportati da RDP.
  • Tipi di sessione definisce i vari tipi di sessione supportati da xrdp. Ogni configurazione del tipo di sessione è definita come una sezione separata sotto il nome del tipo di sessione racchiuso tra parentesi quadre, come [Xorg] e [XVnc]. Non c’è un’intestazione [Tipi di sessioni] nel file; invece, è scritto come un commento.

Nel file di configurazione, passa alla sezione Tipi di sessione. Troverai elencati vari tipi di sessione supportati e i relativi parametri:

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] ... ...

Di default, i parametri username e password sono impostati su ask, il che significa che all’utente verrà chiesto di inserire il proprio nome utente e la password per connettersi tramite RDP. I parametri, come name, username, e password, possono essere modificati se necessario. Per la connessione RDP iniziale al server, la configurazione predefinita sarà sufficiente.

Salva e chiudi il file quando hai finito.

Ora spostati nella directory home dell’utente se non sei già lì:

  1. cd ~

Successivamente, creerai un file .xsession sotto /home/sammy e aggiungerai xfce4-session come gestore di sessione da utilizzare al momento del login:

  1. echo "xfce4-session" | tee .xsession

tee scrive la stringa echeggiata "xfce4-session" nel file .xsession. La configurazione sopra assicura che xfce4-session venga utilizzato come gestore di sessione al momento della richiesta di accesso grafico. A seguito dell’installazione di xfce come ambiente desktop, xfce4-session funge da suo gestore di sessione. Se non includi queste informazioni nel file .xsession, nessun gestore di sessione viene scelto e la sessione RDP non riuscirà a connettersi al display grafico.

Riavvia il server xrdp:

  1. sudo systemctl restart xrdp

Successivamente, configurerai il tuo firewall per consentire connessioni remote dal tuo IP pubblico sulla porta 3389. Una connessione RDP è attiva sulla porta TCP/IP 3389. Per accedere al server remoto tramite RDP, devi consentire la porta 3389 nel tuo firewall.

Per prima cosa, trova l’IP pubblico per la tua macchina locale:

  1. curl ifconfig.me

Sul sistema Windows, utilizza il Prompt dei comandi di Windows per eseguire questo comando.

curl effettua una richiesta su ifconfig.me che restituisce il tuo indirizzo IP pubblico come output:

Output
... your_local_ip

Successivamente, permetti l’accesso alla porta RDP 3389 sul tuo server remoto, sostituendo your_local_ip con l’output dell’ultimo comando:

  1. sudo ufw allow from your_local_ip/32 to any port 3389

Verifica lo stato del tuo firewall UFW:

  1. sudo ufw status

Il risultato dovrebbe assomigliare a quanto segue:

Output
Status: Active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 3389 ALLOW your_local_ip OpenSSH (v6) ALLOW Anywhere (v6) ...

Ora hai abilitato la porta 3389 per accettare connessioni dal tuo IP pubblico. Successivamente, testerai la connessione RDP dalla tua macchina locale al server remoto.

Passo 4 — Test della Connessione RDP

In questo passaggio, testerai la connessione RDP dalla tua macchina locale. Le sezioni seguenti includono le azioni per testare la connessione su macchine Windows, macOS e Linux.

Test della Connessione RDP su Windows

Per testare la connessione utilizzando il client Remote Desktop Connection su Windows, avvia prima l’app Remote Desktop Connection.

Inserisci l’indirizzo IP pubblico del tuo server remoto e il nome utente nei campi di testo modificabili per Computer e Nome utente. Potrebbe essere necessario premere la freccia verso il basso per Mostra opzioni per inserire il nome utente:

Premi il pulsante Connetti. Se ricevi un avviso che Desktop remoto non può connettersi al computer remoto, verifica di aver attivato l’opzione Desktop remoto nelle impostazioni di sistema.

Premi se ricevi il popup di verifica dell’identità:

Successivamente, inserisci il nome utente del tuo server remoto (sammy) e la password che hai creato per l’utente sammy durante l’installazione iniziale del server. Premi Ok.

Una volta effettuato l’accesso, dovresti poter accedere all’ambiente desktop di Ubuntu:

Utilizzando RDP, hai stabilito con successo la connessione al tuo server remoto Ubuntu dal tuo computer locale. Puoi chiudere premendo il pulsante di uscita quando hai finito di utilizzare il desktop grafico.

Test della connessione RDP su macOS

Per testare la connessione utilizzando il client Remote Desktop Connection su macOS, avvia prima l’app Microsoft Remote Desktop Connection.

Premi Aggiungi PC, quindi inserisci l’indirizzo IP pubblico del tuo server remoto nella casella modificabile:

Puoi Aggiungere un account utente durante la configurazione della connessione:

Se non aggiungi un utente durante la configurazione, ti verrà richiesto di inserire le credenziali di accesso dell’utente:

Premi per evitare la comparsa della finestra di verifica dell’identità:

Una volta effettuato l’accesso, puoi accedere al desktop remoto di Ubuntu. Puoi chiuderlo con il pulsante di uscita quando hai finito di utilizzare il desktop grafico.

Testare la Connessione RDP su Linux

Avrai bisogno di un client RDP per testare la connessione RDP su una macchina Linux locale. Per prima cosa, installa il client RDP remmina per Ubuntu:

  1. sudo apt install remmina

Se richiesto, seleziona y per completare l’installazione. Questo comando installerà Remmina, un client desktop remoto open-source sul tuo sistema Ubuntu usando apt. Per altre distribuzioni Linux, puoi consultare la documentazione di Remmina per l’installazione.

Una volta installato, avvia l’applicazione remmina sulla tua macchina Linux locale e inserisci l’indirizzo IP pubblico del tuo server remoto nel campo compilabile. Premi Invio sulla tastiera per connetterti al desktop remoto.

Quindi, inserisci il nome utente del tuo server remoto (per questo tutorial, il nome utente è sammy) e la password che hai creato per l’utente durante la configurazione iniziale del server. Premi Ok.

Potrebbe essere necessario inserire nuovamente la password dell’utente per sbloccare il desktop remoto.

Una volta effettuato l’accesso, dovresti essere in grado di accedere al tuo ambiente desktop Ubuntu.

Utilizzando RDP, hai collegato con successo il tuo server Ubuntu remoto dalla tua macchina locale. Puoi chiuderlo con il pulsante di uscita quando hai finito di utilizzare il tuo desktop grafico.

Dopo aver verificato che la connessione remota funziona, puoi utilizzare questa sequenza ogni volta che hai bisogno di utilizzare l’interfaccia grafica per il tuo server Linux remoto.

Conclusione

In questo articolo, hai configurato xrdp per connetterti a un desktop grafico per il tuo server Ubuntu remoto tramite una connessione RDP da una macchina locale.

Ora puoi provare a configurare una connessione VNC per il tuo server Linux con Come installare e configurare VNC su Ubuntu 20.04. VNC è un’altra opzione per la connessione remota a un desktop Linux.

Source:
https://www.digitalocean.com/community/tutorials/how-to-enable-remote-desktop-protocol-using-xrdp-on-ubuntu-22-04