Kiến Thức Linux Linux Nâng Cao

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

Nếu bạn là quản trị viên hệ thống và chịu trách nhiệm quản lý các máy chủ Windows và Linux thì có thể bạn sẽ cần một chương trình để kết nối từ xa để quản lý những máy chủ của mình. Apache Guacamole là ứng dụng kết nối từ xa miễn phí, mã nguồn mở, dựa trên nền tảng web, cho phép bạn truy cập máy chủ của mình thông qua trình duyệt web. Nó là một ứng dụng web HTML5. Với Guacamole, bạn có thể dễ dàng chuyển đổi giữa nhiều máy tính từ xa với một cửa sổ trình duyệt.

Trong hướng dẫn này, chúng tôi sẽ giới thiệu cách cài đặt Apache Guacamole remote desktop gateway trên máy chủ Ubuntu 18.04 LTS.

Điều kiện tiên quyết

  • Một máy chủ đang chạy Ubuntu 18.04.
  • Có password root của server

Bắt Đầu

Trước khi bắt đầu, bạn nên cập nhật gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật chúng bằng lệnh sau:

apt-get update -y
apt-get upgrade -y

Khi tất cả các gói được cập nhật, hãy khởi động lại hệ thống của bạn để cập nhật các thay đổi.

Cài Đặt Các Gói Phụ Thuộc

Trước khi bắt đầu, bạn sẽ cần cài đặt một số phụ thuộc trong hệ thống của mình để biên dịch Guacamole từ Source. Cài đặt tất cả chúng bằng lệnh sau:

apt-get install gcc-6 g++-6 libossp-uuid-dev libavcodec-dev libpango1.0-dev libssh2-1-dev libcairo2-dev libjpeg-turbo8-dev libpng-dev libavutil-dev libswscale-dev libfreerdp-dev libvncserver-dev libssl-dev libvorbis-dev libwebp-dev -y

Khi tất cả các gói đã được cài đặt, bạn có thể tiến hành bước tiếp theo.

Cài Đặt Tomcat Server

Tiếp theo, bạn sẽ cần cài đặt Tomcat trong máy chủ của mình, giúp người dùng kết nối với máy chủ guacamole thông qua trình duyệt web. Bạn có thể cài đặt nó bằng lệnh sau:

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

Sau khi cài đặt xong Tomcat, bạn có thể chuyển sang bước tiếp theo.

Cài Đặt Guacamole Server

Guacamole được chia làm hai thành phần, guacamole-server cung cấp proxy guacd và các thư viện liên quan, và guacamole-client cung cấp ứng dụng client được phục vụ bởi máy chủ Tomcat của bạn. Theo mặc định, Máy chủ Guacamole không có sẵn trong kho lưu trữ mặc định Ubuntu 18.04. Vì vậy, bạn sẽ cần phải build nó từ Source.

Trước tiên, hãy tải xuống phiên bản mới nhất của nguồn Guacamole bằng lệnh sau:

wget http://apachemirror.wuchna.com/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz

Sau khi quá trình tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:

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

Tiếp theo, di chuyển vào thư mục được giải nén và cấu hình nó bằng lệnh sau:

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

Khi cấu hình thành công, bạn sẽ nhận được kết quả sau:

   Library status:

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

   Protocol support:

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

   Services / tools:

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

   FreeRDP plugins: no
   Init scripts: /etc/init.d
   Systemd units: no

Gõ "make" để biên dịch guacamole-server.
make

Khi quá trình biên dịch hoàn tất thành công, bạn có thể cài đặt nó bằng lệnh sau:

make install

Sau khi cài đặt, hãy chạy lệnh sau để cập nhật bộ nhớ cache của hệ thống với các thư viện đã cài đặt

ldconfig

Tiếp theo, cấu hình enable và start guacamole:

systemctl enable guacd
systemctl start guacd

Bạn cũng có thể kiểm tra trạng thái của dịch vụ Guacamole bằng lệnh sau:

systemctl status guacd

Bạn sẽ thấy kết quả sau:

? guacd.service - LSB: Guacamole proxy daemon
   Loaded: loaded (/etc/init.d/guacd; generated)
   Active: active (running) since Sat 2020-04-11 14:48:03 UTC; 7s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 28833 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
    Tasks: 1 (limit: 2359)
   CGroup: /system.slice/guacd.service
           ??28847 /usr/local/sbin/guacd -p /var/run/guacd.pid

Apr 11 14:48:03 ubuntu1804 systemd[1]: Starting LSB: Guacamole proxy daemon...
Apr 11 14:48:03 ubuntu1804 guacd[28834]: Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: Starting guacd: guacd[28834]: INFO:        Guacamole proxy daemon (guacd) version 1.1.0 started
Apr 11 14:48:03 ubuntu1804 guacd[28833]: SUCCESS
Apr 11 14:48:03 ubuntu1804 systemd[1]: Started LSB: Guacamole proxy daemon.
Apr 11 14:48:03 ubuntu1804 guacd[28847]: Listening on host 127.0.0.1, port 4822

Cài Đặt Guacamole Client

