VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
В Artikel sebelumnya kita membahas menjalankan server VNC pada mesin virtual jenis apa pun. Opsi ini memiliki banyak kelemahan, yang utama adalah tingginya persyaratan untuk throughput saluran transmisi data. Hari ini kita akan mencoba terhubung ke desktop grafis di Linux melalui RDP (Remote Desktop Protocol). Sistem VNC didasarkan pada transmisi array piksel menggunakan protokol RFB (Remote Framebuffer), dan RDP memungkinkan Anda mengirim grafik primitif yang lebih kompleks dan perintah tingkat tinggi. Biasanya digunakan untuk meng-host Layanan Desktop Jarak Jauh di Windows, tetapi server untuk Linux juga tersedia.

contoh:

Menginstal lingkungan grafis
Russifikasi server dan instalasi perangkat lunak
Menginstal dan mengkonfigurasi server RDP
Menyiapkan firewall
Menghubungkan ke server RDP
Manajer Sesi dan Sesi Pengguna
Mengganti tata letak keyboard

Menginstal lingkungan grafis

Kami akan mengambil mesin virtual dengan Ubuntu Server 18.04 LTS dengan dua inti komputasi, empat gigabyte RAM dan hard drive (HDD) dua puluh gigabyte. Konfigurasi yang lebih lemah tidak cocok untuk desktop grafis, meskipun hal ini tergantung pada tugas yang diselesaikan. Jangan lupa gunakan kode promo Habrahabr10 untuk mendapatkan diskon 10% pada pesanan Anda.

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Menginstal lingkungan desktop dengan semua dependensi dilakukan dengan perintah berikut:

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

Seperti pada kasus sebelumnya, kami memilih XFCE karena kebutuhan sumber daya komputasinya yang relatif rendah.

Russifikasi server dan instalasi perangkat lunak

Seringkali mesin virtual dikerahkan hanya dengan lokalisasi bahasa Inggris. Di desktop Anda mungkin memerlukan bahasa Rusia, yang mudah diatur. Pertama, mari kita instal terjemahan untuk program sistem:

sudo apt-get install language-pack-ru

Mari kita siapkan pelokalan:

sudo update-locale LANG=ru_RU.UTF-8

Efek yang sama dapat dicapai dengan mengedit file /etc/default/locale.conf secara manual.

Untuk pelokalan GNOME dan KDE, repositori memiliki paket bahasa-pack-gnome-ru dan paket bahasa-kde-ru - Anda akan memerlukannya jika menggunakan program dari lingkungan desktop ini. Di XFCE, terjemahan diinstal dengan aplikasi. Selanjutnya Anda dapat menginstal kamus:

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

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

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

Selain itu, instalasi terjemahan mungkin diperlukan untuk beberapa program aplikasi:

# Браузер 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

Ini menyelesaikan persiapan lingkungan desktop, yang tersisa hanyalah mengkonfigurasi server RDP.

Menginstal dan mengkonfigurasi server RDP

Repositori Ubuntu memiliki server Xrdp yang didistribusikan secara gratis, yang akan kita gunakan:

sudo apt-get install xrdp

Jika semuanya berjalan dengan baik, server akan mulai secara otomatis:

sudo systemctl status xrdp

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Server Xrdp berjalan dengan hak pengguna xrdp dan secara default mengambil sertifikat /etc/ssl/private/ssl-cert-snakeoil.key, yang dapat diganti dengan milik Anda sendiri. Untuk memiliki akses membaca file, Anda perlu menambahkan pengguna ke grup ssl-cert:

sudo adduser xrdp ssl-cert

Pengaturan default dapat ditemukan di file /etc/default/xrdp, dan semua file konfigurasi server lainnya terletak di direktori /etc/xrdp. Parameter utama ada di file xrdp.ini, yang tidak perlu diubah. Konfigurasinya didokumentasikan dengan baik, dan halaman manual terkait disertakan:

man xrdp.ini
man xrdp

Yang tersisa hanyalah mengedit skrip /etc/xrdp/startwm.sh, yang dijalankan saat sesi pengguna diinisialisasi. Pertama, mari kita buat salinan cadangan skrip dari distribusi:

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

Untuk memulai lingkungan desktop XFCE, Anda memerlukan skrip seperti ini:

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

Harap diperhatikan: dalam skrip, lebih baik menulis path lengkap ke file yang dapat dieksekusi - ini adalah kebiasaan yang baik. Mari kita buat skripnya dapat dieksekusi dan pada titik ini pengaturan server Xrdp dapat dianggap selesai:

sudo chmod 755 /etc/xrdp/startwm.sh

Mulai ulang server:

sudo systemctl restart xrdp

Menyiapkan firewall

Secara default, Xrdp mendengarkan port TCP 3389 di semua antarmuka. Tergantung pada konfigurasi server virtual, Anda mungkin perlu mengkonfigurasi firewall Netfilter. Di Linux, ini biasanya dilakukan menggunakan utilitas iptables, tetapi di Ubuntu lebih baik menggunakan ufw. Jika alamat IP klien diketahui, konfigurasi dilakukan dengan perintah berikut:

sudo ufw allow from IP_Address to any port 3389

Anda dapat mengizinkan koneksi dari IP apa pun seperti ini:

