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:
- sudo apt update
Successivamente, installa i pacchetti xfce
e xfce-goodies
sul tuo server:
- 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:
- sudo apt install xrdp -y
Dopo aver installato xrdp, verifica lo stato di xrdp utilizzando systemctl
:
- 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:
- 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:
- 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ì:
- cd ~
Successivamente, creerai un file .xsession
sotto /home/sammy
e aggiungerai xfce4-session
come gestore di sessione da utilizzare al momento del login:
- 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:
- 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:
- 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:
- sudo ufw allow from your_local_ip/32 to any port 3389
Verifica lo stato del tuo firewall UFW
:
- sudo ufw status
Il risultato dovrebbe assomigliare a quanto segue:
OutputStatus: 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 Sì 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 Sì 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:
- 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.