VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
В προηγούμενο άρθρο Έχουμε καλύψει την εκτέλεση ενός διακομιστή VNC σε οποιονδήποτε τύπο εικονικής μηχανής. Αυτή η επιλογή έχει πολλά μειονεκτήματα, το κύριο από τα οποία είναι οι υψηλές απαιτήσεις για το εύρος ζώνης των καναλιών μετάδοσης δεδομένων. Σήμερα θα προσπαθήσουμε να συνδεθούμε σε μια γραφική επιφάνεια εργασίας σε Linux μέσω RDP (Remote Desktop Protocol). Το σύστημα VNC βασίζεται στη μετάδοση συστοιχιών εικονοστοιχείων μέσω του πρωτοκόλλου RFB (Remote Framebuffer), ενώ το RDP επιτρέπει την αποστολή πιο σύνθετων γραφικών πρωτογενών στοιχείων και εντολών υψηλού επιπέδου. Συνήθως χρησιμοποιείται για τη φιλοξενία υπηρεσιών απομακρυσμένης επιφάνειας εργασίας σε Windows, αλλά διατίθενται και διακομιστές για Linux.

Πίνακας περιεχομένων:

Εγκατάσταση του γραφικού περιβάλλοντος
Ρωσοποίηση του διακομιστή και εγκατάσταση λογισμικού
Εγκατάσταση και ρύθμιση παραμέτρων διακομιστή RDP
Ρύθμιση τείχους προστασίας
Σύνδεση με διακομιστή RDP
Διαχειριστής περιόδων σύνδεσης και συνεδρίες χρηστών
Αλλαγή διατάξεων πληκτρολογίου

Εγκατάσταση του γραφικού περιβάλλοντος

Θα πάρουμε μια εικονική μηχανή με Ubuntu Server 18.04 LTS με δύο πυρήνες υπολογιστών, τέσσερα gigabytes μνήμης RAM και έναν σκληρό δίσκο (HDD) είκοσι gigabytes. Μια πιο αδύναμη διαμόρφωση δεν είναι κατάλληλη για μια γραφική επιφάνεια εργασίας, αν και αυτό εξαρτάται από τις εργασίες που επιλύονται. Μην ξεχάσετε να χρησιμοποιήσετε τον κωδικό προσφοράς Habrahabr10 για να λάβετε έκπτωση 10% στην παραγγελία σας.

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Η εγκατάσταση του περιβάλλοντος επιφάνειας εργασίας με όλες τις εξαρτήσεις γίνεται με την ακόλουθη εντολή:

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

Όπως και στην προηγούμενη περίπτωση, επιλέξαμε το XFCE λόγω των σχετικά χαμηλών απαιτήσεών του σε υπολογιστικά συστήματα.

Ρωσοποίηση του διακομιστή και εγκατάσταση λογισμικού

Συχνά οι εικονικές μηχανές αναπτύσσονται μόνο με αγγλική μετάφραση. Στην επιφάνεια εργασίας μπορεί να χρειαστείτε ρωσικά, τα οποία είναι εύκολο να εγκατασταθούν. Αρχικά, ας εγκαταστήσουμε μεταφράσεις για προγράμματα συστήματος:

sudo apt-get install language-pack-ru

Ας ρυθμίσουμε την τοπική προσαρμογή:

sudo update-locale LANG=ru_RU.UTF-8

Το ίδιο αποτέλεσμα μπορεί να επιτευχθεί με μη αυτόματη επεξεργασία του /etc/default/locale.

Για την τοπική προσαρμογή του GNOME και του KDE, το αποθετήριο έχει τα πακέτα language-pack-gnome-ru και language-pack-kde-ru - θα τα χρειαστείτε εάν χρησιμοποιείτε προγράμματα από αυτά τα περιβάλλοντα επιφάνειας εργασίας. Στο XFCE, οι μεταφράσεις εγκαθίστανται με εφαρμογές. Στη συνέχεια, μπορείτε να εγκαταστήσετε τα λεξικά:

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

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

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

