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

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή VNC στο Ubuntu 18.04
Μερικοί χρήστες νοικιάζουν σχετικά φθηνά VPS με Windows για την εκτέλεση υπηρεσιών απομακρυσμένης επιφάνειας εργασίας. Το ίδιο μπορεί να γίνει στο Linux χωρίς να φιλοξενήσετε το δικό σας υλικό σε κέντρο δεδομένων ή να νοικιάσετε έναν αποκλειστικό διακομιστή. Μερικοί άνθρωποι χρειάζονται ένα οικείο γραφικό περιβάλλον για δοκιμή και ανάπτυξη ή μια απομακρυσμένη επιφάνεια εργασίας με ευρύ κανάλι για εργασία από κινητές συσκευές. Υπάρχουν πολλές επιλογές για τη χρήση του συστήματος Virtual Network Computing (VNC) που βασίζεται σε πρωτόκολλο Remote FrameBuffer (RFB). Σε αυτό το σύντομο άρθρο θα σας πούμε πώς να το ρυθμίσετε σε μια εικονική μηχανή με οποιονδήποτε hypervisor.

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

Επιλογή διακομιστή VNC
Εγκατάσταση και διαμόρφωση
Εκκίνηση υπηρεσίας μέσω systemd
Σύνδεση επιφάνειας εργασίας

Επιλογή διακομιστή VNC

Η υπηρεσία VNC μπορεί να ενσωματωθεί στο σύστημα εικονικοποίησης και ο hypervisor θα τη συνδέσει με τις εξομοιούμενες συσκευές και δεν θα απαιτείται πρόσθετη ρύθμιση παραμέτρων. Αυτή η επιλογή περιλαμβάνει σημαντικές επιβαρύνσεις και δεν υποστηρίζεται από όλους τους παρόχους - ακόμη και σε μια υλοποίηση που απαιτεί λιγότερους πόρους, όταν αντί να εξομοιωθεί μια πραγματική συσκευή γραφικών, μια απλοποιημένη αφαίρεση (framebuffer) μεταφέρεται στην εικονική μηχανή. Μερικές φορές ένας διακομιστής VNC συνδέεται με έναν διακομιστή Χ που λειτουργεί, αλλά αυτή η μέθοδος είναι πιο κατάλληλη για πρόσβαση σε ένα φυσικό μηχάνημα και σε ένα εικονικό δημιουργεί ορισμένες τεχνικές δυσκολίες. Ο ευκολότερος τρόπος εγκατάστασης ενός διακομιστή VNC είναι με έναν ενσωματωμένο διακομιστή X. Δεν απαιτεί φυσικές συσκευές (προσαρμογέας βίντεο, πληκτρολόγιο και ποντίκι) ή την εξομοίωση τους με χρήση hypervisor και επομένως είναι κατάλληλο για κάθε τύπο VPS.

Εγκατάσταση και διαμόρφωση

Θα χρειαστούμε μια εικονική μηχανή με Ubuntu Server 18.04 LTS στην προεπιλεγμένη διαμόρφωση. Υπάρχουν αρκετοί διακομιστές VNC στα τυπικά αποθετήρια αυτής της διανομής: TightVNC, TigerVNC, x11vnc και άλλοι. Εγκατασταθήκαμε στο TigerVNC - ένα τρέχον πιρούνι του TightVNC, το οποίο δεν υποστηρίζεται από τον προγραμματιστή. Η εγκατάσταση άλλων διακομιστών γίνεται με παρόμοιο τρόπο. Πρέπει επίσης να επιλέξετε ένα περιβάλλον επιφάνειας εργασίας: η βέλτιστη επιλογή, κατά τη γνώμη μας, θα ήταν το XFCE λόγω των σχετικά χαμηλών απαιτήσεων για υπολογιστικούς πόρους. Όσοι επιθυμούν μπορούν να εγκαταστήσουν ένα άλλο DE ή WM: όλα εξαρτώνται από τις προσωπικές προτιμήσεις, αλλά η επιλογή του λογισμικού επηρεάζει άμεσα την ανάγκη για RAM και πυρήνες υπολογιστών.

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

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

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

Στη συνέχεια, πρέπει να εγκαταστήσετε τον διακομιστή VNC:

sudo apt-get install tigervnc-standalone-server tigervnc-common

Η εκτέλεση του ως superuser είναι κακή ιδέα. Δημιουργία χρήστη και ομάδας:

sudo adduser vnc

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

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

sudo gpasswd -a vnc sudo

