شرح تثبيت web-based Guacamole Remote Desktop Client على Ubuntu
Guacamole عبارة عن لوحة تحكم web-based remote desktop مجانية ومفتوحة المصدر (open-source) تستخدم لإدارة أنظمة Linux و Windows من متصفح الويب.
يدعم البروتوكولات القياسية مثل VNC و RDP و SSH و Kubernetes
لا تحتاج إلى تثبيت أي برنامج على جهاز الكمبيوتر العميل (client computer).
يدعم clipboard ونقل الملفات عبر SFTP ويسمح لك بإدارة جلسات سطح المكتب البعيد المتعددة.
In this tutorial, we will show you how to install and configure Guacamole remote desktop client on Ubuntu 20.04 server.
في هذا البرنامج التعليمي ، سنوضح لك كيفية تثبيت وتكوين عميل سطح المكتب البعيد Guacamole على خادم Ubuntu 20.04.
المتطلبات الأساسية
ذاكرة وصول عشوائي (RAM) لا تقل عن 2 جيجابايت.
كلمة مرور الـ root للخادم.
قم بتحديث جميع حزم النظام باستخدام الأمر التالي:
apt-get update -y
أعد تشغيل النظام لتطبيق التغييرات.
تثبيت التبعيات المطلوبة
ستحتاج إلى تثبيت بعض التبعيات في الخادم الخاص بك.
يمكنك تثبيت كل منهم بالأمر التالي:
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
تثبيت Tomcat Server
يقوم Guacamole باستخدام Tomcat لتقديم محتوى guacamole client للمستخدمين الذين يتصلون بخادم guacamole عبر متصفح الويب.
لذلك يجب تثبيت خادم Tomcat في الخادم الخاص بك.
يمكنك تثبيته باستخدام الأمر التالي:
apt-get install tomcat9 tomcat9-admin tomcat9-common tomcat9-user -y
ابدأ تشغيل خدمة Tomcat وقم بتمكينها من البدء عند إعادة تشغيل النظام باستخدام الأمر التالي:
systemctl start tomcat9
systemctl enable tomcat9
تحقق من حالة خدمة Tomcat باستخدام الأمر التالي:
systemctl status tomcat9
ستحصل على النتيجة التالية:
? tomcat9.service - Apache Tomcat 9 Web Application Server
Loaded: loaded (/lib/systemd/system/tomcat9.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-08-25 14:48:50 UTC; 29min ago
Docs: https://tomcat.apache.org/tomcat-9.0-doc/index.html
Process: 27982 ExecStartPre=/usr/libexec/tomcat9/tomcat-update-policy.sh (code=exited, status=0/SUCCESS)
Main PID: 27990 (java)
Tasks: 38 (limit: 4691)
Memory: 241.5M
CGroup: /system.slice/tomcat9.service
??27990 /usr/lib/jvm/default-java/bin/java -Djava.util.logging.config.file=/var/lib/tomcat9/conf/logging.properties -Djava.util.l>
تثبيت Guacamole
لا تتوفر حزمة Guacamole في Ubuntu 20.04.
قم بتحميل أحدث إصدار من Guacamole من موقع Apache باستخدام الأمر التالي:
wget https://downloads.apache.org/guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz
بمجرد اكتمال التحميل قم بفك الملف الذي تم تنزيله باستخدام الأمر التالي:
tar -xvzf guacamole-server-1.1.0.tar.gz
قم بتغيير المجلد إلى المجلد الذي تم فك ضغطه.
قم بتشغيل برنامج الاعداد النصي للتحقق مما إذا كانت أي تبعية مطلوبة مفقودة أم لا:
cd guacamole-server-1.1.0
./configure --with-init-dir=/etc/init.d
سترى النتيجة التالية:
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.
قم بتثبيت خادم Guacamole عن طريق تشغيل الأمر التالي:
make
make install
قم بتشغيل الأمر التالي لتحديث ذاكرة التخزين المؤقت للنظام الخاص بك للمكتبات المثبتة:
ldconfig
قم بتمكين وبدء خدمة Guacamole باستخدام الأمر التالي
systemctl enable guacd
systemctl start guacd
تحقق من حالة خدمة Guacamole باستخدام الأمر التالي:
systemctl status guacd
يجب أن تحصل على النتيجة التالية:
? guacd.service - LSB: Guacamole proxy daemon
Loaded: loaded (/etc/init.d/guacd; generated)
Active: active (running) since Tue 2020-08-25 12:02:26 UTC; 4s ago
Docs: man:systemd-sysv-generator(8)
Process: 27536 ExecStart=/etc/init.d/guacd start (code=exited, status=0/SUCCESS)
Tasks: 1 (limit: 4691)
Memory: 10.1M
CGroup: /system.slice/guacd.service
??27555 /usr/local/sbin/guacd -p /var/run/guacd.pid
Aug 25 12:02:26 ubuntu2004 systemd[1]: Starting LSB: Guacamole proxy daemon...
Aug 25 12:02:26 ubuntu2004 guacd[27551]: Guacamole proxy daemon (guacd) version 1.1.0 started
Aug 25 12:02:26 ubuntu2004 guacd[27536]: Starting guacd:
Aug 25 12:02:26 ubuntu2004 guacd[27551]: Starting guacd:
Aug 25 12:02:26 ubuntu2004 guacd[27551]: uacd[27551]: INFO: Guacamole proxy daemon (guacd) versio
Aug 25 12:02:26 ubuntu2004 systemd[1]: Started LSB: Guacamole proxy daemon.
Aug 25 12:02:26 ubuntu2004 guacd[27555]: Listening on host 127.0.0.1, port 4822
Aug 25 12:02:26 ubuntu2004 guacd[27536]: uacd[275
تثبيت Guacamole Client
ستحتاج إلى تثبيت Guacamole Client على خادمك.
سيشكل هذا تطبيق HTML5 النهائي.
قم بتحميل برنامج Guacamole binary باستخدام الأمر التالي:
wget https://mirrors.estointernet.in/apache/guacamole/1.1.0/binary/guacamole-1.1.0.war
انسخه إلى المجلد / etc / guacamole باستخدام الأمر التالي:
mkdir /etc/guacamole
mv guacamole-1.1.0.war /etc/guacamole/guacamole.war
أنشئ رابطًا رمزيًا (symbolic link) لـ guacamole client إلى المجلد Tomcat webapps باستخدام الأمر التالي:
ln -s /etc/guacamole/guacamole.war /var/lib/tomcat9/webapps/
أعد تشغيل خدمة Tomcat و Guacamole لنشر تطبيق الويب الجديد:
systemctl restart tomcat9
systemctl restart guacd
إعدادات Guacomole
بعد ذلك ، تحتاج إلى إعداد المستخدمين والـ (connections) حتى يعمل Guacamole بشكل صحيح.
قم بإنشاء ملف عداد رئيسي لـ Guacamole باسم guacamole.properties.
nano /etc/guacamole/guacamole.properties
أضف الأسطر التالية:
guacd-hostname: localhost
guacd-port: 4822
user-mapping: /etc/guacamole/user-mapping.xml
احفظ وأغلق الملف عند الانتهاء.
بعد ذلك ، سوف تحتاج إلى إنشاء مجلدات لـ library وextension.
يمكنك إنشائها بالأمر التالي:
mkdir /etc/guacamole/{extensions,lib}
اضبط متغير guacamole home directory وأضفه إلى ملف الإعداد
echo "GUACAMOLE_HOME=/etc/guacamole" >> /etc/default/tomcat9
ستحتاج إلى إنشاء ملف يسمى user-mapping.xml لتحديد المستخدم المسموح له بالوصول إلى واجهة مستخدم ويب Guacamole.
قم بإنشاء md5 hash لكلمة المرور باستخدام الأمر التالي:
echo -n yoursecurepassword | openssl md5
سترى النتيجة التالية:
(stdin)= 55b38b03e7587a45fd886977842ff9b8
تذكر كلمة مرور md5 أعلاه سوف تحتاج إلى تعريف هذا في ملف user-mapping.xml.
قم بإنشاء user-mapping.xml جديد باستخدام الأمر التالي:
nano /etc/guacamole/user-mapping.xml
<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>
احفظ وأغلق الملف عند الانتهاء.
حيث:
192.168.10.50 هو عنوان IP لـ remote Ubuntu server.
192.168.10.51 هو عنوان IP لخادم Remote Windows .
أعد تشغيل خدمة Tomcat و Guacamole لتطبيق التغييرات:
systemctl restart tomcat9
systemctl restart guacd
الوصول إلى واجهة ويب Guacamole
الآن ، افتح متصفح الويب الخاص بك وقم بالوصول إلى واجهة ويب Guacamole باستخدام عنوان
URL http: // your-server-ip: 8080 / guacamole.
ستتم إعادة توجيهك إلى صفحة تسجيل الدخول إلى Guacamole:
أدخل اسم المستخدم وكلمة المرور اللذين حددتهما في ملف user-mapping.xml.
انقر على Login.
يجب أن تشاهد لوحة Guacamole dashboard في الصفحة التالية:
انقر فوق Ubuntu20.04-Server لتوصيل الخادم البعيد باستخدام بروتوكول SSH.
سترى شاشة تسجيل الدخول لخادم Ubuntu:
أدخل كلمة مرور الـ root لخادم Ubuntu واضغط على Enter.
سوف تقوم بتسجيل الدخول إلى خادم Ubuntu:
إعداد Nginx لـ Guacamole
يوصى بإعداد Nginx كوكيل عكسي (reverse proxy) للوصول إلى Guacamole عبر المنفذ 80.
قم بتثبيت خادم الويب Nginx:
apt-get install nginx -y
أنشئ ملف إعداد Nginx virtual host جديد:
nano /etc/nginx/sites-available/guacamole.conf
أضف الأسطر التالية:
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/ /;
}
}
احفظ وأغلق الملف.
قم بتمكين Nginx virtual host باستخدام الأمر التالي:
ln -s /etc/nginx/sites-available/guacamole.conf /etc/nginx/sites-enabled/
أعد تشغيل خدمة Nginx لتطبيق التغييرات:
systemctl restart nginx
الآن ، يمكنك الوصول إلى Guacamole الخاص بك باستخدام عنوان:
URL http: // your-server-ip .