Επιπλέον, ενδέχεται να απαιτείται εγκατάσταση μεταφράσεων για ορισμένα προγράμματα εφαρμογής:

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

Αυτό ολοκληρώνει την προετοιμασία του περιβάλλοντος εργασίας, το μόνο που μένει είναι να διαμορφώσετε τον διακομιστή RDP.

Εγκατάσταση και ρύθμιση παραμέτρων διακομιστή RDP

Υπάρχει ένας ελεύθερα κατανεμημένος διακομιστής Xrdp στα αποθετήρια του Ubuntu, τον οποίο θα χρησιμοποιήσουμε:

sudo apt-get install xrdp

Εάν όλα πήγαν καλά, ο διακομιστής θα πρέπει να ξεκινήσει αυτόματα:

sudo systemctl status xrdp

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Ο διακομιστής Xrdp εκτελείται με δικαιώματα χρήστη xrdp και από προεπιλογή λαμβάνει το πιστοποιητικό /etc/ssl/private/ssl-cert-snakeoil.key, το οποίο μπορεί να αντικατασταθεί με το δικό σας. Για να αποκτήσετε πρόσβαση στο αρχείο για ανάγνωση, πρέπει να προσθέσετε τον χρήστη στην ομάδα ssl-cert:

sudo adduser xrdp ssl-cert

Οι προεπιλεγμένες ρυθμίσεις βρίσκονται στο αρχείο /etc/default/xrdp και όλα τα άλλα αρχεία διαμόρφωσης διακομιστή βρίσκονται στον κατάλογο /etc/xrdp. Οι κύριες παράμετροι βρίσκονται στο αρχείο xrdp.ini, το οποίο δεν χρειάζεται να αλλάξει. Η διαμόρφωση είναι καλά τεκμηριωμένη και το πακέτο περιλαμβάνει επίσης τις αντίστοιχες σελίδες εγχειριδίου:

man xrdp.ini
man xrdp

Το μόνο που απομένει είναι να επεξεργαστείτε το σενάριο /etc/xrdp/startwm.sh, το οποίο εκτελείται όταν αρχικοποιείται η συνεδρία χρήστη. Αρχικά, ας δημιουργήσουμε ένα αντίγραφο ασφαλείας του σεναρίου από την διανομή:

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

Για να ξεκινήσετε το περιβάλλον εργασίας XFCE, θα χρειαστείτε ένα σενάριο που μοιάζει κάπως έτσι:

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

Σημείωση: είναι καλύτερο να γράφετε την πλήρη διαδρομή προς τα εκτελέσιμα αρχεία σε σενάρια - αυτή είναι μια καλή συνήθεια. Ας κάνουμε το σενάριο εκτελέσιμο και αυτό ολοκληρώνει την εγκατάσταση του διακομιστή Xrdp:

sudo chmod 755 /etc/xrdp/startwm.sh

Επανεκκινήστε τον διακομιστή:

sudo systemctl restart xrdp

Ρύθμιση τείχους προστασίας

Από προεπιλογή, το Xrdp ακούει στη θύρα TCP 3389 σε όλες τις διεπαφές. Ανάλογα με τη διαμόρφωση του εικονικού διακομιστή σας, ίσως χρειαστεί να διαμορφώσετε το τείχος προστασίας Netfilter. Στο Linux αυτό γίνεται συνήθως χρησιμοποιώντας το βοηθητικό πρόγραμμα iptables, αλλά στο Ubuntu είναι καλύτερο να χρησιμοποιήσετε το ufw. Εάν η διεύθυνση IP του υπολογιστή-πελάτη είναι γνωστή, η διαμόρφωση εκτελείται με την ακόλουθη εντολή:

sudo ufw allow from IP_Address to any port 3389

Μπορείτε να επιτρέψετε συνδέσεις από οποιαδήποτε IP ως εξής:

sudo ufw allow 3389