Το επόμενο βήμα είναι να εκτελέσετε τον διακομιστή VNC με δικαιώματα χρήστη vnc για να δημιουργήσετε έναν ασφαλή κωδικό πρόσβασης και αρχεία διαμόρφωσης στον κατάλογο ~/.vnc/. Το μήκος του κωδικού πρόσβασης μπορεί να είναι από 6 έως 8 χαρακτήρες (οι επιπλέον χαρακτήρες αποκόπτονται). Εάν είναι απαραίτητο, ορίζεται επίσης ένας κωδικός πρόσβασης μόνο για προβολή, π.χ. χωρίς πρόσβαση σε πληκτρολόγιο και ποντίκι. Οι ακόλουθες εντολές εκτελούνται ως χρήστης vnc:

su - vnc
vncserver -localhost no

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή VNC στο Ubuntu 18.04
Από προεπιλογή, το πρωτόκολλο RFB χρησιμοποιεί το εύρος θυρών TCP από 5900 έως 5906 - αυτό είναι το λεγόμενο. θύρες οθόνης, καθεμία από τις οποίες αντιστοιχεί σε μια οθόνη διακομιστή X. Σε αυτήν την περίπτωση, οι θύρες συνδέονται με οθόνες από :0 έως :6. Η παρουσία διακομιστή VNC που ξεκινήσαμε ακούει τη θύρα 5901 (οθόνη: 1). Άλλα στιγμιότυπα μπορούν να λειτουργήσουν σε άλλες θύρες με οθόνες :2, :3, κ.λπ. Πριν από περαιτέρω διαμόρφωση, πρέπει να σταματήσετε τον διακομιστή:

vncserver -kill :1

Η εντολή θα πρέπει να εμφανίζει κάπως έτσι: "Killing Xtigervnc process ID 18105... success!"

Όταν ξεκινά το TigerVNC, εκτελεί το σενάριο ~/.vnc/xstartup για να διαμορφώσει τις ρυθμίσεις διαμόρφωσης. Ας δημιουργήσουμε το δικό μας σενάριο, αποθηκεύοντας πρώτα ένα αντίγραφο ασφαλείας του υπάρχοντος, αν υπάρχει:

mv ~/.vnc/xstartup ~/.vnc/xstartup.b
nano ~/.vnc/xstartup

Η περίοδος λειτουργίας περιβάλλοντος επιφάνειας εργασίας XFCE ξεκινά με την ακόλουθη δέσμη ενεργειών xstartup:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
xrdb $HOME/.Xresources
exec /usr/bin/startxfce4 &

Η εντολή xrdb απαιτείται για να διαβάσει το VNC το αρχείο .Xresources στον αρχικό κατάλογο. Εκεί ο χρήστης μπορεί να ορίσει διάφορες γραφικές ρυθμίσεις επιφάνειας εργασίας: απόδοση γραμματοσειράς, χρώματα τερματικού, θέματα δρομέα κ.λπ. Το σενάριο πρέπει να γίνει εκτελέσιμο:

chmod 755 ~/.vnc/xstartup

Αυτό ολοκληρώνει τη ρύθμιση διακομιστή VNC. Εάν το εκτελέσετε με την εντολή vncserver -localhost no (ως χρήστης vnc), μπορείτε να συνδεθείτε με τον κωδικό πρόσβασης που καθορίσατε προηγουμένως και να δείτε την ακόλουθη εικόνα:

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

Εκκίνηση υπηρεσίας μέσω systemd

Η μη αυτόματη εκκίνηση ενός διακομιστή VNC δεν είναι κατάλληλη για χρήση σε μάχη, επομένως θα διαμορφώσουμε μια υπηρεσία συστήματος. Οι εντολές εκτελούνται ως root (χρησιμοποιούμε sudo). Αρχικά, ας δημιουργήσουμε ένα νέο αρχείο μονάδας για τον διακομιστή μας:

sudo nano /etc/systemd/system/[email protected]

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

[Unit]
Description=TigerVNC server
After=syslog.target network.target

[Service]
Type=simple
User=vnc 
Group=vnc 
WorkingDirectory=/home/vnc 
PIDFile=/home/vnc/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x960 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

Στη συνέχεια, πρέπει να ειδοποιήσετε το systemd για το νέο αρχείο και να το ενεργοποιήσετε:

sudo systemctl daemon-reload
sudo systemctl enable [email protected]

Ο αριθμός 1 στο όνομα καθορίζει τον αριθμό οθόνης.

Σταματήστε τον διακομιστή VNC, ξεκινήστε τον ως υπηρεσία και ελέγξτε την κατάσταση:

# от имени пользователя vnc 
vncserver -kill :1

# с привилегиями суперпользователя
sudo systemctl start vncserver@1
sudo systemctl status vncserver@1

Εάν η υπηρεσία λειτουργεί, θα πρέπει να λάβουμε κάτι τέτοιο.

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