sudo ufw allow 3389

Protokol RDP mendukung enkripsi, tetapi mengekspos server Xrdp ke jaringan publik adalah ide yang buruk. Jika klien tidak memiliki IP tetap, server hanya boleh mendengarkan localhost untuk meningkatkan keamanan. Cara terbaik adalah mengaksesnya melalui terowongan SSH, yang akan mengalihkan lalu lintas dari komputer klien dengan aman. Kami memiliki pendekatan serupa digunakan pada artikel sebelumnya untuk server VNC.

Menghubungkan ke server RDP

Untuk bekerja dengan lingkungan desktop, lebih baik membuat pengguna terpisah yang tidak memiliki hak istimewa:

sudo adduser rdpuser

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Mari tambahkan pengguna ke grup sudo sehingga dia dapat melakukan tugas terkait administrasi. Jika tidak diperlukan, Anda dapat melewati langkah ini:

sudo gpasswd -a rdpuser sudo

Anda dapat menyambung ke server menggunakan klien RDP apa pun, termasuk klien Layanan Desktop Jarak Jauh Windows bawaan. Jika Xrdp mendengarkan antarmuka eksternal, tidak diperlukan tindakan tambahan. Cukup menentukan alamat IP VPS, nama pengguna dan kata sandi di pengaturan koneksi. Setelah terhubung, kita akan melihat sesuatu seperti ini:

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Setelah pengaturan awal lingkungan desktop, kita akan mendapatkan desktop yang lengkap. Seperti yang Anda lihat, ini tidak menghabiskan banyak sumber daya, meskipun semuanya bergantung pada aplikasi yang digunakan.

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Jika server Xrdp hanya mendengarkan localhost, lalu lintas di komputer klien harus dikemas ke dalam terowongan SSH (sshd harus berjalan di VPS). Di Windows, Anda dapat menggunakan klien SSH grafis (misalnya, PuTTY), dan pada sistem UNIX Anda memerlukan utilitas ssh:

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

Setelah terowongan diinisialisasi, klien RDP tidak lagi terhubung ke server jarak jauh, tetapi ke host lokal.

Lebih sulit lagi dengan perangkat seluler: Klien SSH yang mampu membangun terowongan harus dibeli, dan di iOS dan iPadOS, pengoperasian aplikasi pihak ketiga di latar belakang menjadi sulit karena optimalisasi konsumsi energi yang terlalu baik. Di iPhone dan iPad, Anda tidak akan dapat membuat terowongan di aplikasi terpisah; Anda memerlukan aplikasi pemanen yang dapat membuat koneksi RDP melalui SSH. Seperti misalnya Pro Terpencil.

Manajer Sesi dan Sesi Pengguna

Kemampuan kerja multi-pengguna diimplementasikan langsung di server Xrdp dan tidak memerlukan konfigurasi tambahan. Setelah memulai layanan melalui systemd, satu proses berjalan dalam mode daemon, mendengarkan pada port 3389 dan berkomunikasi melalui localhost dengan manajer sesi.

ps aux |grep xrdp

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Manajer sesi biasanya tidak terlihat oleh pengguna, karena login dan kata sandi yang ditentukan dalam pengaturan klien ditransfer secara otomatis. Jika hal ini tidak terjadi atau terjadi kesalahan selama autentikasi, jendela login interaktif akan muncul di layar desktop.

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04
Peluncuran otomatis manajer sesi ditentukan dalam file /etc/default/xrdp, dan konfigurasinya disimpan di /etc/xrdp/sesman.ini. Secara default, tampilannya seperti ini:

[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
; When AlwaysGroupCheck=false access will be permitted
; if the group TerminalServerUsers is not defined.
AlwaysGroupCheck=false

[Sessions]

Anda tidak perlu mengubah apa pun di sini, Anda hanya perlu menonaktifkan login dengan hak root (AllowRootLogin=false). Untuk setiap pengguna yang diotorisasi dalam sistem, proses xrdp terpisah diluncurkan: jika Anda memutuskan sambungan tanpa mengakhiri sesi, proses pengguna akan terus berjalan secara default, dan Anda dapat menyambung ke sesi itu lagi. Pengaturan dapat diubah di file /etc/xrdp/sesman.ini (bagian [Sesi]).

Mengganti tata letak keyboard

Biasanya tidak ada masalah dengan clipboard dua arah, tetapi dengan tata letak keyboard Rusia Anda harus bermain-main sedikit (lokal Rusia seharusnya sudah terpasang). Mari kita edit pengaturan keyboard server Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Anda perlu menambahkan baris berikut ke akhir file konfigurasi:

[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

Yang tersisa hanyalah menyimpan file dan memulai ulang Xrdp:

sudo systemctl restart xrdp

Seperti yang Anda lihat, tidak sulit untuk menyiapkan server RDP di VPS Linux Artikel sebelumnya Kami telah membahas pengaturan VNC. Selain teknologi tersebut, ada opsi menarik lainnya: sistem X3Go menggunakan protokol NX 2 yang dimodifikasi. Kami akan membahasnya di publikasi berikutnya.

VPS di Linux dengan antarmuka grafis: meluncurkan server RDP di Ubuntu 18.04

Sumber: www.habr.com