Εγκαταστήστε το Guacamole για απομακρυσμένη πρόσβαση Linux/Windows στο Ubuntu


Ως διαχειριστής συστήματος, μπορεί να βρεθείτε (σήμερα ή στο μέλλον) να εργάζεστε σε ένα περιβάλλον όπου συνυπάρχουν Windows και Linux.

Δεν είναι μυστικό ότι ορισμένες μεγάλες εταιρείες προτιμούν (ή πρέπει να) εκτελούν ορισμένες από τις υπηρεσίες παραγωγής τους σε κουτιά Windows και άλλες σε διακομιστές Linux.

Εάν αυτή είναι η περίπτωσή σας, θα καλωσορίσετε αυτόν τον οδηγό με ανοιχτές αγκάλες (διαφορετικά προχωρήστε και φροντίστε τουλάχιστον να τον προσθέσετε στους σελιδοδείκτες σας).

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

Το Guacamole θα παρέχει έναν πίνακα ελέγχου που βασίζεται στον ιστό που θα σας επιτρέπει να μεταβείτε γρήγορα από το ένα μηχάνημα στο άλλο – όλα μέσα στο ίδιο παράθυρο του προγράμματος περιήγησης ιστού.

Περιβάλλον Δοκιμών

Σε αυτό το άρθρο, χρησιμοποιήσαμε τα ακόλουθα μηχανήματα. Θα εγκαταστήσουμε το Guacamole σε ένα πλαίσιο Ubuntu και θα το χρησιμοποιήσουμε για πρόσβαση σε ένα πλαίσιο Windows 10 μέσω Πρωτόκολλο απομακρυσμένης επιφάνειας εργασίας ( RDP) και ένα πλαίσιο RHEL που χρησιμοποιεί πρωτόκολλο δικτύου SSH:

Guacamole server: Ubuntu 20.04 - IP 192.168.0.100
Remote SSH box: RHEL 8 – IP 192.168.0.18
Remote desktop box: Windows 10 – IP 192.168.0.19

Τούτου λεχθέντος, ας ξεκινήσουμε.

Εγκατάσταση διακομιστή Guacamole στο Ubuntu

1. Πριν εγκαταστήσετε το guacamole, θα πρέπει πρώτα να φροντίσετε τις εξαρτήσεις του.

sudo apt update
sudo apt install -y gcc vim curl wget g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev \
libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev build-essential \
libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev freerdp2-dev libwebsockets-dev \
libssl-dev libvorbis-dev libwebp-dev tomcat9 tomcat9-admin tomcat9-user

2. Κατεβάστε και εξαγάγετε το tarball. Από τις αρχές του Φεβρουαρίου 2021, η πιο πρόσφατη έκδοση του Guacamole είναι η 1.3.0. Μπορείτε να ανατρέξετε στη σελίδα Λήψεις Guacamole για να μάθετε την πιο πρόσφατη έκδοση σε μια δεδομένη στιγμή.

wget https://dlcdn.apache.org/guacamole/1.3.0/source/guacamole-server-1.3.0.tar.gz 
tar zxf guacamole-server-1.3.0.tar.gz  

3. Μεταγλωττίστε το λογισμικό.

cd guacamole-server-1.3.0/
./configure

Όπως είναι αναμενόμενο, το configure θα ελέγξει το σύστημά σας για την παρουσία των απαιτούμενων εξαρτήσεων και για υποστηριζόμενα πρωτόκολλα επικοινωνίας (όπως φαίνεται στο επισημασμένο τετράγωνο, Πρωτόκολλο απομακρυσμένης επιφάνειας εργασίας (RDP) και SSH υποστηρίζονται από τις εξαρτήσεις που έχουν εγκατασταθεί νωρίτερα).

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

Όπως υποδηλώνει η τελευταία γραμμή στην παραπάνω εικόνα, εκτελέστε το make και το make install για να μεταγλωττίσετε το πρόγραμμα:

make 
sudo make install

4. Ενημερώστε την κρυφή μνήμη των εγκατεστημένων βιβλιοθηκών.

sudo ldconfig 

και πατήστε Enter.

