VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
In articolo precedente Abbiamo analizzato l'avvio di un server VNC su una macchina virtuale di qualsiasi tipo. Questa opzione ha molti svantaggi, il principale dei quali è l'elevata richiesta di larghezza di banda. Oggi cercheremo di connetterci al desktop grafico su Linux tramite RDP (Remote Desktop Protocol). Il sistema VNC si basa sulla trasmissione di array di pixel tramite il protocollo RFB (Remote Framebuffer), mentre RDP consente di inviare primitive grafiche più complesse e comandi di alto livello. Viene normalmente utilizzato per organizzare i servizi di desktop remoto in Windows, ma sono disponibili anche server per Linux.

Indice:

Installazione dell'ambiente grafico
Localization del server e installazione del software
Installazione e configurazione del server RDP
Configurazione del firewall
Connessione al server RDP
Gestore sessioni e sessioni utente
Cambiamento delle disposizioni della tastiera

Installazione dell'ambiente grafico

Prenderemo una macchina virtuale con Ubuntu Server 18.04 LTS con due core, quattro gigabyte di RAM e un disco rigido (HDD) da venti gigabyte. Una configurazione più debole è poco adatta per un desktop grafico, anche se dipende dai compiti da svolgere. Non dimenticate di usare il codice promozionale Habrahabr10 per ottenere uno sconto del 10% al momento dell'ordine.

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
L'installazione dell'ambiente desktop con tutte le dipendenze si esegue con il seguente comando:

sudo apt-get install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

Come nel caso precedente, abbiamo scelto XFCE per i suoi requisiti relativamente bassi in termini di risorse computazionali.

Localization del server e installazione del software

Spesso le macchine virtuali vengono implementate solo con la localizzazione inglese. Potrebbe essere necessaria una versione russa sul desktop, che non è difficile da configurare. Iniziamo installando le traduzioni per i programmi di sistema:

sudo apt-get install language-pack-ru

Impostiamo la localizzazione:

sudo update-locale LANG=ru_RU.UTF-8

Lo stesso effetto può essere ottenuto modificando manualmente il file /etc/default/locale.

Per la localizzazione di GNOME e KDE, nel repository sono disponibili i pacchetti language-pack-gnome-it e language-pack-kde-it, necessari se si utilizzano programmi di questi ambienti desktop. In XFCE, le traduzioni vengono installate insieme alle applicazioni. Dopo, è possibile installare i dizionari:

# Словари для проверки орфографии
sudo apt-get install hunspell hunspell-ru

# Тезаурус для LibreOffice
sudo apt-get install mythes-ru

# Англо-русский словарь в формате DICT
sudo apt-get install mueller7-dict

Inoltre, l'installazione delle traduzioni potrebbe essere necessaria per alcune applicazioni:

# Браузер Firefox
sudo apt-get install firefox firefox-locale-ru

# Почтовый клиент Thunderbird
sudo apt-get install thunderbird thunderbird-locale-ru

# Офисный пакет LibreOffice
sudo apt-get install libreoffice libreoffice-l10n-ru libreoffice-help-ru

A questo punto, la preparazione dell'ambiente desktop è conclusa e resta da configurare il server RDP.

Installazione e configurazione del server RDP

Nei repository di Ubuntu è disponibile il server Xrdp, che utilizzeremo:

sudo apt-get install xrdp

Se tutto è andato a buon fine, il server dovrebbe avviarsi automaticamente:

sudo systemctl status xrdp

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
Il server Xrdp si avvia con i diritti dell'utente xrdp e per impostazione predefinita utilizza il certificato /etc/ssl/private/ssl-cert-snakeoil.key, che può essere sostituito con uno personale. Per concedere accesso in lettura al file, è necessario aggiungere l'utente al gruppo ssl-cert:

sudo adduser xrdp ssl-cert

Le impostazioni predefinite possono essere trovate nel file /etc/default/xrdp, mentre tutti gli altri file di configurazione del server si trovano nella directory /etc/xrdp. I parametri principali sono nel file xrdp.ini, che può rimanere invariato. La configurazione è ben documentata e sono incluse le relative manpages:

man xrdp.ini
man xrdp

È necessario solo modificare lo script /etc/xrdp/startwm.sh, che viene eseguito durante l'inizializzazione della sessione utente. Prima di tutto, facciamo un backup dello script dalla distribuzione:

sudo mv /etc/xrdp/startwm.sh /etc/xrdp/startwm.b
sudo nano /etc/xrdp/startwm.sh

Per avviare l'ambiente desktop XFCE, è necessario uno script con un contenuto simile:

#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
exec /usr/bin/startxfce4

Nota: è consigliabile specificare il percorso completo per i file eseguibili negli script; è una buona abitudine. Rendiamo lo script eseguibile e possiamo considerare conclusa la configurazione del server Xrdp:

sudo chmod 755 /etc/xrdp/startwm.sh

Riavviamo il server:

sudo systemctl restart xrdp

Configurazione del firewall

Per impostazione predefinita, Xrdp ascolta sulla porta TCP 3389 su tutte le interfacce. A seconda della configurazione del server virtuale, potrebbe essere necessaria la regolazione del firewall Netfilter. In Linux, questo è solitamente fatto con l'utility iptables, ma su Ubuntu è meglio utilizzare ufw. Se l'indirizzo IP del client è noto, la configurazione si effettua con il seguente comando:

sudo ufw allow from IP_Address to any port 3389

Per consentire le connessioni da qualsiasi IP, si può fare così:

sudo ufw allow 3389

