Hướng dẫn cài đặt Guacamole Remote Desktop Client trên Ubuntu 20.04 LTS

Guacamole là một Control Panel dựa trên nền web hoàn toàn miễn phí và mã nguồn mở sử dụng cho việc quản lí các hệ thống Linux và Windows từ trình duyệt Web. Nó hỗ trợ các giao thức cơ bản như VNC, RDP, SSH và Kubernetes cũng như hỗ trợ về clipboard, truyền file qua SFTP và cho phép chúng ta quản lí nhiều phiên remote Desktop cùng một lúc

Hôm nay mình sẽ hướng dẫn các bạn cài đặt Guacamole Remote Desktop Client trên Ubuntu 20.04 LTS

Yêu cầu

  • Một máy chủ đang chạy Ubuntu 20.04 với ít nhất 2GB RAM
  • Quyền truy cập vào User root

Hướng dẫn cài đặt

Bước 1: Cập nhật hệ thống lên phiên bản mới nhất sử dụng câu lệnh

apt-get update -y

Bước 2: Cài đặt một số các phần mềm yêu cầu của phần mềm

apt-get install make gcc g++ libcairo2-dev libjpeg-turbo8-dev libpng-dev libtool-bin libossp-uuid-dev libavcodec-dev libavutil-dev libswscale-dev freerdp2-dev libpango1.0-dev libssh2-1-dev libvncserver-dev libtelnet-dev libssl-dev libvorbis-dev libwebp-dev -y

Bước 3: Cài đặt Tomcat Server dùng câu lệnh

apt-get install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y

Bước 4: Sau cài xong, chúng ta kích hoạt Tomcat khởi động cùng hệ thống bằng câu lệnh

systemctl start tomcat9
systemctl enable tomcat9

Bước 5: Tiến hành tải về Guacamole bằng câu lệnh

wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Xả nén ra bằng câu lệnh

tar -xvzf guacamole-server-1.1.0.tar.gz

Tiến hành kiểm tra trước khi biên dịch

cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d

Nếu bạn thấy output xuất ra như dưới đây là đã thành công rồi đó

freerdp2 ............ yes
pango ............... yes
libavcodec .......... yes
libavutil ........... yes
libssh2 ............. yes
libssl .............. yes
libswscale .......... yes
libtelnet ........... yes
libVNCServer ........ yes
libvorbis ........... yes
libpulse ............ no
libwebsockets ....... no
libwebp ............. yes
wsock32 ............. no

Protocol support:

Kubernetes .... no
RDP ........... yes
SSH ........... yes
Telnet ........ yes
VNC ........... yes

Services / tools:

guacd ...... yes
guacenc .... yes
guaclog .... yes

FreeRDP plugins: /usr/lib/x86_64-linux-gnu/freerdp2
Init scripts: /etc/init.d
Systemd units: no

Type "make" to compile guacamole-server.

Bước 6: Tiến hành biên dịch

make
make install

Bước 7: Cập nhật system cache

ldconfig

Bước 8: Khởi động và kích hoạt Guacamole Services

systemctl enable guacd
systemctl start guacd

Cài đặt Guacamole Client

Bước 1: Tải về Guacamole binary sử dụng câu lệnh

wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war

Sau khi Download xong, copy chúng vào thư mục /etc/guacamole

mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war

Tạo một symbolic link tới thư mục Tomcat Webapps

ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/

Khởi động lại Tomcat và Guacamole Services

systemctl restart tomcat9
systemctl restart guacd

Cấu hình Guacamole

Tạo một file cấu hình của Guacamole

nano /etc/guacamole/guacamole.properties

Thêm các dòng sau vào và lưu lại

guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml

Tạo thư mục cho library và extension

mkdir /etc/guacamole/{extensions,lib}

Thiết đặt biến môi trường và thêm vào file cấu hình của tomcat

echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9

Giờ chúng ta sẽ tạo file user-mapping.xml để định nghĩa các user cho phép đăng nhập vào giao diện web của Guacamole

Chúng ta sẽ tạo mã md5 cho mật khẩu của bạn

echo -n mật khẩu của bạn | openssl md5

Bạn sẽ thấy output như thế này, hãy ghi nhớ đoạn hash được tạo ra

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Giờ chúng ta sẽ tạo file user-mapping.xml sử dụng câu lệnh

nano /etc/guacamole/user-mapping.xml

Nội dung File như sau

<user-mapping>
<authorize 
username="admin"
password="55b38b03e7587a45fd886977842ff9b8"
encoding="md5">

<connection name="Ubuntu20.04-Server">
<protocol>ssh</protocol>
<param name="hostname">192.168.10.50</param>
<param name="port">22</param>
<param name="username">root</param>
</connection>
<connection name="Windows Server">
<protocol>rdp</protocol>
<param name="hostname">192.168.10.51</param>
<param name="port">3389</param>
</connection>
</authorize>
</user-mapping>

Trong đây

  • 55b38b03e7587a45fd886977842ff9b8: Là mã MD5 vừa tạo ở bước trên
  • 192.168.10.50: Là địa chỉ của máy chủ remote Linux
  • 192.168.10.51: Là địa chỉ của máy chủ remote Windows

Sau đó khởi động lại service của Guacamole và Tomcat bằng các câu lệnh

systemctl restart tomcat9
systemctl restart guacd

Sử dụng Guacamole trên nền web

Tiến hành truy cập vào Guacamole bằng địa chỉ http://IP của bạn:8080/guacamole

Sau đó đăng nhập bằng tài khoản bạn đã chỉ ra trong file user-mapping.xml

Ở đây bạn sẽ thấy 2 server chúng ta vừa thêm ở trên

Ví dụ khi kết nối vào Server Ubuntu, bạn sẽ thấy thông báo nhập password. Sau khi nhập Password bạn sẽ truy cập được vào Server

Cấu hình Nginx cho Guacamole

Chúng ta nên cấu hình Nginx làm reverse Proxy để truy cập Guacamole qua Port 80

Cài đặt Nginx sử dụng câu lệnh sau

apt-get install nginx -y

Tạo một file cấu hình Nginx mới cho Guacamole

nano /etc/nginx/sites-available/guacamole.conf

Thêm các dòng sau vào

server {
listen 80;
server_name your-server-ip;
access_log /var/log/nginx/guac_access.log;
error_log /var/log/nginx/guac_error.log;

location / {
proxy_pass http://your-server-ip:8080/guacamole/;
proxy_buffering off;
proxy_http_version 1.1;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $http_connection;
proxy_cookie_path /guacamole/ /;
}

}

Kích hoạt Nginx Virutal Host

ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/

Khởi động lại Nginx

systemctl restart nginx

Giờ bạn có thể truy cập vào Guacamole bằng IP của bạn không cần thêm 8080/guacamole nữa

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *