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:
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:
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:
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:
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
Đăng ký liền tay Nhận Ngay Bài Mới
Subscribe ngay
Cám ơn bạn đã đăng ký !
Lỗi đăng ký !
Chào admin, mình có cài xong guacamole nhưng chỉ connect được vào server linux, còn k connect được window. Admin giải đáp giúp mình với.
Hi Dương, bạn có comment cụ thể lỗi vào đây không.
Bạn thử làm theo cách sau để khắc phục lỗi kết nối nha.
1/ Đảm bảo là đã allow firewall trên windows port 3389.
2/ Mở registry lên, và chỉnh 2 biến SecurityLayer, UserAuthentication trong 2 đường dẫn:
HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Control > Terminal Server > WinStations > RDP-Tcp > SecurityLayer
Sửa giá trị của SecurityLayer là 1
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
Sửa 2 biến, với giá trị như sau:
“SecurityLayer” value to 1
“UserAuthentication” value is 0
Kubernetes …. no
RDP ……….. no
SSH ……….. yes
Telnet …….. no
VNC ……….. yes
mình thấy cài xong bản 1.1.0 RDP support = no ạ
Bạn đã thử chỉnh registry như mình gửi chưa. Chỉnh 2 tham số SecurityLayer và UserAuthentication.
Trong thời điểm mình viết bài này, trong Library status cũng xuất hiện:
RDP ……….. no
Nhưng mình vẫn connect được window.
Cảm ơn Ad nhé ! mình vào được rồi ạ.
Chúc mừng Dương