Το πρωτόκολλο RDP υποστηρίζει κρυπτογράφηση, αλλά το άνοιγμα πρόσβασης στον διακομιστή Xrdp από δημόσια δίκτυα είναι κακή ιδέα. Εάν ο υπολογιστής-πελάτης δεν έχει σταθερή διεύθυνση IP, ο διακομιστής θα πρέπει να ακούει μόνο στον τοπικό κεντρικό υπολογιστή για βελτίωση της ασφάλειας. Είναι καλύτερο να ρυθμίσετε την πρόσβαση σε αυτό μέσω μιας σήραγγας SSH, η οποία θα ανακατευθύνει με ασφάλεια την κυκλοφορία από τον υπολογιστή-πελάτη. Ακολουθούμε μια παρόμοια προσέγγιση χρησιμοποιήθηκε στο προηγούμενο άρθρο για διακομιστή VNC.

Σύνδεση με διακομιστή RDP

Για να εργαστείτε με το περιβάλλον επιφάνειας εργασίας, είναι καλύτερο να δημιουργήσετε έναν ξεχωριστό χρήστη χωρίς δικαιώματα:

sudo adduser rdpuser

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Ας προσθέσουμε τον χρήστη στην ομάδα sudo ώστε να μπορεί να εκτελεί εργασίες που σχετίζονται με τη διαχείριση. Εάν δεν υπάρχει τέτοια ανάγκη, μπορείτε να παραλείψετε αυτό το βήμα:

sudo gpasswd -a rdpuser sudo

Μπορείτε να συνδεθείτε στον διακομιστή χρησιμοποιώντας οποιοδήποτε πρόγραμμα-πελάτη RDP, συμπεριλαμβανομένου του ενσωματωμένου προγράμματος-πελάτη των Υπηρεσιών Απομακρυσμένης Επιφάνειας Εργασίας των Windows. Εάν το Xrdp ακούει στην εξωτερική διεπαφή, δεν απαιτούνται πρόσθετα βήματα. Αρκεί να καθορίσετε τη διεύθυνση IP του VPS, το όνομα χρήστη και τον κωδικό πρόσβασης στις ρυθμίσεις σύνδεσης. Αφού συνδεθούμε, θα δούμε κάτι σαν αυτό:

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Μετά την αρχική εγκατάσταση του περιβάλλοντος εργασίας, θα έχουμε μια πλήρη επιφάνεια εργασίας. Όπως μπορείτε να δείτε, δεν καταναλώνει πολλούς πόρους, αν και στη συνέχεια όλα θα εξαρτηθούν από τις εφαρμογές που χρησιμοποιούνται.

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Εάν ο διακομιστής Xrdp ακούει μόνο τον localhost, η κίνηση θα πρέπει να συσκευαστεί σε μια σήραγγα SSH στον υπολογιστή-πελάτη (το sshd πρέπει να εκτελείται στο VPS). Στα Windows μπορείτε να χρησιμοποιήσετε ένα γραφικό πρόγραμμα-πελάτη SSH (για παράδειγμα, το PuTTY) και σε συστήματα UNIX χρειάζεστε το βοηθητικό πρόγραμμα ssh:

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

Μετά την αρχικοποίηση της σήραγγας, ο υπολογιστής-πελάτης RDP δεν θα συνδέεται πλέον με τον απομακρυσμένο διακομιστή, αλλά με τον τοπικό κεντρικό υπολογιστή.

Είναι πιο περίπλοκο με τις κινητές συσκευές: θα πρέπει να αγοράσετε προγράμματα-πελάτες SSH ικανά να δημιουργήσουν μια σήραγγα, και στα iOS και iPadOS, η εργασία στο παρασκήνιο εφαρμογών τρίτων είναι δύσκολη λόγω της υπερβολικά καλής βελτιστοποίησης της κατανάλωσης ενέργειας. Σε iPhone και iPad, δεν θα μπορείτε να ρυθμίσετε μια σήραγγα σε ξεχωριστή εφαρμογή - θα χρειαστείτε μια εφαρμογή combine που μπορεί η ίδια να δημιουργήσει μια σύνδεση RDP μέσω SSH. Όπως, για παράδειγμα, Remoter Pro.