Σύνδεση επιφάνειας εργασίας

Η διαμόρφωσή μας δεν χρησιμοποιεί κρυπτογράφηση, επομένως τα πακέτα δικτύου μπορούν να υποκλαπούν από εισβολείς. Επιπλέον, σε διακομιστές VNC αρκετά συχνά βρείτε τρωτά σημεία, επομένως δεν πρέπει να τα ανοίγετε για πρόσβαση από το Διαδίκτυο. Για να συνδεθείτε με ασφάλεια στον τοπικό σας υπολογιστή, πρέπει να συσκευάσετε την κίνηση σε μια σήραγγα SSH και στη συνέχεια να διαμορφώσετε έναν πελάτη VNC. Στα Windows, μπορείτε να χρησιμοποιήσετε ένα πρόγραμμα-πελάτη SSH με γραφικά (για παράδειγμα, PuTTY). Για ασφάλεια, το TigerVNC στον διακομιστή ακούει μόνο τον localhost και δεν είναι άμεσα προσβάσιμο από δημόσια δίκτυα:


sudo netstat -ap |more

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή VNC στο Ubuntu 18.04
Στο Linux, το FreeBSD, το OS X και άλλα λειτουργικά συστήματα παρόμοια με το UNIX, δημιουργείται ένα τούνελ από τον υπολογιστή-πελάτη χρησιμοποιώντας το βοηθητικό πρόγραμμα ssh (το sshd πρέπει να εκτελείται στον διακομιστή VNC):

ssh -L 5901:127.0.0.1:5901 -C -N -l vnc vnc_server_ip

Η επιλογή -L συνδέει τη θύρα 5901 της απομακρυσμένης σύνδεσης με τη θύρα 5901 του localhost. Η επιλογή -C ενεργοποιεί τη συμπίεση και η επιλογή -N λέει στο ssh να μην εκτελέσει την απομακρυσμένη εντολή. Η επιλογή -l καθορίζει τη σύνδεση για απομακρυσμένη σύνδεση.

Αφού ρυθμίσετε τη σήραγγα στον τοπικό υπολογιστή, πρέπει να εκκινήσετε τον πελάτη VNC και να δημιουργήσετε μια σύνδεση με τον κεντρικό υπολογιστή 127.0.0.1:5901 (localhost:5901), χρησιμοποιώντας τον κωδικό πρόσβασης που καθορίσατε προηγουμένως για πρόσβαση στον διακομιστή VNC. Μπορούμε πλέον να επικοινωνούμε με ασφάλεια μέσω ενός κρυπτογραφημένου τούνελ με το γραφικό περιβάλλον επιφάνειας εργασίας XFCE στο VPS. Στο στιγμιότυπο οθόνης, το κορυφαίο βοηθητικό πρόγραμμα εκτελείται στον εξομοιωτή τερματικού για να δείξει τη χαμηλή κατανάλωση υπολογιστικών πόρων της εικονικής μηχανής. Τότε όλα θα εξαρτηθούν από τις εφαρμογές των χρηστών.

VPS σε Linux με γραφική διεπαφή: εκκίνηση διακομιστή VNC στο Ubuntu 18.04
Μπορείτε να εγκαταστήσετε και να διαμορφώσετε έναν διακομιστή VNC σε Linux σε σχεδόν οποιοδήποτε VPS. Αυτό δεν απαιτεί ακριβές και απαιτητικές διαμορφώσεις με εξομοίωση προσαρμογέα βίντεο ή την αγορά εμπορικών αδειών χρήσης λογισμικού. Εκτός από την επιλογή υπηρεσίας συστήματος που εξετάσαμε, υπάρχουν και άλλες: εκκίνηση σε λειτουργία daemon (μέσω /etc/rc.local) κατά την εκκίνηση του συστήματος ή κατά παραγγελία μέσω του inetd. Το τελευταίο είναι ενδιαφέρον για τη δημιουργία διαμορφώσεων πολλών χρηστών. Ο υπερδιακομιστής Internet θα ξεκινήσει τον διακομιστή VNC και θα συνδέσει τον πελάτη σε αυτόν και ο διακομιστής VNC θα δημιουργήσει μια νέα οθόνη και θα ξεκινήσει τη συνεδρία. Για έλεγχο ταυτότητας μέσα σε αυτό, μπορείτε να χρησιμοποιήσετε έναν διαχειριστή οθόνης γραφικών (για παράδειγμα, LightDM), και μετά την αποσύνδεση του πελάτη, η συνεδρία θα κλείσει και όλα τα προγράμματα που λειτουργούν με την οθόνη θα τερματιστούν.

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο