โปรเจ็กต์นี้ช่วยให้คุณสามารถตั้งค่า Jump-host ของ Guacamole ได้อย่างง่ายดายด้วยพร็อกซีย้อนกลับ TLS ที่เป็นตัวเลือก (ลงนามด้วยตนเองหรือมาเข้ารหัสกันเถอะ), การรวม Active Directory, การรับรองความถูกต้องแบบหลายปัจจัย, การปรับปรุง UI การจัดเก็บข้อมูลการเชื่อมต่อด่วนและการบันทึกประวัติ, UI ธีมสีเข้มแบบกำหนดเอง เทมเพลต การสำรองฐานข้อมูลอัตโนมัติ การแจ้งเตือนทางอีเมล และตัวเลือกการเสริมความแข็งแกร่งภายใน รวมถึง Fail2ban เพื่อป้องกันการโจมตีแบบ Brute Force นอกจากนี้ยังมีตัวเลือกสำหรับการปรับใช้ระดับองค์กรที่คล้ายกับ 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 หรือ Bullseye
1 CPU core + 2GB RAM สำหรับผู้ใช้ทุกๆ 25 คน (รวม RAM ขั้นต่ำและพื้นที่ดิสก์สำหรับระบบปฏิบัติการที่คุณเลือก)
เปิดพอร์ต 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 หรือไม่มีเลย
เลือกคุณสมบัติคอนโซลเสริม: การรวม UI ของ Quick Connect & History Recorded Storage
เลือกส่วนหน้า Guacamole: Nginx Reverse proxy (HTTP หรือ HTTPS) หรือใช้อินเทอร์เฟซ Guacamole ดั้งเดิมบนพอร์ต 8080
ใบรับรองเซิร์ฟเวอร์และไคลเอ็นต์เบราว์เซอร์ใหม่จะถูกบันทึกลงใน $HOME/guac-setup/tls-certs/[date-time]/
คุณสามารถเลือกปฏิบัติตามคำแนะนำบนหน้าจอสำหรับการนำเข้าใบรับรองไคลเอ็นต์เพื่อหลีกเลี่ยงคำเตือนเบราว์เซอร์ https
หากคุณเลือกที่จะติดตั้ง Nginx ด้วย TLS ที่ลงนามด้วยตนเอง:
หากต้องการปรับแต่งตัวเลือกสคริปต์ที่มีอยู่มากมาย:
ออกจาก 1-setup.sh
เมื่อได้รับแจ้งครั้งแรก
ตัวเลือกสคริปต์ที่กำหนดค่าได้ทั้งหมดจะแสดงภายใต้ ตัวเลือกการตั้งค่าแบบเงียบ เมื่อเริ่มต้น 1-setup.sh
การผสมผสาน ตัวเลือกการตั้งค่า Silent บางอย่างเข้าด้วยกันจะช่วยให้สามารถติดตั้งแบบไม่ต้องดูแลโดยสมบูรณ์ซึ่งรองรับการปรับใช้จำนวนมากหรือสร้างนักเทียบท่าที่ปรับแต่งได้สูง
เรียกใช้สคริปต์ที่แก้ไขของคุณอีกครั้งในเครื่องหลังจากทำการเปลี่ยนแปลง (อย่าเรียกใช้ลิงก์เว็บการติดตั้งอัตโนมัติอีกครั้ง - ดูด้านล่าง
บันทึกการติดตั้งแบบกำหนดเองอื่นๆ:
ข้อควรระวัง: การเรียกใช้โปรแกรมติดตั้งอัตโนมัติอีกครั้งจะเป็นการดาวน์โหลดชุดสคริปต์อีกครั้ง และการดำเนินการนี้จะเขียนทับการแก้ไขสคริปต์ทั้งหมดของคุณ ดังนั้นคุณต้องรัน 1-setup.sh LOCALLY หลังจากแก้ไข หากมีการแก้ไขสคริปต์ลูกอื่นๆ ลิงก์ดาวน์โหลดที่เกี่ยวข้องในสคริปต์ 1-setup.sh จะต้องถูกใส่เครื่องหมายความคิดเห็นด้วย
สคริปต์อัปเกรดจะได้ รับการปรับแต่งโดยอัตโนมัติด้วยการตั้งค่าการติดตั้งเฉพาะของคุณ เพื่อการอัพเดตที่สอดคล้องกันในอนาคต (การดาวน์โหลดซ้ำจากลิงก์การติดตั้งอัตโนมัติหลังการติดตั้งจะเขียนทับการตั้งค่าแบบกำหนดเองทั้งหมดดังที่กล่าวข้างต้น)
พร็อกซีย้อนกลับ Nginx ได้รับการกำหนดค่าเป็นค่าเริ่มต้นเป็นอย่างน้อย TLS 1.2 สำหรับระบบโบราณ โปรดดูส่วนที่แสดงความคิดเห็นของไฟล์ /etc/nginx/nginx.conf
หลังการติดตั้ง
งานสำรองข้อมูล MySQL รายวันได้รับการกำหนดค่าโดยอัตโนมัติภายใต้ crontab ของเจ้าของสคริปต์
ตัวเลือก Quick Connect มีผลกระทบด้านความปลอดภัยเพิ่มเติม โปรดระวังความเสี่ยงที่อาจเกิดขึ้นในสภาพแวดล้อมของคุณ
ตัวเลือกการชุบแข็งด้วยตนเองหลังการติดตั้ง:
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 ในเครื่อง" และตัวเลือกการติดตั้งพร็อกซีย้อนกลับในเครื่องอื่น ๆ
สำหรับเลเยอร์ FRONT END ที่แยกต่างหาก: ใช้สคริปต์ตัวติดตั้ง 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
: สคริปต์ตัวติดตั้งส่วนขยายคอนโซล Quick Connect
add-xtra-histrecstore.sh
: สคริปต์ตัวติดตั้งส่วนขยาย History Recorded Storage
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
: เทมเพลตฐานสำหรับปรับแต่งธีม UI ของ Guacamole