Διαχειριστής περιόδων σύνδεσης και συνεδρίες χρηστών

Η δυνατότητα συνεργασίας με πολλαπλούς χρήστες υλοποιείται απευθείας στον διακομιστή Xrdp και δεν απαιτεί πρόσθετη διαμόρφωση. Μετά την εκκίνηση της υπηρεσίας μέσω του systemd, μια διεργασία εκτελείται σε λειτουργία daemon, ακούει στη θύρα 3389 και επικοινωνεί μέσω localhost με τον διαχειριστή συνεδρίας.

ps aux |grep xrdp

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04

sudo netstat -ap |grep xrdp

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Ο διαχειριστής περιόδων λειτουργίας συνήθως δεν είναι ορατός στους χρήστες, επειδή τα στοιχεία σύνδεσης και ο κωδικός πρόσβασης που καθορίζονται στις ρυθμίσεις του προγράμματος-πελάτη μεταφέρονται σε αυτόν αυτόματα. Εάν αυτό δεν συμβεί ή παρουσιαστεί σφάλμα ελέγχου ταυτότητας, θα εμφανιστεί ένα διαδραστικό παράθυρο σύνδεσης αντί για την επιφάνεια εργασίας.

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04
Η αυτόματη εκκίνηση του διαχειριστή συνεδριών καθορίζεται στο αρχείο /etc/default/xrdp και η διαμόρφωση αποθηκεύεται στο /etc/xrdp/sesman.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]

Δεν χρειάζεται να αλλάξετε τίποτα εδώ, απλώς πρέπει να απαγορεύσετε τη σύνδεση με δικαιώματα root (AllowRootLogin=false). Για κάθε χρήστη που συνδέεται στο σύστημα, ξεκινά μια ξεχωριστή διεργασία xrdp: εάν αποσυνδεθείτε χωρίς να τερματίσετε την περίοδο λειτουργίας, οι διεργασίες χρήστη θα συνεχίσουν να εκτελούνται από προεπιλογή και μπορείτε να συνδεθείτε ξανά στην περίοδο λειτουργίας. Οι ρυθμίσεις μπορούν να αλλάξουν στο αρχείο /etc/xrdp/sesman.ini (ενότητα [Συνεδρίες]).

Αλλαγή διατάξεων πληκτρολογίου

Συνήθως δεν υπάρχουν προβλήματα με το αμφίδρομο πρόχειρο, αλλά με τη διάταξη πληκτρολογίου για τα ρωσικά θα πρέπει να κάνετε κάποια μαγεία (η ρωσική τοπική ρύθμιση θα πρέπει ήδη να είναι διαθέσιμη) εγκατεστημένο). Ας επεξεργαστούμε τις ρυθμίσεις πληκτρολογίου του διακομιστή Xrdp:

sudo nano /etc/xrdp/xrdp_keyboard.ini

Οι ακόλουθες γραμμές πρέπει να προστεθούν στο τέλος του αρχείου διαμόρφωσης:

[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

Το μόνο που μένει είναι να αποθηκεύσετε το αρχείο και να επανεκκινήσετε το Xrdp:

sudo systemctl restart xrdp

Όπως μπορείτε να δείτε, η εγκατάσταση ενός διακομιστή RDP σε ένα VPS Linux δεν είναι δύσκολη και... προηγούμενο άρθρο Έχουμε ήδη καλύψει την εγκατάσταση του VNC. Εκτός από αυτές τις τεχνολογίες, υπάρχει μια άλλη ενδιαφέρουσα επιλογή: το σύστημα X3Go, το οποίο χρησιμοποιεί ένα τροποποιημένο πρωτόκολλο NX 2. Θα το αντιμετωπίσουμε σε επόμενη δημοσίευση.

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή RDP στο Ubuntu 18.04

Πηγή: www.habr.com