Tiếp theo, bạn sẽ cần cài đặt Guacamole client trên máy chủ của mình. Guacamole client được viết bằng Java chạy trên đa nền tảng. Điều này sẽ tạo nên ứng dụng HTML5 mà bạn sẽ thấy ở phần sau.

Đầu tiên, tải xuống tệp nhị phân Guacamole bằng lệnh sau:

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

Sau khi quá trình tải xuống hoàn tất, hãy sao chép nó vào thư mục /etc/guacamole:

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

Tiếp theo, tạo một liên kết của guacamole client tới thư mục ứng dụng web Tomcat bằng lệnh sau:

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

Cuối cùng, khởi động lại dịch vụ Tomcat và Guacamole để triển khai ứng dụng web

systemctl restart tomcat8
systemctl restart guacd

Cấu Hình Guacomole

Sau khi cài đặt Guacamole, bạn cần cấu hình User và các kết nối để Guacamole có thể hoạt động.

Đầu tiên, tạo một tệp cấu hình Guacamole với tên guacamole.properties.

nano /etc/guacamole/guacamole.properties

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

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

Lưu và đóng tập tin. Sau đó, tạo một thư mục lib và các phần mở rộng bằng lệnh sau:

mkdir /etc/guacamole/{extensions,lib}

Tiếp theo, Thiết lập biến môi trường của thư mục guacamole vào file cấu hình của tomcat8.

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

Phương thức xác thực mặc định của Guacamole  là đọc tất cả các User và kết nối từ một file,  được gọi là user-mapping.xml. File này sẽ xác định User nào được phép truy cập giao diện người dùng web Guacamole, các máy chủ để kết nối nào và với phương thức kết nối ra sao.

Đầu tiên, tạo mã băm md5 cho mật khẩu bằng lệnh sau:

echo -n yoursecurepassword | openssl md5

Bạn sẽ nhận được kết quả sau:

(stdin)= 55b38b03e7587a45fd886977842ff9b8

Lưu ý: Hãy lưu lại hàm băm này, bạn sẽ cần nó trong tệp user-mapping.xml.

Tiếp theo, tạo một user-mapping.xml mới bằng lệnh sau:

nano /etc/guacamole/user-mapping.xml

Thêm vào những dòng sau:

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

        <connection name="Ubuntu-Server">
            <protocol>ssh</protocol>
            <param name="hostname">192.168.0.150</param>
            <param name="port">22<param>
            <param name="username">root</param>
        </connection>
        <connection name="Windows Server">
            <protocol>rdp</protocol>
            <param name="hostname">192.168.0.100</param>
            <param name="port">3389</param>
        </connection>
    </authorize>
</user-mapping>

Lưu và đóng tệp khi bạn hoàn tất. Sau đó, khởi động lại dịch vụ Tomcat và Guacamole để áp dụng các thay đổi:

systemctl restart tomcat8
systemctl restart guacd

Truy Cập Giao Diện Web

Tại thời điểm này, máy chủ Guacamole đã được cài đặt và cấu hình. Bây giờ, đã đến lúc truy cập nó thông qua trình duyệt web.

Mở trình duyệt web của bạn và nhập URL http://your-server-ip:8080/guacamole/. Bạn sẽ được chuyển hướng đến trang đăng nhập Apache Guacamole:

Guacamole Login

Cung cấp Username và Password mà bạn đã chỉ định trong tệp user-mapping.xml, Click vào nút Đăng nhập. Bạn sẽ thấy bảng điều khiển mặc định của Apache Guacamole với tất cả các kết nối:

Recent connections

Bây giờ, hãy nhấp vào Ubuntu-Server và bạn sẽ được nhắc nhập mật khẩu cho người dùng mà bạn đã xác định trong user-mapping.xml như hình dưới đây:

Shell Login

Cung cấp mật khẩu cho người dùng hệ thống của bạn và nhấn Enter. Bạn sẽ đăng nhập vào Ubuntu-Server như hình dưới đây:

Successfully logged into server

Cấu hình Nginx làm Reverse Proxy cho Guacamole

Tiếp theo, bạn sẽ cần phải cấu hình Nginx làm proxy ngược để truy cập trang tổng quan Guacamole. Trước tiên, cài đặt máy chủ web Nginx bằng lệnh sau:

apt-get install nginx -y

Sau khi cài đặt, hãy tạo mới file cấu hình máy chủ ảo Nginx:

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

Thêm vào những dòng sau:

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/ /;
        }

}

Lưu và đóng tệp khi bạn hoàn tất. Sau đó, kích hoạt máy chủ ảo Nginx bằng lệnh sau:

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

Tiếp theo, kiểm tra Nginx xem có lỗi cú pháp nào không bằng lệnh sau:

nginx -t

Bạn sẽ nhận được kết quả sau:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:

systemctl restart nginx

Bây giờ, bạn có thể truy cập giao diện web Guacamole bằng URL http://your-server-ip.

Kết Luận

Xin chúc mừng! bạn đã cài đặt thành công cổng máy tính từ xa Guacamole trên máy chủ Ubuntu 18.04. Bây giờ bạn có thể thêm một máy chủ từ xa khác mà bạn muốn quản lý từ xa thông qua trình duyệt web.

 

          Nguồn
congdonglinux.com

 

Tags

Add Comment

Click here to post a comment