Il protocollo RDP supporta la crittografia, ma aprire l'accesso al server Xrdp dalle reti pubbliche è una cattiva idea. Se il cliente non ha un IP statico, per migliorare la sicurezza, il server dovrebbe ascoltare solo localhost. È meglio configurare l'accesso tramite un tunnel SSH, che reindirizzerà il traffico dal computer del cliente in modo sicuro. Un approccio simile è stato utilizzato nel precedente articolo per il server VNC.

Connessione al server RDP

Per lavorare con l'ambiente desktop, è meglio creare un utente non privilegiato separato:

sudo adduser rdpuser

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
Aggiungiamo l'utente al gruppo sudo, affinché possa gestire i compiti legati all'amministrazione. Se non è necessaria questa operazione, si può saltare questo passaggio:

sudo gpasswd -a rdpuser sudo

È possibile connettersi al server utilizzando qualsiasi client RDP, incluso il client integrato del servizio Desktop remoto di Windows. Se Xrdp ascolta l'interfaccia esterna, non sono necessari ulteriori passaggi. Basta inserire nelle impostazioni di connessione l'indirizzo IP del VPS, il nome utente e la password. Una volta connessi, vedremo un'interfaccia simile a questa:

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
Dopo la configurazione iniziale dell'ambiente desktop, avremo un desktop completo. Come puoi vedere, consuma poche risorse, anche se in seguito tutto dipenderà dalle applicazioni utilizzate.

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
Se il server Xrdp ascolta solo localhost, il traffico sul computer client dovrà essere incapsulato in un tunnel SSH (sshd deve essere in esecuzione sul VPS). Su Windows, è possibile utilizzare un client SSH grafico (ad esempio, PuTTY), mentre nei sistemi UNIX è necessaria l'utilità ssh:

ssh -L 3389:127.0.0.1:3389 -C -N -l rdpuser RDP_server_ip

Dopo l'inizializzazione del tunnel, il client RDP si connetterà non più al server remoto, ma all'host locale.

Con i dispositivi mobili è più complicato: per stabilire un tunnel SSH, sarà necessario acquistare un client apposito, e in iOS e iPadOS, l'esecuzione in background delle app di terze parti è limitata per via di un'ottima ottimizzazione del consumo energetico. Su iPhone e iPad non è possibile aprire un tunnel in un'app separata: è necessario un'app combinata che possa stabilire la connessione RDP tramite SSH. Un esempio è Remoter Pro.

Gestore sessioni e sessioni utente

La funzionalità di lavoro multiutente è implementata direttamente nel server Xrdp e non richiede ulteriori configurazioni. Dopo l'avvio del servizio tramite systemd, un processo funziona in modalità demone, ascolta la porta 3389 e interagisce tramite localhost con il gestore delle sessioni.

ps aux |grep xrdp

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
Di solito, gli utenti non vedono il manager delle sessioni perché le credenziali di accesso impostate nelle impostazioni del client vengono trasmesse automaticamente. Se ciò non è avvenuto o si è verificato un errore di autenticazione, apparirà una finestra interattiva per l'accesso invece del desktop.

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04
L'avvio automatico del gestore di sessioni è definito nel file /etc/default/xrdp, mentre la configurazione è memorizzata in /etc/xrdp/sesman.ini. Per impostazione predefinita appare in questo modo:

[Globals]
ListenAddress=127.0.0.1
ListenPort=3350
EnableUserWindowManager=true
UserWindowManager=startwm.sh
DefaultWindowManager=startwm.sh

[Security]
AllowRootLogin=true
MaxLoginRetry=4
TerminalServerUsers=tsusers
TerminalServerAdmins=tsadmins
; Quando AlwaysGroupCheck=false l'accesso sarà consentito
; se il gruppo TerminalServerUsers non è definito.
AlwaysGroupCheck=false

[Sessions]

In questa sezione non è necessario apportare modifiche, basta disabilitare l'accesso con privilegi di root (AllowRootLogin=false). Per ciascun utente autenticato nel sistema viene avviato un processo xrdp separato: se ci si disconnette senza terminare la sessione, i processi utente continueranno a funzionare per impostazione predefinita e sarà possibile riconnettersi alla sessione. Le impostazioni possono essere modificate nel file /etc/xrdp/sesman.ini (sezione [Sessions]).

Cambiamento delle disposizioni della tastiera

Di solito non ci sono problemi con il buffer di scambio bidirezionale, ma per la disposizione della tastiera in russo sarà necessario fare alcune modifiche (la locale russa deve essere già installata). Andiamo a modificare le impostazioni della tastiera del server Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Alla fine del file di configurazione è necessario aggiungere le seguenti righe:

[rdp_keyboard_ru]
keyboard_type=4
keyboard_type=7
keyboard_subtype=1
model=pc105
options=grp:alt_shift_toggle
rdp_layouts=default_rdp_layouts
layouts_map=layouts_map_ru

[layouts_map_ru]
rdp_layout_us=us,ru
rdp_layout_ru=us,ru

Salva il file e riavvia Xrdp:

sudo systemctl restart xrdp

Come puoi vedere, avviare un server RDP su VPS Linux è semplice, e articolo precedente abbiamo già esaminato la configurazione di VNC. Oltre a queste tecnologie, c'è un'altra opzione interessante: il sistema X2Go, che utilizza un protocollo NX 3 modificato. Ne parleremo nel prossimo articolo.

VPS su Linux con interfaccia grafica: avviamo il server RDP su Ubuntu 18.04

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster