يتيح لك هذا المشروع إعداد مضيف انتقال Guacamole بسهولة مع وكيل عكسي TLS اختياري (موقع ذاتيًا أو Let's Encrypt)، وتكامل Active Directory، ومصادقة متعددة العوامل، وتحسينات واجهة المستخدم الخاصة بتخزين تسجيل التاريخ والاتصال السريع، وواجهة مستخدم مخصصة ذات سمة داكنة القالب والنسخ الاحتياطي التلقائي لقاعدة البيانات وتنبيهات البريد الإلكتروني وخيارات التعزيز الداخلي بما في ذلك Fail2ban للدفاع ضد هجمات القوة الغاشمة. هناك أيضًا خيارات لعمليات النشر المؤسسية المشابهة لمجموعة Guacamole Bastion Cluster من Amazon.
الصق الرابط أدناه في المحطة واتبع المطالبات ( لا تعمل كجذر، سيطالبك البرنامج النصي بـ sudo ):
wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh
نظام تشغيل متوافق:
دبيان: 12.x أو 11.x
متغيرات Ubuntu LTS: 24.04، 23.04، 22.04
Raspbian Buster أو بولسي
وحدة معالجة مركزية واحدة + ذاكرة وصول عشوائي (RAM) سعة 2 جيجابايت لكل 25 مستخدمًا (بالإضافة إلى الحد الأدنى من ذاكرة الوصول العشوائي ومساحة القرص لنظام التشغيل الذي حددته).
منافذ TCP المفتوحة: 22 و80 و443 (لا توجد خدمات أخرى تستخدم 80 و8080 و443)
في حالة تحديد أي من خيارات وكيل TLS العكسي، يجب عليك إنشاء سجل DNS خاص لموقع الوكيل الداخلي، وسجل DNS إضافي عام في حالة تحديد خيار Let's Encrypt.
تم تثبيت حزم Sudo & wget
يجب أن يكون لدى المستخدم الذي يقوم بتشغيل 1-setup.sh
أذونات sudo
يرشد البرنامج النصي 1-setup.sh
الرئيسي التثبيت بالخطوات التالية:
قم بإعداد اسم مضيف النظام واسم DNS المحلي (يجب أن يكون DNS المحلي متسقًا مع وكيل TLS).
حدد إما تثبيت MySQL محليًا أو استخدم مثيل MySQL محلي أو بعيد موجود مسبقًا.
اختر ملحق المصادقة: DUO، أو TOTP، أو LDAP/Active Directory، أو لا شيء.
حدد ميزات وحدة التحكم الاختيارية: الاتصال السريع وتكامل واجهة المستخدم للتخزين المسجل في التاريخ.
حدد الواجهة الأمامية لـ Guacamole: وكيل Nginx العكسي (HTTP أو HTTPS) أو استخدم واجهة Guacamole الأصلية على المنفذ 8080.
يتم حفظ شهادات متصفح الخادم والعميل الجديدة في $HOME/guac-setup/tls-certs/[date-time]/
.
اختياريًا، اتبع التعليمات التي تظهر على الشاشة لاستيراد شهادة العميل لتجنب تحذيرات متصفح https.
إذا اخترت تثبيت Nginx باستخدام TLS الموقع ذاتيًا:
لتخصيص العديد من خيارات البرنامج النصي المتاحة:
قم بالخروج من 1-setup.sh
عند المطالبة الأولى.
يتم عرض جميع خيارات البرنامج النصي القابلة للتكوين ضمن خيارات الإعداد الصامت في بداية 1-setup.sh
.
ستسمح مجموعات معينة من خيارات الإعداد الصامت بالتثبيت غير المراقب بالكامل الذي يدعم النشر الجماعي أو إنشاءات الإرساء المخصصة للغاية.
أعد تشغيل البرنامج النصي الذي تم تعديله محليًا بعد إجراء التغييرات (لا تقم بإعادة تشغيل رابط التثبيت التلقائي على الويب - انظر أدناه.
ملاحظات التثبيت المخصصة الأخرى:
تنبيه: تؤدي إعادة تشغيل برنامج التثبيت التلقائي إلى إعادة تنزيل مجموعة البرامج النصية وسيؤدي هذا إلى استبدال جميع تعديلات البرامج النصية الخاصة بك. ولذلك يجب عليك تشغيل 1-setup.sh محليًا بعد التحرير. إذا تم تحرير أي نصوص برمجية فرعية أخرى، فيجب أيضًا التعليق على روابط التنزيل المقابلة لها في البرنامج النصي 1-setup.sh.
يتم تخصيص البرامج النصية للترقية تلقائيًا باستخدام إعدادات التثبيت المحددة الخاصة بك للحصول على تحديثات مستقبلية متسقة. (ستؤدي إعادة التنزيل من رابط التثبيت التلقائي بعد التثبيت إلى استبدال كافة الإعدادات المخصصة كما هو مذكور أعلاه.)
تم تكوين الوكيل العكسي Nginx افتراضيًا على TLS 1.2 على الأقل. بالنسبة للأنظمة القديمة، راجع الأقسام التي تم التعليق عليها في الملف /etc/nginx/nginx.conf
بعد التثبيت.
يتم تكوين مهمة النسخ الاحتياطي اليومية لـ MySQL تلقائيًا ضمن crontab الخاص بمالك البرنامج النصي.
يجلب خيار الاتصال السريع بعض الآثار الأمنية الإضافية، لذا كن على دراية بالمخاطر المحتملة في بيئتك.
خيارات التصلب اليدوي بعد التثبيت:
add-fail2ban.sh
: يضيف سياسة تأمين لـ Guacamole للحماية من هجمات كلمة المرور العنيفة.
add-tls-guac-daemon.sh
: يلتف حركة المرور الداخلية بين خادم guac وتطبيق guac في TLS.
add-auth-ldap.sh
: قالب نصي لتكامل Active Directory المبسط.
add-smtp-relay-o365.sh
: قالب نصي لتكامل تنبيه البريد الإلكتروني مع MSO65 (كلمة مرور تطبيق BYO).
اتبع تعليمات الموضوع والعلامة التجارية هنا. للعودة إلى المظهر الافتراضي، ما عليك سوى حذف ملف Branding.jar من /etc/guacamole/extensions
، ومسح ذاكرة التخزين المؤقت للمتصفح لديك وإعادة التشغيل.
لتجديد الشهادات الموقعة ذاتيًا أو تغيير اسم DNS المحلي/عنوان IP للوكيل العكسي:
أعد تشغيل 4a-install-tls-self-signed-nginx.sh
لإنشاء شهادة Nginx جديدة (سيتم أيضًا تحديث شهادات عميل المتصفح المصاحبة). قم دائمًا بمسح ذاكرة التخزين المؤقت للمتصفح الخاص بك بعد تغيير الشهادات.
انظر هنا.
انظر هنا
لترقية Guacamole، قم بتحرير upgrade-guacamole.sh
ليعكس أحدث الإصدارات من Guacamole & MySQL Connector/J قبل التشغيل. سيقوم هذا البرنامج النصي تلقائيًا بتحديث ملحقات TOTP وDUO وLDAP وQuick Connect وHistory Recorded Storage في حالة وجودها.
للحصول على طبقة قاعدة بيانات منفصلة: استخدم install-mysql-backend-only.sh
هنا لتثبيت مثيل مستقل لقاعدة بيانات Guacamole MySQL.
للحصول على طبقة تطبيق منفصلة: قم بتشغيل 1-setup.sh
وقم بتوجيه التثبيتات الجديدة إلى مثيل قاعدة البيانات المنفصلة الخاصة بك. فقط قل لا لخيار "تثبيت MySQL محليًا" وأي خيارات تثبيت وكيل عكسي محلية أخرى.
للحصول على طبقة واجهة أمامية منفصلة: استخدم نصوص تثبيت Nginx المضمنة لإنشاء طبقة واجهة أمامية منفصلة لـ Nginx، ثم قم بتطبيق تقنية موازنة تحميل TLS المفضلة لديك. وبدلاً من ذلك، قد توفر موازنات التحميل AWS/Azure/GCP أو HA Proxy استمرارية وتقاربًا فائقين للجلسة مقارنةً بـ Open Source Nginx.
يقوم رابط التشغيل التلقائي بتنزيل هذه الملفات إلى $HOME/guac-setup
:
1-setup.sh
: البرنامج النصي للإعداد الأصلي.
2-install-guacamole.sh
: البرنامج النصي لبناء مصدر Guacamole وتثبيته.
3-install-nginx.sh
: البرنامج النصي لتثبيت Nginx.
4a-install-tls-self-signed-nginx.sh
: تثبيت/تحديث البرنامج النصي لشهادات TLS الموقعة ذاتيًا.
4b-install-tls-letsencrypt-nginx.sh
: دعونا نقوم بالتشفير لبرنامج تثبيت Nginx.
add-auth-duo.sh
: البرنامج النصي لتثبيت ملحق Duo MFA.
add-auth-ldap.sh
: البرنامج النصي لقالب مثبت ملحق Active Directory.
add-auth-totp.sh
: البرنامج النصي لتثبيت ملحق TOTP MFA.
add-xtra-quickconnect.sh
: البرنامج النصي لتثبيت ملحق وحدة التحكم بالاتصال السريع.
add-xtra-histrecstore.sh
: البرنامج النصي لتثبيت ملحق التخزين المسجل في التاريخ.
add-smtp-relay-o365.sh
: البرنامج النصي لإعداد ترحيل مصادقة O365 SMTP (كلمة مرور تطبيق BYO).
add-tls-guac-daemon.sh
: لف حركة المرور الداخلية بين خادم guacd وتطبيق الويب Guacamole في TLS.
add-fail2ban.sh
: البرنامج النصي لتثبيت Fail2ban (وسياسة حماية Guacamole).
backup-guacamole.sh
: البرنامج النصي لإعداد النسخ الاحتياطي لـ MySQL.
upgrade-guacamole.sh
: تطبيق Guacamole، والامتداد، والبرنامج النصي لترقية موصل MySQL.
branding.jar
: القالب الأساسي لتخصيص سمة واجهة المستخدم الخاصة بـ Guacamole.