Εγκατάσταση του προγράμματος-πελάτη Guacamole στο Ubuntu

Αφού ολοκληρώσετε τα παραπάνω βήματα, θα έχει εγκατασταθεί ο διακομιστής guacamole. Οι παρακάτω οδηγίες θα σας βοηθήσουν τώρα να ρυθμίσετε το guacd (τον δαίμονα μεσολάβησης που ενσωματώνει τη Javascript με πρωτόκολλα επικοινωνίας όπως το RDP ή το SSH) και το guacamole.war (τον πελάτη), το στοιχείο που αποτελεί την τελική εφαρμογή HTML5 που θα σας παρουσιαστεί.

Λάβετε υπόψη ότι και τα δύο στοιχεία (διακομιστής guacamole και client) πρέπει να εγκατασταθούν στον ίδιο υπολογιστή – δεν χρειάζεται να εγκαταστήσετε έναν λεγόμενο πελάτη στα μηχανήματα που θέλετε να σύνδεση με).

Για να κάνετε λήψη του προγράμματος-πελάτη, ακολουθήστε τα εξής βήματα:

5. Κατεβάστε το αρχείο της εφαρμογής Ιστού και αλλάξτε το όνομά του σε guacamole.war.

Σημείωση: Ανάλογα με τη διανομή σας, ο κατάλογος των βιβλιοθηκών Tomcat μπορεί να βρίσκεται στη διεύθυνση /var/lib/tomcat.

cd /var/lib/tomcat9/
sudo wget https://dlcdn.apache.org/guacamole/1.3.0/binary/guacamole-1.3.0.war
sudo mv guacamole-1.3.0.war webapps/guacamole.war

6. Δημιουργήστε το αρχείο διαμόρφωσης (/etc/guacamole/guacamole.properties). Αυτό το αρχείο περιέχει τις οδηγίες σύνδεσης του Guacamole στο guacd:

sudo mkdir /etc/guacamole
sudo mkdir /usr/share/tomcat9/.guacamole
sudo nano /etc/guacamole/guacamole.properties

Εισαγάγετε τα ακόλουθα περιεχόμενα στο /etc/guacamole/guacamole.properties. Σημειώστε ότι αναφέρουμε ένα αρχείο που θα δημιουργήσουμε στο επόμενο βήμα (/etc/guacamole/user-mapping.xml):

guacd-hostname: localhost
guacd-port:    4822
user-mapping:    /etc/guacamole/user-mapping.xml
auth-provider:    net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProvider
basic-user-mapping:    /etc/guacamole/user-mapping.xml

Και δημιουργήστε έναν συμβολικό σύνδεσμο για τον Tomcat για να μπορεί να διαβάσει το αρχείο:

sudo ln -s /etc/guacamole/guacamole.properties /usr/share/tomcat9/.guacamole/

7. Το Guacamole χρησιμοποιεί το user-mapping.xml, δημιουργήστε αυτό το αρχείο για να καθορίσετε ποιους χρήστες επιτρέπεται να ελέγχουν ταυτότητα στη διεπαφή ιστού Guacamole (μεταξύ ετικέτες ) και ποιες συνδέσεις μπορούν να χρησιμοποιήσουν (μεταξύ ετικετών <connection>):

sudo nano /etc/guacamole/user-mapping.xml

Η ακόλουθη αντιστοίχιση χρήστη παρέχει πρόσβαση στη διεπαφή ιστού Guacamole σε έναν χρήστη tecmint με κωδικό πρόσβασης tecmint01. Στη συνέχεια, μέσα στη σύνδεση SSH, πρέπει να τοποθετήσουμε ένα έγκυρο όνομα χρήστη για να συνδεθείτε στο πλαίσιο RHEL (θα σας ζητηθεί να εισαγάγετε τον αντίστοιχο κωδικό πρόσβασης όταν το Guacamole ξεκινήσει τη σύνδεση).

Στην περίπτωση του πλαισίου Windows 10, δεν χρειάζεται να το κάνετε αυτό, καθώς θα εμφανιστεί η οθόνη σύνδεσης μέσω RDP.

