itiligent / Easy-Guacamole-Installer

Automated install of Gucamole with options for HTTPS reverse proxy, Active Directory integration, MFA, LetsEncrypt, dark theme, MySQL backup, email alerts & more.
GNU Affero General Public License v3.0
275 stars 49 forks source link
apache dark-mode fail2ban guacamole installer jumpbox jumphost jumpserver nginx nginx-proxy rdp reverse-proxy ssl tls virtual-desktop vnc
# 🥑 Easy Guacamole Installer

Introduction

This project allows you to easily set up a Guacamole jump-host with optional TLS reverse proxy (self-signed or Let's Encrypt), Active Directory integration, multi-factor authentication, Quick Connect & History Recording Storage UI enhancements, a custom UI dark themed template, auto database backup, email alerts and internal hardening options including fail2ban for defence against brute force attacks. There are also options for enterprise deployments similar to Amazon's Guacamole Bastion Cluster.

Automatic Installation

🚀 Paste the below link into a terminal & follow the prompts (do NOT run as root, the script will prompt for sudo):

wget https://raw.githubusercontent.com/itiligent/Guacamole-Install/main/1-setup.sh && chmod +x 1-setup.sh && ./1-setup.sh

Prerequisites

🔒 A Compatible OS:

Setup Script Menu

🔧 The main 1-setup.sh script guides the installation with the following steps:

  1. Setup the system hostname & local DNS name (Local DNS must be consistent for TLS proxy).
  2. Select either a local MySQL install or use a pre-existing local or remote MySQL instance.
  3. Pick an authentication extension: DUO, TOTP, LDAP/Active Directory, or none.
  4. Select optional console features: Quick Connect & History Recorded Storage UI integrations.
  5. Select the Guacamole front end: Nginx reverse proxy (HTTP or HTTPS) or use the native Guacamole interface on port 8080.
    • If you opt to install Nginx with self-signed TLS:
      • New server & client browser certificates are saved to $HOME/guac-setup/tls-certs/[date-time]/.
      • Optionally follow on-screen instructions for client certificate import to avoid https browser warnings.

Custom Installation Instructions

⚙️ To customize the many available script options:

Other custom install notes:

Post-install manual hardening options:

Customise & Brand Your Guacamole Theme

🎨 Follow the theme and branding instructions here. To revert to the default theme, simply delete the branding.jar file from /etc/guacamole/extensions, clear your browser cache and restart.

Managing Self-Signed TLS Certs With Nginx

To renew self-signed certificates or change the reverse proxy local DNS name/IP address:

Active Directory Integration

🔑 See here.

For SS0 Extensions (Radius, Base, CAS, OpenID, SAML, Dist)

🔑 See here

Upgrading Guacamole

🌐 To upgrade Guacamole, edit upgrade-guacamole.sh to reflect the latest versions of Guacamole & MySQL connector/J before running. This script will automatically update TOTP, DUO, LDAP, Quick Connect, and History Recorded Storage extensions if present.

High Availability Deployment

Script Download Manifest

📦 The autorun link downloads these files into $HOME/guac-setup:

😄🥑