Instal Guacamole untuk Akses Remote Linux/Windows di Ubuntu


Sebagai administrator sistem, Anda mungkin (saat ini atau di masa depan) bekerja di lingkungan di mana Windows dan Linux hidup berdampingan.

Bukan rahasia lagi bahwa beberapa perusahaan besar lebih memilih (atau harus) menjalankan beberapa layanan produksi mereka di kotak Windows dan lainnya di server Linux.

Jika itu kasus Anda, Anda akan menyambut panduan ini dengan tangan terbuka (jika tidak, silakan dan setidaknya pastikan untuk menambahkannya ke bookmark Anda).

Pada artikel ini, kami akan memperkenalkan Anda pada guacamole, gateway desktop jarak jauh yang didukung oleh Tomcat yang hanya perlu diinstal pada server pusat.

Guacamole akan menyediakan panel kontrol berbasis web yang memungkinkan Anda beralih dengan cepat dari satu mesin ke mesin lainnya – semuanya dalam jendela browser web yang sama.

Lingkungan Pengujian

Pada artikel ini, kami telah menggunakan mesin berikut. Kami akan menginstal Guacamole di kotak Ubuntu dan menggunakannya untuk mengakses kotak Windows 10 melalui Remote Desktop Protocol ( RDP) dan kotak RHEL menggunakan protokol jaringan 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

Karena itu, mari kita mulai.

Menginstal Server Guacamole di Ubuntu

1. Sebelum menginstal guacamole, Anda harus memperhatikan ketergantungannya terlebih dahulu.

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. Unduh dan ekstrak tarballnya. Mulai awal Februari 2021, versi terbaru Guacamole adalah 1.3.0. Anda dapat merujuk ke halaman Unduhan Guacamole untuk mengetahui versi terbaru pada waktu tertentu.

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. Kompilasi perangkat lunak.

cd guacamole-server-1.3.0/
./configure

Seperti yang diharapkan, configure akan memeriksa sistem Anda untuk mengetahui keberadaan dependensi yang diperlukan dan protokol komunikasi yang didukung (seperti dapat dilihat pada kotak yang disorot, Remote Desktop Protocol (RDP) dan SSH didukung oleh dependensi yang diinstal sebelumnya).

Jika semuanya berjalan sesuai harapan, Anda akan melihat ini setelah selesai (jika tidak, pastikan Anda menginstal semua dependensi yang diperlukan):

Seperti yang disarankan pada baris terakhir pada gambar di atas, jalankan make dan make install untuk mengkompilasi program:

make 
sudo make install

4. Perbarui cache perpustakaan yang diinstal.

sudo ldconfig 

dan tekan Masuk.

Menginstal Klien Guacamole di Ubuntu

Setelah menyelesaikan langkah-langkah di atas, server guacamole akan diinstal. Petunjuk berikut sekarang akan membantu Anda menyiapkan guacd (daemon proxy yang mengintegrasikan Javascript dengan protokol komunikasi seperti RDP atau SSH) dan guacamole.war (klien), komponen yang membentuk aplikasi HTML5 akhir yang akan disajikan kepada Anda.

Perhatikan bahwa kedua komponen (server guacamole dan klien) harus diinstal pada mesin yang sama – tidak perlu menginstal apa yang disebut klien pada mesin yang Anda inginkan terhubung ke).

Untuk mengunduh klien, ikuti langkah-langkah berikut:

5. Unduh arsip aplikasi web dan ubah namanya menjadi guacamole.war.

Catatan: Tergantung pada distribusi Anda, direktori perpustakaan Tomcat mungkin terletak di /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. Buat file konfigurasi (/etc/guacamole/guacamole.properties). File ini berisi petunjuk Guacamole untuk terhubung ke guacd:

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

Masukkan konten berikut ke /etc/guacamole/guacamole.properties. Perhatikan bahwa kita mereferensikan file yang akan kita buat pada langkah berikutnya (/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

Dan buatlah symbolic link agar Tomcat dapat membaca file tersebut:

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

7. Guacamole menggunakan pemetaan pengguna.xml, buat file ini untuk menentukan pengguna mana yang diizinkan untuk mengautentikasi ke antarmuka web Guacamole (antara tag ) dan koneksi mana yang dapat digunakan (antara tag <connection>):

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

Pemetaan pengguna berikut memberikan akses ke antarmuka web Guacamole kepada pengguna tecmint dengan sandi tecmint01. Kemudian, di dalam koneksi SSH, kita perlu memasukkan nama pengguna yang valid untuk masuk ke kotak RHEL (Anda akan diminta memasukkan kata sandi yang sesuai saat Guacamole memulai koneksi).

Dalam kasus kotak Windows 10, hal itu tidak perlu dilakukan karena kita akan disajikan layar login melalui RDP.

Untuk mendapatkan hash md5 dari kata sandi tecmint01, ketikkan perintah berikut:

printf '%s' "tecmint01" | md5sum

Kemudian masukkan output perintah di kolom kata sandi di dalam tag <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>

Seperti halnya semua file yang berisi informasi sensitif, penting untuk membatasi izin dan mengubah kepemilikan file user-mapping.xml:

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

Mulai Tomcat dan guacd.

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

Meluncurkan Antarmuka Web Guacamole

8. Untuk mengakses antarmuka web Guacamole, luncurkan browser dan arahkan ke http://server:8080/guacamole di mana server adalah nama host atau alamat IP Anda server (dalam kasus kami adalah http://192.168.0.100:8080/guacamole) dan masuk dengan kredensial yang diberikan sebelumnya (nama pengguna: tecmint, kata sandi: tecmint01):

9. Setelah mengeklik Masuk, Anda akan dibawa ke antarmuka administratif di mana Anda akan melihat daftar koneksi yang dapat diakses oleh pengguna tecmint, sesuai dengan pengguna- pemetaan.xml:

10. Silakan klik kotak RHEL 8 untuk masuk sebagai gacanepa (nama pengguna yang ditentukan dalam definisi koneksi).

Perhatikan bagaimana sumber koneksi disetel ke 192.168.0.100 (IP server Guacamole), terlepas dari alamat IP mesin yang Anda gunakan untuk membuka antarmuka web:

11. Jika Anda ingin menutup koneksi, ketik exit dan tekan Enter. Anda akan diminta untuk kembali ke antarmuka utama (Beranda), menyambung kembali, atau keluar dari Guacamole:

12. Sekarang saatnya mencoba koneksi desktop jarak jauh ke Windows 10:

Selamat! Sekarang Anda dapat mengakses mesin Windows 10 dan server RHEL 8 dari dalam browser web.

Ringkasan

Pada artikel ini, kami telah menjelaskan cara menginstal dan mengkonfigurasi Guacamole untuk mengizinkan akses ke mesin jarak jauh melalui RDP dan SSH. Situs web resmi menyediakan dokumentasi ekstensif untuk membantu Anda mengatur akses menggunakan protokol lain, seperti VNC dan mekanisme autentikasi lainnya, seperti berbasis DB…

Seperti biasa, jangan ragu untuk mengirimkan pesan kepada kami jika Anda memiliki pertanyaan atau saran tentang artikel ini. Kami juga menantikan kisah sukses Anda.