Για να αποκτήσετε τον κατακερματισμό md5 του κωδικού πρόσβασης tecmint01, πληκτρολογήστε την ακόλουθη εντολή:

printf '%s' "tecmint01" | md5sum

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

<user-mapping>
        <authorize 
                username="tecmint" 
                password="8383339b9c90775ac14693d8e620981f" 
                encoding="md5">
                <connection name="RHEL 8">
                        <protocol>ssh</protocol>
                        <param name="hostname">192.168.0.18</param>
                        <param name="port">22</param>
                        <param name="username">gacanepa</param>
                </connection>
                <connection name="Windows 10">
                        <protocol>rdp</protocol>
                        <param name="hostname">192.168.0.19</param>
                        <param name="port">3389</param>
                </connection>
        </authorize>
</user-mapping>

Όπως συμβαίνει με όλα τα αρχεία που περιέχουν ευαίσθητες πληροφορίες, είναι σημαντικό να περιορίσετε τα δικαιώματα και να αλλάξετε την ιδιοκτησία του αρχείου user-mapping.xml:

sudo chmod 600 /etc/guacamole/user-mapping.xml
sudo chown tomcat:tomcat /etc/guacamole/user-mapping.xml

Ξεκινήστε το Tomcat και το guacd.

sudo service tomcat9 start
sudo /usr/local/sbin/guacd &

Εκκίνηση της διεπαφής Ιστού Guacamole

8. Για να αποκτήσετε πρόσβαση στη διεπαφή ιστού Guacamole, εκκινήστε ένα πρόγραμμα περιήγησης και τοποθετήστε το στη διεύθυνση http://server:8080/guacamole όπου ο διακομιστής είναι το όνομα κεντρικού υπολογιστή ή η διεύθυνση IP του διακομιστή (στην περίπτωσή μας είναι http://192.168.0.100:8080/guacamole) και συνδεθείτε με τα διαπιστευτήρια που δόθηκαν προηγουμένως (όνομα χρήστη: tecmint, κωδικός πρόσβασης: tecmint01):

9. Αφού κάνετε κλικ στο Σύνδεση, θα μεταφερθείτε στη διαχειριστική διεπαφή όπου θα δείτε τη λίστα των συνδέσεων στις οποίες έχει πρόσβαση ο χρήστης tecmint, σύμφωνα με το user- mapping.xml:

10. Συνεχίστε και κάντε κλικ στο πλαίσιο RHEL 8 για να συνδεθείτε ως gacanepa (το όνομα χρήστη που καθορίζεται στον ορισμό της σύνδεσης).

Σημειώστε πώς η πηγή σύνδεσης έχει οριστεί σε 192.168.0.100 (η IP του διακομιστή Guacamole), ανεξάρτητα από τη διεύθυνση IP του μηχανήματος που χρησιμοποιείτε για να ανοίξετε τη διεπαφή ιστού:

11. Εάν θέλετε να κλείσετε τη σύνδεση, πληκτρολογήστε exit και πατήστε Enter. Θα σας ζητηθεί να επιστρέψετε στην κύρια διεπαφή (Αρχική), να επανασυνδεθείτε ή να αποσυνδεθείτε από το Guacamole:

12. Τώρα είναι ώρα να δοκιμάσετε τη σύνδεση απομακρυσμένης επιφάνειας εργασίας στα Windows 10:

Συγχαρητήρια! Τώρα μπορείτε να αποκτήσετε πρόσβαση σε ένα μηχάνημα Windows 10 και σε έναν διακομιστή RHEL 8 από ένα πρόγραμμα περιήγησης ιστού.

Περίληψη

Σε αυτό το άρθρο, εξηγήσαμε πώς να εγκαταστήσετε και να ρυθμίσετε το Guacamole ώστε να επιτρέπεται η πρόσβαση σε απομακρυσμένα μηχανήματα μέσω RDP και SSH. Ο επίσημος ιστότοπος παρέχει εκτενή τεκμηρίωση για να σας βοηθήσει να ρυθμίσετε την πρόσβαση χρησιμοποιώντας άλλα πρωτόκολλα, όπως το VNC και άλλους μηχανισμούς ελέγχου ταυτότητας, όπως βασισμένο σε DB…

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